:root{--bg: #0b0d11;--bg-elev: #13171e;--bg-elev-2: #1a2029;--line: #2a3340;--text: #e8edf4;--muted: #8b97a8;--gold: #d4a017;--gold-dim: #8a6a10;--danger: #d35a5a;--ok: #3dba7a;--shadow: 0 18px 50px rgba(0, 0, 0, .45);font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}html{--frame-h: 100dvh;--vv-offset: 0px}body{background:radial-gradient(1200px 600px at 50% -10%,#1b2230 0%,var(--bg) 55%);color:var(--text);overflow-x:clip}button,input,select{font:inherit}button{cursor:pointer}.gate{min-height:100%;display:grid;place-items:center;padding:32px 16px}.card{width:min(460px,100%);background:var(--bg-elev);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.mark{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:#1f1a0d;color:var(--gold);margin-bottom:18px}h1{font-size:26px;margin:0 0 6px;letter-spacing:-.03em}.sub{color:var(--muted);margin:0 0 22px;line-height:1.45}label{display:block;font-size:13px;color:var(--muted);margin:0 0 6px}input[type=password],input[type=text],select,textarea{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:11px 12px;outline:none;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--gold-dim)}.btn{border:0;border-radius:10px;padding:11px 14px;background:var(--gold);color:#1a1403;font-weight:650}.btn:disabled{opacity:.55;cursor:wait}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:7px 10px;font-size:13px}.row{display:flex;gap:10px;flex-wrap:wrap}.stack{display:grid;gap:12px}.err{color:var(--danger);font-size:13px;margin:0}.ok{color:var(--ok);font-size:13px}.recovery{background:#1f1a0d;border:1px dashed var(--gold-dim);border-radius:12px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;line-height:1.5}.app{height:100%;min-height:0;overflow:hidden;display:grid;grid-template-columns:260px 1fr}.side{border-right:1px solid var(--line);background:#0c0e12d9;padding:18px 14px;display:flex;flex-direction:column;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.03em}.brand small{display:block;color:var(--muted);font-weight:400;font-size:12px}.folders{display:grid;gap:4px;overflow:auto}.folder-btn{text-align:left;background:transparent;border:0;color:var(--text);padding:8px 10px;border-radius:8px}.folder-btn.active,.folder-btn:hover{background:var(--bg-elev-2)}.folder-btn span{color:var(--muted);float:right}.main{display:grid;grid-template-rows:auto 1fr;min-width:0;min-height:0;overflow:hidden}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.search{flex:1;max-width:420px}.content{padding:20px;overflow:auto}.drop{border:1px dashed var(--line);border-radius:14px;padding:22px;text-align:center;color:var(--muted);background:#13171e99;margin-bottom:18px}.drop.hot{border-color:var(--gold);color:var(--text)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}.table td{padding:11px 10px;border-bottom:1px solid #1d2430;vertical-align:middle}.table tr:hover td{background:#ffffff05}.name{font-weight:600}.meta{color:var(--muted);font-size:12px}.pill{display:inline-block;font-size:11px;border-radius:999px;padding:2px 8px;background:var(--bg-elev-2);color:var(--muted);margin-right:4px}.pill.gold{color:var(--gold);background:#1f1a0d}.modal-back{position:fixed;top:0;left:0;width:100%;height:var(--frame-h, 100dvh);max-height:var(--frame-h, 100dvh);transform:translateY(var(--vv-offset, 0px));background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden;z-index:40}.modal-back:has(.drawer){align-items:flex-end;padding:0}.modal{width:min(560px,100%)}.modal.viewer{width:min(1100px,100%);height:min(92vh,100%);max-height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:18px 18px 16px}.viewer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.viewer-head h1{font-size:18px}.viewer-stage{flex:1;min-height:0;display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;gap:8px}.nav-side{align-self:center;width:44px;height:88px;border:1px solid var(--line);background:var(--bg-elev-2);color:var(--text);border-radius:12px;display:grid;place-items:center;padding:0}.nav-side:disabled{opacity:.25;cursor:default}.nav-side:not(:disabled):hover{border-color:var(--gold-dim);color:var(--gold)}.viewer-body{min-width:0;min-height:0;background:#07080b;border:1px solid var(--line);border-radius:12px;overflow:hidden}.viewer-body iframe,.viewer-body embed{width:100%;height:100%;border:0;background:#111}.viewer-body img,.viewer-body video{display:block;max-width:100%;max-height:100%;margin:0 auto;object-fit:contain}.viewer-body pre{margin:0;padding:16px;height:100%;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:13px;color:var(--text)}.viewer-empty{height:100%;display:grid;place-items:center;color:var(--muted);padding:24px;text-align:center}.name-btn{background:none;border:0;padding:0;color:inherit;font:inherit;font-weight:600;text-align:left}.name-btn:hover{color:var(--gold)}.audit{font-size:13px;color:var(--muted)}.audit div{padding:8px 0;border-bottom:1px solid #1d2430}.mobile-only,.mobile-bar,.doc-list{display:none}.icon-btn{width:44px;height:44px;border:1px solid var(--line);background:var(--bg-elev-2);color:var(--text);border-radius:12px;display:grid;place-items:center;padding:0}.brand.compact small{font-size:11px}.doc-card{display:grid;gap:6px;width:100%;text-align:left;background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:14px;color:inherit}.doc-card .name{font-weight:650;overflow-wrap:anywhere}.drawer{width:min(420px,100%);max-height:min(88vh,100%);overflow:auto;align-self:end;border-radius:18px 18px 0 0}@media (max-width: 800px){html,body,#root{height:var(--frame-h, 100dvh);max-height:var(--frame-h, 100dvh);overflow:hidden}body{background:var(--bg)}.app{grid-template-columns:1fr;height:100%;max-height:100%}.desktop-only{display:none!important}.mobile-only{display:block}.mobile-bar{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;border-bottom:1px solid var(--line)}.mobile-bar .brand{flex:1;min-width:0}.top{flex-direction:column;align-items:stretch;padding:12px;gap:10px}.search{max-width:none}.top-actions{justify-content:stretch}.top-actions .btn{flex:1;min-height:44px}.content{padding:12px;-webkit-overflow-scrolling:touch}.drop{padding:16px;margin-bottom:12px}.doc-list{display:grid;gap:10px}.gate{height:100%;overflow:auto;padding:24px 14px;padding-top:calc(24px + env(safe-area-inset-top))}.card{padding:22px 18px}h1{font-size:22px}.btn.small{min-height:40px;padding:10px 12px}.modal-back{padding:0;align-items:stretch}.modal{width:100%;max-height:100%;border-radius:0}.modal.viewer{width:100%;height:100%;max-height:100%;border-radius:0;padding:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom))}.viewer-head{flex-direction:column;gap:10px;margin-bottom:10px;flex-shrink:0}.viewer-head h1{font-size:16px;overflow-wrap:anywhere}.viewer-actions{width:100%}.viewer-actions .btn{flex:1;min-height:42px}.viewer-stage{grid-template-columns:1fr;min-height:0}.nav-side{display:none}.viewer-body{min-height:0}.drawer{margin:0;width:100%;max-height:85%}}
