:root{--ink:#10151c;--ink-raised:#161d27;--hairline:#2a333f;--paper:#ede8dc;--paper-dim:#a9a396;--gold:#c7a24d;--gold-dim:#8a7238;--red-stamp:#a33b2f;--font-display:"Montserrat",sans-serif;--font-body:"Montserrat",sans-serif;--font-mono:"Montserrat",sans-serif}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--ink);color:var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.login-shell{min-height:100dvh;display:grid;grid-template-rows:1fr auto;position:relative;overflow:hidden}.login-main{display:flex;align-items:center;justify-content:center;padding:32px 24px;z-index:1}.login-card{width:100%;max-width:400px}.login-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}.login-logo{height:28px;width:auto;display:block;margin:0 0 24px}.login-title{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.15;margin:0 0 8px;color:var(--paper)}.login-subtitle{font-size:14px;color:var(--paper-dim);margin:0 0 36px;line-height:1.5}.field-label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:10px}.field-underline{width:100%;background:transparent;border:none;border-bottom:1px solid var(--hairline);color:var(--paper);font-size:17px;font-family:var(--font-mono);padding:10px 2px;letter-spacing:.05em;transition:border-color .15s ease}.field-underline:focus-visible{outline:none;border-bottom-color:var(--gold)}.login-error{font-size:13px;color:#e0796a;margin-top:14px;font-family:var(--font-mono);min-height:18px}.login-submit{margin-top:28px;width:100%;background:var(--gold);color:var(--ink);border:none;padding:14px 18px;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s ease}.login-submit:hover{background:#d4b263}.login-submit:disabled{background:var(--gold-dim);cursor:default}.login-footer{z-index:1;padding:20px 24px;border-top:1px solid var(--hairline);display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--paper-dim);letter-spacing:.04em}.footer-logo{height:14px;width:auto;display:block;opacity:.85}.portal-shell{min-height:100dvh}.portal-header{border-bottom:1px solid var(--hairline);padding:22px 32px;display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px}.portal-brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.04em}.brand-logo{height:18px;width:auto;display:block}.portal-crumb{font-family:var(--font-mono);font-size:12px;color:var(--paper-dim);letter-spacing:.03em}.portal-crumb a{color:var(--paper-dim);text-decoration:none;border-bottom:1px solid transparent}.portal-crumb a:hover{border-bottom-color:var(--paper-dim)}.logout-link{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);background:none;border:1px solid var(--hairline);padding:8px 14px;cursor:pointer}.logout-link:hover{border-color:var(--gold-dim);color:var(--gold)}.portal-body{max-width:920px;margin:0 auto;padding:56px 32px 80px}.back-button{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:#fff;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:10px 16px;margin:0 0 28px;transition:background .15s ease}.back-button:hover{background:#d4b263}.portal-heading{font-family:var(--font-display);font-weight:700;font-size:26px;margin:0 0 6px}.portal-sub{color:var(--paper-dim);font-size:14px;margin:0 0 40px}.folder-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1px;gap:1px;background:var(--hairline);border:1px solid var(--hairline)}@media (max-width:640px){.folder-grid{grid-template-columns:1fr}}.folder-card{background:var(--ink);padding:28px 26px;text-decoration:none;color:var(--paper);display:block;position:relative;transition:background .15s ease}.folder-card:hover{background:var(--ink-raised)}.folder-index{font-family:var(--font-mono);font-size:11px;color:var(--gold);letter-spacing:.1em;margin-bottom:18px;display:block}.folder-title{font-family:var(--font-display);font-weight:700;font-size:19px;margin:0 0 10px}.folder-desc{font-size:13px;color:var(--paper-dim);line-height:1.5;margin:0 0 22px}.folder-meta{font-family:var(--font-mono);font-size:11px;color:var(--paper-dim);padding-top:14px;display:flex;justify-content:space-between}.folder-meta,.ledger{border-top:1px solid var(--hairline)}.ledger-row{display:grid;grid-template-columns:auto 1fr auto auto auto;grid-gap:20px;gap:20px;align-items:center;padding:18px 4px;border-bottom:1px solid var(--hairline);color:var(--paper)}.ledger-row:hover .ledger-name{color:var(--gold)}.ledger-actions{display:flex;gap:10px;white-space:nowrap}.ledger-action{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--paper-dim);border:1px solid var(--hairline);padding:7px 12px;transition:border-color .15s ease,color .15s ease}.ledger-action:hover{border-color:var(--gold-dim);color:var(--gold)}.ledger-action-primary{color:var(--ink);background:var(--gold);border-color:var(--gold)}.ledger-action-primary:hover{background:#d4b263;border-color:#d4b263;color:var(--ink)}.ledger-num{font-family:var(--font-mono);font-size:12px;color:var(--paper-dim);width:28px}.ledger-name{font-size:15px;font-weight:600;text-decoration:none;transition:color .15s ease}.ledger-name:hover{color:var(--gold)}.ledger-date,.ledger-size{font-family:var(--font-mono);font-size:12px;color:var(--paper-dim);white-space:nowrap}.empty-state{padding:60px 4px;text-align:center;border-top:1px solid var(--hairline)}.empty-state p{font-family:var(--font-mono);font-size:13px;color:var(--paper-dim);margin:0}