:root{--ink: #2E2013;--ink-elev: #3A2A18;--paper: #F7F1E3;--surface: #FFFDF8;--line: #E3D8BE;--text: #2E2013;--text-muted: #7A6A52;--text-inverse: #F5EFE0;--text-inverse-muted: #B9A98D;--amber: #E8862B;--amber-deep: #C36A1B;--danger: #A63D26;--danger-deep: #832F1C;--verified: #5B6B3F;--warning: #D4A017}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--paper);color:var(--text);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Bitter,serif;font-weight:800}.navbar{display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--text-inverse);padding:.6rem 1.5rem;gap:1rem;flex-wrap:wrap}.navbar-brand{display:flex;align-items:center;gap:.6rem}.navbar-brand img{width:34px;height:34px;border-radius:50%;flex:none}.navbar-brand .brand-text{font-family:Bitter,serif;font-weight:800;text-transform:uppercase;font-size:.85rem;line-height:1.15;letter-spacing:.02em}.navbar-brand .brand-text small{display:block;font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:.6rem;letter-spacing:.1em;color:var(--text-inverse-muted);text-transform:uppercase;margin-top:2px}.navbar-links{display:flex;gap:1.25rem}.navbar-links a{color:var(--text-inverse-muted);text-decoration:none;font-weight:500;font-size:.9rem}.navbar-links a.active,.navbar-links a:hover{color:var(--text-inverse)}.navbar-user{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--text-inverse-muted)}.navbar-user button{background:#ffffff1f;border:1px solid var(--text-inverse-muted);color:var(--text-inverse);padding:.35rem .75rem;border-radius:2px;cursor:pointer}.navbar-user button:hover{background:var(--amber);border-color:var(--amber);color:var(--ink)}.page{max-width:1100px;margin:0 auto;padding:1.5rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}h1{color:var(--ink);text-transform:uppercase;letter-spacing:.01em;font-size:1.7rem}.cards{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.card{flex:1;min-width:160px;background:var(--surface);border-radius:3px;border:1px solid var(--line);padding:1.25rem;text-align:center;box-shadow:0 1px 3px #2e201314;border-top:4px solid var(--amber)}.card-red{border-top-color:var(--danger)}.card-yellow{border-top-color:var(--warning)}.card-value{font-size:2rem;font-weight:700;font-family:Bitter,serif}.card-label{color:var(--text-muted)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:3px;overflow:hidden;box-shadow:0 1px 3px #2e201314}.table th,.table td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line)}.table th{background:#f0e7d2;color:var(--text-muted);font-family:IBM Plex Mono,monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.table a{color:var(--amber-deep);font-weight:600}.row-expired{background:#f3e0d8}.row-warning{background:#fbe9d2}.actions{display:flex;gap:.4rem}.actions button{cursor:pointer}button{background:var(--ink);color:var(--text-inverse);border:none;padding:.45rem .9rem;border-radius:2px;cursor:pointer;font-size:.9rem;font-weight:600}button:hover{background:var(--amber);color:var(--ink)}button.btn-danger{background:var(--danger)}button.btn-danger:hover{background:var(--danger-deep);color:var(--text-inverse)}button.btn-amber{background:var(--amber);color:var(--ink)}button.btn-amber:hover{background:var(--amber-deep)}input,select,textarea{padding:.4rem .5rem;border:1.5px solid var(--line);border-radius:2px;font-size:.9rem;font-family:inherit;background:var(--surface);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--amber);outline-offset:1px}.filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.inline-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.card-form{background:var(--surface);border:1px solid var(--line);padding:1.25rem;border-radius:3px;margin:1rem 0;display:flex;flex-direction:column;gap:.75rem;max-width:560px;box-shadow:0 1px 3px #2e201314}.card-form h3{font-size:1.1rem;margin:0}.card-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.card-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--text-muted)}.form-actions{display:flex;gap:.5rem}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem 1.5rem;background:var(--surface);border:1px solid var(--line);padding:1rem 1.25rem;border-radius:3px;margin-bottom:1rem;box-shadow:0 1px 3px #2e201314}.badge,.chip{display:inline-flex;align-items:center;gap:6px;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-family:IBM Plex Mono,monospace;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#fff}.badge-green,.chip.verified{background:var(--verified)}.badge-yellow,.chip.warning{background:var(--warning);color:var(--ink)}.badge-red,.chip.danger{background:var(--danger)}.badge-gray,.chip.none{background:#999}.alert{padding:.6rem 1rem;border-radius:2px;margin-bottom:1rem}.alert-error{background:#f3e0d8;color:var(--danger-deep);border:1px solid var(--danger)}.login-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;background:var(--paper)}.login-form{background:var(--surface);border:1px solid var(--line);padding:2rem;border-radius:3px;box-shadow:0 2px 8px #2e20131f;display:flex;flex-direction:column;gap:.9rem;width:320px}.login-form h1{margin:0;text-align:center}.login-form .subtitle{text-align:center;color:var(--text-muted);margin:0 0 .5rem;font-size:.85rem}.login-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--text-muted)}.qr-panel{background:var(--ink);color:var(--text-inverse);border-radius:3px;padding:1.25rem 1.5rem;margin:1.5rem 0;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.qr-panel img{background:#fff;padding:8px;border-radius:4px;width:140px;height:140px}.qr-panel .qr-info{flex:1;min-width:220px}.qr-panel .qr-info h3{color:var(--text-inverse);margin:0 0 .4rem}.qr-panel .qr-url{font-family:IBM Plex Mono,monospace;font-size:.8rem;color:var(--text-inverse-muted);word-break:break-all;margin-bottom:.6rem}.qr-panel .qr-actions{display:flex;gap:.5rem;flex-wrap:wrap}.public-page{background:var(--paper);min-height:100vh}.public-header{background:var(--ink);color:var(--text-inverse);padding:28px 24px;display:flex;align-items:center;gap:14px}.public-header img{width:44px;height:44px;border-radius:50%;flex:none}.public-header .name{font-family:Bitter,serif;font-weight:800;text-transform:uppercase;font-size:17px;line-height:1.15;letter-spacing:.03em}.public-header .name small{display:block;font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:10px;letter-spacing:.12em;color:var(--text-inverse-muted);text-transform:uppercase;margin-top:2px}.public-main{max-width:820px;margin:0 auto;padding:36px 24px 60px}.public-main h1{font-size:26px;margin:0 0 6px}.public-main .sub{color:var(--text-muted);font-size:14px;margin:0 0 28px}.doc-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:16px 20px;margin-bottom:10px;text-decoration:none;color:inherit}.doc-row:hover{border-color:var(--ink)}.doc-left{display:flex;align-items:center;gap:16px;min-width:0}.doc-icon{width:38px;height:38px;border-radius:2px;background:var(--ink);color:var(--amber);display:flex;align-items:center;justify-content:center;font-size:13px;flex:none;font-family:IBM Plex Mono,monospace;font-weight:600}.doc-info h3{margin:0;font-size:16px;font-weight:700;font-family:IBM Plex Sans,sans-serif;text-transform:none}.doc-info .meta{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--text-muted);margin-top:3px}.public-footer{max-width:820px;margin:0 auto;padding:0 24px 40px;color:var(--text-muted);font-size:12px;font-family:IBM Plex Mono,monospace}
