:root{--font-body:"DM Sans", sans-serif;--font-display:"Instrument Serif", serif;--clr-bg:#faf9f7;--clr-surface:#fff;--clr-border:#e8e6e1;--clr-border-subtle:#f0eeea;--clr-text:#1a1816;--clr-text-secondary:#6b6560;--clr-text-muted:#9e9890;--clr-accent:#2c5f2d;--clr-accent-light:#e8f0e8;--clr-accent-hover:#1e4620;--clr-error:#a13232;--clr-error-bg:#fdf0f0;--clr-success:#2c5f2d;--clr-success-bg:#e8f0e8;--clr-nav-bg:#1a1816;--clr-nav-text:#c8c4be;--clr-nav-active:#fff;--radius:8px;--shadow-sm:0 1px 2px #1a18160a;--shadow-md:0 2px 8px #1a18160f, 0 1px 2px #1a18160a;--shadow-lg:0 8px 24px #1a181614, 0 2px 8px #1a18160a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--clr-bg);color:var(--clr-text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}a{color:var(--clr-accent);text-decoration:none}.layout{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--clr-nav-bg);flex-direction:column;height:100vh;padding:2rem 0;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid #ffffff0f;margin-bottom:.5rem;padding:0 1.5rem 2rem}.sidebar-brand h1{font-family:var(--font-display);color:var(--clr-nav-active);letter-spacing:-.01em;font-size:1.35rem;font-weight:400;line-height:1.2}.sidebar-brand span{color:var(--clr-nav-text);text-transform:uppercase;letter-spacing:.08em;margin-top:.35rem;font-size:.7rem;display:block}.sidebar-nav{flex:1;padding:.5rem .75rem}.sidebar-nav a{color:var(--clr-nav-text);border-radius:6px;align-items:center;gap:.75rem;margin-bottom:2px;padding:.6rem .75rem;font-size:.85rem;font-weight:450;transition:all .15s;display:flex}.sidebar-nav a:hover{color:var(--clr-nav-active);background:#ffffff0f}.sidebar-nav a.router-link-active{color:var(--clr-nav-active);background:#ffffff1a}.sidebar-nav a svg{opacity:.6;flex-shrink:0;width:18px;height:18px}.sidebar-nav a:hover svg,.sidebar-nav a.router-link-active svg{opacity:1}.sidebar-footer{border-top:1px solid #ffffff0f;padding:1rem 1.5rem}.sidebar-customer{color:var(--clr-nav-text);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.75rem;display:flex}.sidebar-customer:before{content:"";background:var(--clr-accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-account-link{color:var(--clr-nav-text);margin-bottom:.75rem;font-size:.78rem;transition:color .15s;display:block}.sidebar-account-link:hover{color:var(--clr-nav-active)}.sidebar-logout button{color:var(--clr-nav-text);font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:6px;width:100%;padding:.45rem 1rem;font-size:.8rem;transition:all .15s}.sidebar-logout button:hover{color:var(--clr-nav-active);background:#ffffff0a;border-color:#fff3}.main{max-width:960px;padding:2.5rem 3rem}.page-header{margin-bottom:2rem}.page-header h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--clr-text);font-size:1.75rem;font-weight:400}.page-header p{color:var(--clr-text-secondary);margin-top:.35rem;font-size:.9rem}.card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;padding:1.5rem}.card-header{text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-muted);border-bottom:1px solid var(--clr-border-subtle);margin-bottom:1rem;padding-bottom:.75rem;font-size:.7rem;font-weight:600}table{border-collapse:collapse;width:100%}thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-muted);text-align:left;border-bottom:1px solid var(--clr-border);padding:0 .75rem .75rem;font-size:.7rem;font-weight:600}tbody td{color:var(--clr-text);border-bottom:1px solid var(--clr-border-subtle);padding:.75rem;font-size:.85rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#00000003}.td-filename{font-weight:500}.td-muted{color:var(--clr-text-secondary)}.td-empty{color:var(--clr-text-muted);padding:2rem .75rem;font-style:italic}.badge{letter-spacing:.02em;border-radius:99px;padding:.15rem .55rem;font-size:.72rem;font-weight:550;display:inline-block}.badge-success{background:var(--clr-success-bg);color:var(--clr-success)}.badge-default{background:var(--clr-border-subtle);color:var(--clr-text-secondary)}.form-group{margin-bottom:1.25rem}.form-label{color:var(--clr-text);margin-bottom:.4rem;font-size:.8rem;font-weight:550;display:block}.form-input,.form-select{width:100%;font-family:var(--font-body);border:1px solid var(--clr-border);background:var(--clr-surface);color:var(--clr-text);border-radius:6px;outline:none;padding:.6rem .75rem;font-size:.85rem;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus{border-color:var(--clr-accent);box-shadow:0 0 0 3px var(--clr-accent-light)}.form-input::placeholder{color:var(--clr-text-muted)}.form-hint{color:var(--clr-text-muted);margin-top:.3rem;font-size:.75rem}.form-checkbox-row{align-items:center;gap:.5rem;display:flex}.form-checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--clr-accent)}.btn{font-family:var(--font-body);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.85rem;font-weight:550;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--clr-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--clr-accent-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--clr-surface);color:var(--clr-text);border:1px solid var(--clr-border)}.btn-secondary:hover:not(:disabled){background:var(--clr-bg);border-color:var(--clr-text-muted)}.alert{border-radius:6px;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.85rem}.alert-error{background:var(--clr-error-bg);color:var(--clr-error);border:1px solid #a132321f}.alert-success{background:var(--clr-success-bg);color:var(--clr-success);border:1px solid #2c5f2d1f}.stats-row{gap:1rem;margin-bottom:1.5rem;display:flex}.stat-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex:1;padding:1.25rem 1.5rem}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-muted);margin-bottom:.35rem;font-size:.7rem;font-weight:600}.stat-value{font-family:var(--font-display);color:var(--clr-text);font-size:1.75rem;font-weight:400;line-height:1.1}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.file-tile{background:var(--clr-surface);border:2px solid var(--clr-border);border-radius:var(--radius);cursor:pointer;padding:1.25rem;transition:all .15s;position:relative}.file-tile:hover{border-color:var(--clr-text-muted);box-shadow:var(--shadow-md)}.file-tile.selected{border-color:var(--clr-accent);background:var(--clr-accent-light);box-shadow:0 0 0 3px #2c5f2d1a}.file-tile-label{color:var(--clr-text);margin-bottom:.35rem;font-size:.92rem;font-weight:550}.file-tile-extensions{flex-wrap:wrap;gap:.35rem;display:flex}.ext-tag{text-transform:uppercase;letter-spacing:.04em;background:var(--clr-border-subtle);color:var(--clr-text-muted);border-radius:4px;padding:.15rem .45rem;font-size:.68rem;font-weight:600}.file-tile.selected .ext-tag{color:var(--clr-accent);background:#2c5f2d1f}.upload-zone{border:2px dashed var(--clr-border);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--clr-bg);padding:2.5rem 2rem;transition:all .2s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--clr-accent);background:var(--clr-accent-light)}.upload-zone strong{color:var(--clr-accent)}.login-body{background:var(--clr-nav-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--clr-surface);border-radius:12px;width:100%;max-width:400px;margin:2rem;padding:2.5rem;box-shadow:0 20px 60px #0000004d,0 4px 16px #0003}.login-brand{text-align:center;margin-bottom:2rem}.login-brand h1{font-family:var(--font-display);color:var(--clr-text);letter-spacing:-.02em;font-size:1.75rem;font-weight:400}.login-brand p{color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:.25rem;font-size:.8rem}.login-divider{background:var(--clr-border);height:1px;margin-bottom:1.75rem}
