:root{--ink: #0e1b2e;--ink-2: #16263d;--line: #24374f;--paper: #f7f5f0;--paper-2: #efece4;--gold: #c9a227;--gold-soft: #e6cf7a;--steel: #8a99ad;--slate: #4a5a6e;--red: #b04a3a;--green: #3f7d5a;--radius: 6px;--display: Georgia, "Times New Roman", serif;--body: "Segoe UI", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,.display{font-family:var(--display);font-weight:400;letter-spacing:.01em}a{color:inherit}button{font-family:var(--body);cursor:pointer}input,select,textarea{font-family:var(--body);font-size:14px}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.topbar{background:var(--ink);color:var(--paper);padding:0 28px;height:58px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--gold)}.brand{font-family:var(--display);font-size:19px;letter-spacing:.06em}.brand span{color:var(--gold)}.topbar .who{color:var(--steel);font-size:13px;display:flex;gap:14px;align-items:center}.page{max-width:1080px;margin:0 auto;padding:34px 24px 80px}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}.page-head h1{font-size:30px}.page-head .sub{color:var(--slate);font-size:14px;margin-top:4px}.btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:9px 18px;border-radius:var(--radius);font-size:14px;transition:background .15s}.btn:hover{background:#1d3050}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--ink);font-weight:600}.btn.gold:hover{background:var(--gold-soft)}.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:#0e1b2e0f}.btn.danger{background:transparent;border-color:var(--red);color:var(--red)}.btn.danger:hover{background:#b04a3a14}.btn.small{padding:5px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.room-card{display:block;text-decoration:none;background:#fff;border:1px solid #ddd8cc;border-left:4px solid var(--gold);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;transition:transform .12s,box-shadow .12s}.room-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0e1b2e14}.room-card h3{font-size:19px;margin-bottom:3px}.room-card .meta{color:var(--slate);font-size:13px}.panel{background:#fff;border:1px solid #ddd8cc;border-radius:var(--radius);padding:20px;margin-bottom:18px}.panel h3{font-size:17px;margin-bottom:12px}.row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #eee9dd;font-size:14px}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .dim{color:var(--slate);font-size:12.5px}.badge{font-size:11.5px;padding:2px 9px;border-radius:999px;letter-spacing:.04em;text-transform:uppercase}.badge.approved{background:#3f7d5a1f;color:var(--green)}.badge.pending{background:#c9a22729;color:#8a6d10}.badge.revoked{background:#b04a3a1a;color:var(--red)}.badge.off{background:#4a5a6e1f;color:var(--slate)}.tabs{display:flex;gap:4px;border-bottom:2px solid #ddd8cc;margin-bottom:22px;flex-wrap:wrap}.tabs button{background:none;border:none;padding:10px 16px;font-size:14px;color:var(--slate);border-bottom:2px solid transparent;margin-bottom:-2px}.tabs button.active{color:var(--ink);border-bottom-color:var(--gold);font-weight:600}.tabs button .count{color:var(--gold);margin-left:5px;font-weight:600}.field{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}.field input[type=text],.field input[type=email],.field input[type=datetime-local],.field textarea,.field select{flex:1;min-width:200px;padding:9px 12px;border:1px solid #cfc9ba;border-radius:var(--radius);background:#fff}.toggle{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:14px}.toggle input{width:18px;height:18px;accent-color:var(--gold)}.toggle .hint{color:var(--slate);font-size:12.5px}.dropzone{border:2px dashed #cfc9ba;border-radius:var(--radius);padding:30px;text-align:center;color:var(--slate);background:var(--paper-2);transition:border-color .15s,background .15s}.dropzone.over{border-color:var(--gold);background:#fdf8e9}.login-wrap{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;background:var(--ink)}.login-hero{position:relative;overflow:hidden;color:var(--paper);display:flex;flex-direction:column;justify-content:center;padding:60px}.login-hero:before{content:"CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT · CONFIDENTIAL · DECIPHER VAULT";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;transform:rotate(-24deg);font-family:var(--display);font-size:28px;line-height:2.6;color:#c9a22712;word-spacing:14px;pointer-events:none}.login-hero h1{font-size:42px;margin-bottom:14px;position:relative}.login-hero h1 span{color:var(--gold)}.login-hero p{color:var(--steel);max-width:400px;position:relative}.login-form{background:var(--paper);display:flex;flex-direction:column;justify-content:center;padding:60px;gap:14px}.login-form h2{font-size:24px}.login-form input{padding:12px 14px;border:1px solid #cfc9ba;border-radius:var(--radius);font-size:15px}.login-form .note{color:var(--slate);font-size:13px}.viewer-shell{background:var(--ink);min-height:100vh;color:var(--paper)}.viewer-body{display:flex;gap:0;min-height:calc(100vh - 58px)}.viewer-side{width:290px;flex-shrink:0;border-right:1px solid var(--line);padding:18px;overflow-y:auto}.viewer-side h3{font-size:15px;color:var(--gold);margin:14px 0 6px}.viewer-side h3:first-child{margin-top:0}.file-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--paper);padding:8px 10px;border-radius:var(--radius);font-size:13.5px}.file-item:hover{background:var(--ink-2)}.file-item.active{background:var(--ink-2);color:var(--gold-soft)}.file-item .sz{color:var(--steel);font-size:11.5px;display:block}.viewer-main{flex:1;padding:22px;overflow-y:auto}.pdf-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}.pdf-page{position:relative;box-shadow:0 8px 30px #00000073}.pdf-page canvas{display:block;max-width:100%;height:auto}.viewer-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:var(--steel);font-size:13px;flex-wrap:wrap}.viewer-toolbar .name{color:var(--paper);font-family:var(--display);font-size:17px}.empty{color:var(--slate);text-align:center;padding:50px 20px;font-size:14px}.viewer-shell .empty{color:var(--steel)}.alert{padding:12px 16px;border-radius:var(--radius);font-size:14px;margin-bottom:16px}.alert.ok{background:#3f7d5a1f;color:var(--green)}.alert.err{background:#b04a3a1a;color:var(--red)}.alert.gold{background:#c9a22724;color:#7a600e}.center-card{max-width:480px;margin:80px auto;background:#fff;border:1px solid #ddd8cc;border-top:4px solid var(--gold);border-radius:var(--radius);padding:34px;text-align:center}.center-card h2{margin-bottom:10px}.center-card p{color:var(--slate);font-size:14px;margin-bottom:18px}@media (max-width: 860px){.login-wrap{grid-template-columns:1fr}.login-hero{padding:40px 30px;min-height:220px}.viewer-body{flex-direction:column}.viewer-side{width:100%;border-right:none;border-bottom:1px solid var(--line)}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
