.logout-button{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;padding:5px 8px}.logout-button:hover{color:var(--danger)}.login-page{min-height:100vh;background:#f4f7fb}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1fr) minmax(420px,520px)}.login-brand{background:linear-gradient(145deg,#0d172a,#142848);color:white;padding:56px;display:flex;flex-direction:column;justify-content:space-between}.brand.large{font-size:20px}.login-brand h1{font-size:42px;line-height:1.1;max-width:650px;margin:16px 0}.login-brand p{color:#afbed3;font-size:16px;line-height:1.7;max-width:600px}.eyebrow.light{color:#66a9ff}.login-card{background:white;padding:64px;display:flex;flex-direction:column;justify-content:center;gap:28px}.login-card h2{font-size:28px;margin:8px 0}.login-card p{color:var(--muted)}.login-submit{width:100%;justify-content:center;padding:12px}.remember{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.demo-accounts{border-top:1px solid var(--border);padding-top:20px;display:grid;gap:5px;font-size:11px;color:var(--muted)}.demo-accounts strong{color:var(--text);font-size:12px}.demo-accounts small{font-family:"JetBrains Mono",monospace;color:var(--primary)}
:root{--bg:#f5f7fb;--surface:#fff;--surface-2:#f8fafc;--text:#111827;--muted:#697386;--border:#e4e8ef;--primary:#0758c9;--primary-2:#0c6be8;--nav:#0e1729;--nav-active:#1c2940;--success:#099268;--warning:#d97706;--danger:#dc2626;--radius:10px;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 4px rgba(16,24,40,.04)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:var(--nav);color:#d8deea;display:flex;flex-direction:column;border-right:1px solid #1f2a3e;z-index:20}.brand{height:64px;display:flex;align-items:center;gap:10px;padding:0 24px;color:white;text-decoration:none;font-size:17px;font-weight:700;border-bottom:1px solid #202b3f}.brand-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:linear-gradient(145deg,#1875ef,#064cae);font-size:10px}.nav-label{padding:26px 24px 10px;color:#7f899d;text-transform:uppercase;font-size:11px;font-weight:700}.nav{display:grid;gap:4px;padding:0 12px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;color:#cad1dd;text-decoration:none;font-weight:500}.nav a span{width:17px;text-align:center;color:#b3bdcc}.nav a:hover,.nav a.active{background:var(--nav-active);color:white}.nav a.active span{color:#fff}.user-card{margin-top:auto;border-top:1px solid #202b3f;padding:18px 16px;display:flex;align-items:center;gap:11px}.user-card strong,.user-card small{display:block}.user-card small{margin-top:2px;color:#8490a3;font-size:11px}.app-shell{margin-left:255px;min-height:100vh}.topbar{height:64px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;font-size:18px;position:sticky;top:0;z-index:10}.top-actions{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:#18b982;box-shadow:0 0 0 3px #d8f7eb}.content{padding:32px;max-width:1500px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.eyebrow{display:flex;align-items:center;gap:7px;color:var(--primary);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:7px}.page-head h1{font-size:26px;line-height:1.2;margin:0}.page-head p{margin:7px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:22px}.card-label{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:600}.metric{font-size:28px;font-weight:700;margin:14px 0 6px}.metric.long{font-size:20px;text-transform:capitalize}.trend{font-size:12px;color:var(--muted)}.trend.up{color:var(--success)}.section{margin-top:22px}.section-title{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 14px}.section-title h2{font-size:16px;margin:0}.section-title p{margin:5px 0 0;color:var(--muted);font-size:12px}.activity-list{padding:0 22px 20px}.activity{display:grid;grid-template-columns:9px 1fr auto;gap:14px;padding:16px 0;border-top:1px solid var(--border);align-items:start}.activity:first-child{border-top:0}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);margin-top:6px}.activity p{margin:0}.activity small{color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius) var(--radius) 0 0}.input,.select,textarea{height:40px;border:1px solid var(--border);background:white;border-radius:7px;padding:0 12px;font:inherit;color:var(--text);outline:none}.input:focus,.select:focus,textarea:focus{border-color:#84b5f4;box-shadow:0 0 0 3px #ddecff}.input.search{min-width:280px;flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 14px;border-radius:7px;border:1px solid var(--border);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;background:white;color:var(--text)}.btn:hover{background:#f7f9fc}.btn.primary{background:var(--primary);border-color:var(--primary);color:white}.btn.primary:hover{background:var(--primary-2)}.btn.danger{color:var(--danger)}.btn.small{min-height:31px;padding:0 10px;font-size:12px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:850px}.data-table th{padding:12px 14px;text-align:left;background:#fbfcfe;border-bottom:1px solid var(--border);color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:10px;white-space:nowrap}.data-table th a{color:inherit;text-decoration:none}.data-table td{padding:14px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr:hover{background:#f9fbff}.person{display:flex;align-items:center;gap:10px;min-width:190px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9f2ff;color:var(--primary);font-weight:700;font-size:11px;flex:0 0 auto}.avatar.dark{background:#0757bd;color:white}.person strong,.person small{display:block}.person small{font-size:10px;color:var(--muted);margin-top:2px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:700;text-transform:capitalize;background:#e9f2ff;color:#0752b5}.badge.green{background:#dcfce7;color:#087443}.badge.amber{background:#fff3d6;color:#9a5700}.badge.red{background:#fee2e2;color:#b42318}.badge.gray{background:#eef1f5;color:#5c6472}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;color:var(--muted);font-size:12px}.pagination{display:flex;align-items:center;gap:6px}.pagination a,.pagination span{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border:1px solid var(--border);border-radius:6px;color:var(--text);text-decoration:none;background:white}.pagination .disabled{opacity:.45}.flash{padding:13px 16px;border-radius:8px;margin-bottom:18px}.flash.success{background:#e6f8f1;color:#086b4d;border:1px solid #b7ead7}.flash.error{background:#fff0f0;color:#a31d1d;border:1px solid #ffd0d0}.flash ul{margin:6px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field label{display:block;font-weight:600;font-size:11px;margin-bottom:6px}.field .input,.field .select,.field textarea{width:100%}.field textarea{height:82px;padding-top:10px}.details-panel{padding:0}.details-panel summary{list-style:none;cursor:pointer}.details-panel summary::-webkit-details-marker{display:none}.details-body{padding:20px;border-top:1px solid var(--border)}.stack{display:grid;gap:12px}.approval-card{padding:20px}.approval-head{display:flex;justify-content:space-between;gap:16px}.approval-head h3{margin:4px 0;font-size:15px}.approval-head p{margin:0;color:var(--muted);font-size:12px}.approval-meta{display:flex;gap:24px;margin:16px 0;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted);font-size:12px}.approval-actions{display:flex;gap:8px}.progress{height:8px;background:#e8edf4;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:var(--primary);border-radius:inherit}.team-card h3{margin:0}.team-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin:10px 0 14px}.report-tabs{display:flex;border:1px solid var(--border);border-radius:8px;padding:3px;background:white}.report-tabs a{padding:8px 12px;border-radius:6px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:600}.report-tabs a.active{background:#eef3fa;color:var(--text)}.catalog-card{display:flex;flex-direction:column;gap:14px}.catalog-card h3{margin:0}.catalog-card p{color:var(--muted);margin:0;min-height:40px}.catalog-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.column-picker{position:relative}.column-picker summary{list-style:none}.column-menu{position:absolute;right:0;top:42px;width:210px;background:white;border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 12px 28px rgba(15,23,42,.15);z-index:5}.column-menu label{display:flex;justify-content:space-between;padding:8px;border-radius:6px;cursor:pointer}.column-menu label:hover{background:var(--surface-2)}.hidden-column{display:none!important}.mono{font-family:"JetBrains Mono",monospace}.muted{color:var(--muted)}.right{text-align:right!important}
.person-link{color:inherit;text-decoration:none}.person-link:hover strong{color:var(--primary)}.profile-title{display:flex;align-items:center;gap:16px}.profile-avatar{width:58px;height:58px;font-size:17px}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0 22px 22px}.record-grid>div{padding:14px 0;border-top:1px solid var(--border)}.record-grid small,.record-grid strong{display:block}.record-grid small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.balance-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid var(--border)}.balance-row:first-child{border-top:0}.balance-row small,.balance-value small,.document-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.balance-value{text-align:right;font-size:20px;font-weight:700;color:var(--primary)}.document-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:14px 0;border-top:1px solid var(--border)}.document-row:first-child{border-top:0}.doc-icon{width:34px;height:34px;display:grid;place-items:center;background:#edf4ff;color:var(--primary);border-radius:7px}.popover-form{position:absolute;right:20px;margin-top:8px;width:310px;background:white;border:1px solid var(--border);padding:16px;border-radius:9px;box-shadow:0 15px 35px rgba(15,23,42,.17);z-index:6}.section-title .details-panel{position:relative}.timeline{padding:0 24px 24px}.timeline-item{display:grid;grid-template-columns:12px 1fr;gap:14px;position:relative;padding:0 0 22px}.timeline-item>span{width:10px;height:10px;border-radius:50%;background:var(--primary);margin-top:5px;box-shadow:0 0 0 4px #e7f1ff}.timeline-item:not(:last-child):before{content:"";position:absolute;left:4px;top:16px;bottom:2px;border-left:1px solid #cdd9e8}.timeline-item p{margin:5px 0;color:var(--muted)}.timeline-item small{color:var(--muted)}.progress.compact{width:110px;height:5px;margin-bottom:4px}
@media(max-width:1050px){.grid.four{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{width:74px}.brand span:last-child,.nav-label,.nav a:not(.active){font-size:0}.nav a{justify-content:center}.nav a span{font-size:16px}.user-card>div:last-child{display:none}.app-shell{margin-left:74px}.content{padding:20px}.topbar{padding:0 20px}.page-head{flex-direction:column}.grid.four,.grid.three,.grid.two,.form-grid,.record-grid{grid-template-columns:1fr}.input.search{min-width:180px}.toolbar>*{width:100%}.popover-form{position:fixed;inset:80px 20px auto 90px;width:auto}}