:root{--green-900:#0f1a14;--green-700:#1e3327;--green-100:#e8efe9;--gold:#a8853f;--grey-50:#fafaf8;--grey-100:#f1f0ec;--grey-300:#d9d7d0;--grey-600:#5f5d57;--grey-900:#1c1c1a;--red:#a3352b;--blue:#2c5d7c;--radius:8px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:17px;line-height:1.5;color:var(--grey-900);background:var(--grey-50)}a{color:var(--green-700)}.topbar{background:var(--green-900);color:#fff;padding:14px 24px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}.topbar .brand{font-size:1.25rem;font-weight:600;letter-spacing:.5px}.topbar nav{display:flex;gap:6px;flex-wrap:wrap}.topbar nav a{color:#cfd8d1;text-decoration:none;padding:9px 16px;border-radius:var(--radius);font-size:1.02rem}.topbar nav a:hover{background:rgba(255,255,255,.1);color:#fff}.topbar nav a.active{background:var(--gold);color:#fff;font-weight:600}.yearbar{background:var(--green-100);border-bottom:2px solid var(--grey-300);padding:12px 24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.yearbar .label{font-weight:600;color:var(--green-700)}.yearbar a{text-decoration:none;padding:8px 20px;border:2px solid var(--grey-300);border-radius:var(--radius);background:#fff;color:var(--grey-900);font-size:1.05rem;font-weight:600}.yearbar a.on{background:var(--green-700);border-color:var(--green-700);color:#fff}main{padding:28px 24px 120px;max-width:1280px;margin:0 auto}h1{font-size:1.7rem;margin:0 0 6px}h2{font-size:1.25rem;margin:32px 0 12px}.hint{color:var(--grey-600);margin:0 0 22px}.tablewrap{overflow-x:auto;border:1px solid var(--grey-300);border-radius:var(--radius);background:#fff}table{border-collapse:collapse;width:100%}td,th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--grey-100);white-space:nowrap}th{background:var(--grey-100);font-size:.82rem;text-transform:uppercase;letter-spacing:.6px;color:var(--grey-600);position:-webkit-sticky;position:sticky;top:0}tbody tr:hover{background:#fbfaf6}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--grey-600)}.pos{color:var(--green-700)}.neg,.pos{font-weight:600}.neg{color:var(--red)}input[type=number],input[type=text]{font:inherit;padding:7px 10px;border:1px solid var(--grey-300);border-radius:6px;background:#fff;width:100%;min-width:90px}input:focus{outline:3px solid #cfe0d4;border-color:var(--green-700)}input.changed{border-color:var(--gold);background:#fffdf5;box-shadow:0 0 0 2px #f0e3c6}td.num input{text-align:right}.savebar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:2px solid var(--grey-300);padding:14px 24px;display:flex;align-items:center;gap:16px;box-shadow:0 -4px 16px rgba(0,0,0,.07)}button{font:inherit;font-weight:600;padding:12px 30px;border:0;border-radius:var(--radius);background:var(--green-700);color:#fff;cursor:pointer}button:hover{background:var(--green-900)}button:disabled{background:var(--grey-300);color:var(--grey-600);cursor:default}.ok,.warn{padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;font-weight:500}.ok{background:#e6f2e8;border:1px solid #b6d6bd;color:#1d5129}.warn{background:#fdf3e0;border:1px solid #e8cf9a;color:#7a5310}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px;margin-bottom:12px}.card{background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius);padding:18px}.card .k{font-size:.8rem;text-transform:uppercase;letter-spacing:.6px;color:var(--grey-600)}.card .v{font-size:1.9rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px}.card .u{font-size:.85rem;color:var(--grey-600)}.loginwrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(160deg,var(--green-900) 0,var(--green-700) 100%)}.loginbox{background:#fff;border-radius:12px;padding:40px 36px;width:100%;max-width:420px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.loginbox h1{font-size:1.4rem;margin:0 0 6px;letter-spacing:1px}.loginbox label{display:block;margin:18px 0 6px;font-weight:600;font-size:.95rem}.loginbox input{width:100%;padding:12px;font-size:1.05rem}.loginbox button{width:100%;margin-top:26px;padding:14px;font-size:1.05rem}input[type=password]{font:inherit;padding:7px 10px;border:1px solid var(--grey-300);border-radius:6px;background:#fff}.who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.95rem}.who .name{color:#fff}.who .role{background:rgba(255,255,255,.16);color:#e8efe9;padding:3px 11px;border-radius:20px;font-size:.82rem}.who button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#cfd8d1;padding:7px 15px;font-size:.92rem;font-weight:500}.who button:hover{background:rgba(255,255,255,.12);color:#fff}.small{font-size:.9rem;color:var(--grey-600);margin-top:20px;text-align:center}.small code{background:var(--grey-100);padding:4px 8px;border-radius:4px;letter-spacing:1px}.steps{margin:0 0 18px;padding-left:20px;color:var(--grey-600);font-size:.95rem}.steps li{margin-bottom:6px}.qr{display:block;margin:0 auto 14px;border-radius:8px}input.code{font-size:1.9rem;letter-spacing:10px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:12px}.panel{background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius);padding:22px;margin-bottom:32px}.panel h2{margin-top:0}.inviteform{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:14px;gap:14px;align-items:end}.inviteform label{font-weight:600;font-size:.88rem;margin-bottom:5px}.inviteform .check{display:flex;align-items:center;gap:8px;font-weight:500;padding-bottom:9px}.inviteform .check input{width:auto}select{font:inherit;padding:7px 10px;border:1px solid var(--grey-300);border-radius:6px;background:#fff;width:100%}.linkbox{margin-top:10px;font-family:ui-monospace,Menlo,monospace;font-size:.85rem;background:#fff}.actions{display:flex;gap:6px;flex-wrap:wrap}button.mini{padding:6px 12px;font-size:.85rem;font-weight:500;background:var(--grey-100);color:var(--grey-900);border:1px solid var(--grey-300)}button.mini:hover{background:var(--grey-300)}button.mini.danger{color:var(--red);border-color:#e3bdb8}button.mini.danger:hover{background:#f7e6e4}.tag{display:inline-block;margin-left:6px;padding:2px 9px;border-radius:20px;background:var(--grey-100);color:var(--grey-600);font-size:.78rem}.tag.ok-tag{background:#e6f2e8;color:#1d5129}tr.inactive{opacity:.55}.editbar{display:flex;align-items:center;gap:14px;margin-bottom:14px}.tablewrap.editing{box-shadow:0 0 0 3px #f0e3c6;border-color:var(--gold)}input.locked{border-color:transparent;background:transparent;cursor:default;padding-left:0;padding-right:0}input.locked:focus{outline:none}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0 14px}.filters input[type=text]{max-width:340px}.filters select{max-width:280px}.filters .mini{display:inline-block;text-decoration:none;line-height:1.4}input[type=file]{font:inherit;padding:10px;border:1px dashed var(--grey-300);border-radius:var(--radius);background:var(--grey-50);width:100%}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--green-100)}tr.detailrow>td{background:var(--grey-50);padding:0 12px 14px}table.detail{width:auto;min-width:620px;margin:0;background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius);overflow:hidden}table.detail th{background:#fff;border-bottom:1px solid var(--grey-300);font-size:.74rem;position:static}table.detail td{padding:8px 12px}table.detail tr:last-child td{border-bottom:0}table.detail input{min-width:90px}th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}th.sortable:hover{background:var(--green-100);color:var(--green-700)}.yearbar .addyear{border-style:dashed;background:transparent;color:var(--green-700);font-weight:600}.yearbar .addyear:hover:not(:disabled){background:#fff;border-style:solid}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.button,a.button{display:inline-block;padding:9px 16px;border-radius:var(--radius);background:var(--wine,#6b1d2e);color:#fff;text-decoration:none;font-size:.92rem;font-weight:500}a.button:hover{filter:brightness(1.1)}a.cancel{color:var(--grey-600);text-decoration:none;padding:9px 4px}a.cancel:hover{text-decoration:underline}.empty{background:#fff;border:1px dashed var(--grey-300);border-radius:var(--radius);padding:28px;text-align:center;color:var(--grey-600)}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:24px;gap:24px}.cols h2{font-size:1rem;text-transform:uppercase;letter-spacing:.6px;color:var(--grey-600)}.card .big{display:block;font-size:1.9rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card>span:last-child{font-size:.85rem;color:var(--grey-600)}.parcelform fieldset{border:1px solid var(--grey-300);border-radius:var(--radius);padding:16px 20px 4px;margin:0 0 20px;background:#fff}.parcelform legend{padding:0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.6px;color:var(--grey-600);font-weight:600}.parcelform .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:0 20px;gap:0 20px}.parcelform .grid p{margin:0 0 14px}.parcelform .grid p.wide{grid-column:1/-1}.parcelform label{display:block;font-size:.85rem;color:var(--grey-600);margin-bottom:4px}.parcelform input,.parcelform select,.parcelform textarea{width:100%}.parcelform textarea{font:inherit;padding:8px 10px;border:1px solid var(--grey-300);border-radius:var(--radius);background:#fff;resize:vertical}.parcelform .radios{display:flex;gap:24px;margin-bottom:16px}.parcelform .radios label{display:flex;align-items:center;gap:7px;font-size:.95rem;color:inherit;margin:0}.parcelform .radios input{width:auto}.parcelform .actions{display:flex;align-items:center;gap:16px}td .note{font-size:.8rem;color:var(--grey-600);margin-top:2px;max-width:22ch;line-height:1.3}.yearstrip{display:flex;gap:4px;overflow-x:auto;margin:18px 0 24px;padding-bottom:6px}.yearstrip a{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;border:1px solid var(--grey-300);border-radius:var(--radius);background:#fff;text-decoration:none;color:inherit;min-width:74px}.yearstrip a:hover{border-color:var(--grey-600)}.yearstrip a.active{background:var(--wine,#6b1d2e);border-color:var(--wine,#6b1d2e);color:#fff}.yearstrip .y{font-size:.78rem;opacity:.75}.yearstrip .v{font-size:.95rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tfoot th{border-top:2px solid var(--grey-300);font-weight:600}.footnotes{margin-top:16px}.badges{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 22px}dl.fields{display:grid;grid-template-columns:auto 1fr;grid-gap:6px 16px;gap:6px 16px;margin:0}dl.fields dt{color:var(--grey-600);font-size:.85rem;align-self:center}dl.fields dd{margin:0}.leasecard{border:1px solid var(--grey-300);border-left-width:3px;border-radius:var(--radius);background:#fff;padding:14px 16px;margin-bottom:12px}.leasecard.active{border-left-color:var(--wine,#6b1d2e)}.leasehead{gap:12px;flex-wrap:wrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.leasehead,.leasehead .period{display:flex;align-items:center}.leasehead .period{font-weight:600;gap:8px}.leasehead .amount{margin-left:auto;font-weight:600}.leasebody{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 16px;gap:4px 16px;margin:10px 0 0}.leasebody dt{color:var(--grey-600);font-size:.85rem}.leasebody dd{margin:0;font-size:.92rem}.leaseform{margin-top:14px}.leaseform .grid,.leaseform fieldset{background:transparent}.warnTag{background:#fdf0e3;color:#8a5a1b}button.linklike{background:none;border:none;padding:0;color:var(--grey-600);font:inherit;font-size:.88rem;cursor:pointer;text-decoration:underline}button.linklike:hover{color:inherit}form.danger{margin-top:10px}form.danger button{color:#9b2226}.userpanel{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:24px;gap:24px;padding:14px 4px 6px}.userpanel h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.6px;color:var(--grey-600);margin:0 0 10px}.accessform{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.accessform label{display:grid;grid-template-columns:150px 1fr;align-items:center;grid-gap:10px;gap:10px;width:100%}.accessform label span{font-size:.88rem;color:var(--grey-600)}.btnrow{display:flex;flex-wrap:wrap;gap:8px}.btnrow button{font-size:.85rem;padding:7px 12px;background:#fff;border:1px solid var(--grey-300);color:inherit;border-radius:var(--radius);cursor:pointer}.btnrow button:hover:not(:disabled){border-color:var(--grey-600)}.btnrow button.danger{color:#9b2226;border-color:#e6c3c4}.btnrow button:disabled{opacity:.5;cursor:default}.inviteform .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:0 18px;gap:0 18px}.inviteform .grid p{margin:0 0 12px}.inviteform label{display:block;font-size:.85rem;color:var(--grey-600);margin-bottom:4px}.inviteform input,.inviteform select{width:100%}.inviteform .radios{display:flex;gap:20px;margin:6px 0 14px}.inviteform .radios label{display:flex;align-items:center;gap:7px;color:inherit;margin:0}.inviteform .radios input{width:auto}details.panel>summary{cursor:pointer;font-weight:600}.topbar .menu{position:relative;display:inline-flex}.topbar .menu>button{background:none;border:none;font:inherit;color:inherit;cursor:pointer;padding:6px 10px;border-radius:var(--radius);opacity:.85;display:inline-flex;align-items:center;gap:5px}.topbar .menu>button:hover{opacity:1}.topbar .menu>button.active{opacity:1;font-weight:600}.topbar .menu .caret{font-size:.7em;opacity:.7}.topbar .dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:190px;padding:6px;background:#fff;color:#1a1a1a;border:1px solid var(--grey-300);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.14);display:flex;flex-direction:column}.topbar .dropdown a{padding:8px 10px;border-radius:6px;text-decoration:none;color:inherit;opacity:1;font-size:.93rem}.topbar .dropdown a:hover{background:var(--grey-100,#f4f4f4)}.topbar .dropdown a.active{font-weight:600}.card.tipped{position:relative;cursor:default}.card.tipped:after{content:"▾";position:absolute;top:12px;right:14px;font-size:.7rem;color:var(--grey-600);opacity:.6}.card.tipped:focus-visible{outline:2px solid var(--wine,#6b1d2e);outline-offset:2px}.card .tip{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:230px;padding:12px 14px;background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius);box-shadow:0 10px 28px rgba(0,0,0,.16);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease,visibility .12s}.card.tipped:focus-within .tip,.card.tipped:hover .tip{opacity:1;visibility:visible;transform:translateY(0)}.card .tip strong{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.6px;color:var(--grey-600);margin-bottom:8px}.card .tip table{width:100%;font-size:.9rem}.card .tip td{padding:3px 0;border:none}.card .tip td+td{padding-left:14px}main.hub{max-width:760px;margin:0 auto;padding:72px 24px 80px}main.hub header{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:40px}main.hub header form{position:absolute;top:0;right:0}@media (max-width:560px){main.hub header form{position:static}}main.hub h1{font-size:2.2rem;letter-spacing:.12em;margin:0 0 4px}main.hub .hint{margin:0}button.ghost{background:none;border:1px solid var(--grey-300);color:inherit;padding:8px 14px;border-radius:var(--radius);cursor:pointer;font:inherit;font-size:.9rem}button.ghost:hover{border-color:var(--grey-600)}ul.tiles{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:16px;gap:16px}ul.tiles a{display:flex;flex-direction:column;gap:4px;padding:22px 24px;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius);transition:border-color .12s,transform .12s}ul.tiles a:hover{border-color:var(--wine,#6b1d2e);transform:translateY(-2px)}ul.tiles .tname{font-size:1.15rem;font-weight:600}ul.tiles .trole{font-size:.78rem;text-transform:uppercase;letter-spacing:.6px;color:var(--wine,#6b1d2e)}ul.tiles .turl{font-size:.82rem;color:var(--grey-600);margin-top:6px}@media (prefers-reduced-motion:reduce){ul.tiles a{transition:none}ul.tiles a:hover{transform:none}}.loginbox .brandmark{display:block;margin:8px auto 30px;height:84px;width:auto}.loginbox.centered>.hint,.loginbox.centered>h1{text-align:center}.loginbox.centered>h1{margin-top:0}main.hub .hubmark{display:block;height:120px;width:auto;max-width:100%;margin:0}