:root{--navy:#142a5c;--blue:#3b5aa5;--orange:#ff9500;--bg:#0e1d42;--surface:#fff;--text:#1a2238;--muted:#6b7691;--danger:#c62828;--radius:14px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex}.screen{padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.card{background:var(--surface);border-radius:var(--radius);text-align:center;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:28px 24px;display:flex}.card h1{color:var(--navy);margin:0;font-size:1.5rem}.logo{border-radius:16px;align-self:center}.muted{color:var(--muted);margin:0}.card label{text-align:left;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;display:flex}.card input{font:inherit;border:1px solid #cfd5e3;border-radius:10px;min-height:48px;padding:12px;font-size:16px}.card input:focus{outline:2px solid var(--blue);border-color:var(--blue)}button{font:inherit;cursor:pointer;font-weight:600}.card button[type=submit]{background:var(--navy);color:#fff;border:0;border-radius:10px;min-height:48px}.card button[type=submit]:disabled{opacity:.6;cursor:default}.error{color:var(--danger);margin:0;font-size:.9rem}code{background:#eef1f8;border-radius:4px;padding:1px 5px;font-size:.85em}.dashboard{justify-content:flex-start;align-items:stretch;width:100%;max-width:960px;margin:0 auto}.topbar{border-bottom:1px solid #ffffff26;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.brand{color:#fff;font-weight:700}button.link{color:var(--orange);background:0 0;border:0;min-height:44px;padding:8px}.hello{padding:32px 0}.hello h1{color:#fff;margin:0;font-size:clamp(1.75rem,6vw,2.5rem)}.hello .muted{color:#ffffffb3}.hello .error{color:#ffb4ab}.tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.tile{text-align:left;border-radius:var(--radius);background:var(--surface);min-height:96px;color:var(--navy);border:0;flex-direction:column;gap:6px;padding:18px;display:flex}.tile span{color:var(--muted);font-size:.9rem;font-weight:400}.tile:disabled{opacity:.6;cursor:default}.panel{background:var(--surface);border-radius:var(--radius);text-align:left;flex-direction:column;align-self:center;gap:14px;width:100%;max-width:560px;margin-top:16px;padding:24px;display:flex}.panel h1,.panel h2{color:var(--navy);margin:0}.panel h1{font-size:1.4rem}.panel h2{font-size:1.05rem}.panel p{margin:0}.muted-dark{color:var(--muted);font-size:.9rem}.error-dark{color:var(--danger);font-size:.9rem}.notice{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.check{align-items:center;gap:10px;min-height:44px;font-weight:600;display:flex}.check input{width:22px;height:22px}.panel button.primary,.panel button.secondary{border:0;border-radius:10px;min-height:48px}.panel button.primary{background:var(--navy);color:#fff}.panel button.secondary{color:var(--navy);background:#eef1f8}.panel button:disabled{opacity:.6;cursor:default}.file{font:inherit;border:1px dashed #cfd5e3;border-radius:10px;padding:12px;font-size:16px}.file-info span{color:var(--muted)}.progress{background:#eef1f8;border-radius:14px;height:28px;position:relative;overflow:hidden}.progress-bar{background:var(--blue);height:100%;transition:width .2s}.progress span{place-items:center;font-size:.85rem;font-weight:600;display:grid;position:absolute;inset:0}.uploads{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.uploads li{justify-content:space-between;align-items:center;gap:12px;display:flex}.uploads li div{flex-direction:column;min-width:0;display:flex}.uploads li strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uploads li span{color:var(--muted);font-size:.85rem}.uploads li em{color:var(--navy);white-space:nowrap;font-size:.85rem;font-style:normal}.panel.wide{max-width:860px}.uploads.admin>li{border-bottom:1px solid #eef1f8;flex-wrap:wrap;padding-bottom:10px}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex;flex-direction:row!important}.panel button.small{border:0;border-radius:10px;min-height:44px;padding:0 14px}.panel .file-button{cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.file-button input{display:none}.file-button.disabled{opacity:.6;cursor:default}.panel button .svg-inline--fa,.tile strong .svg-inline--fa,button.link .svg-inline--fa{margin-right:6px}.panel button.icon-button{min-width:44px;min-height:44px;color:var(--danger);background:0 0;border:0;border-radius:10px}.panel button.icon-button .svg-inline--fa{margin:0}.panel button.icon-button:hover:not(:disabled){background:#fdecea}.panel label.file-button.secondary{min-height:48px;color:var(--navy);background:#eef1f8;border-radius:10px;padding:0 16px}.panel label.file-button.small{min-height:44px}.panel button.icon-button.neutral{color:var(--navy)}.panel button.icon-button.neutral:hover:not(:disabled){background:#eef1f8}.file-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.file-list li{border:1px solid #e3e8f4;border-radius:10px;align-items:center;gap:12px;padding:8px 10px;display:flex}.file-list li.active{border-color:var(--blue);background:#f3f7ff}.file-list li>div:first-of-type{flex-direction:column;flex:1;min-width:0;display:flex}.file-list li strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-list li span{color:var(--muted);font-size:.85rem}.file-list .file-pos{background:var(--navy);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:600;display:grid}.admin-files{flex-direction:column;margin:4px 0;padding:0;list-style:none;display:flex}.admin-files li{justify-content:space-between;align-items:center;gap:8px;display:flex}.uploads li span.deleted-flag{color:var(--danger)}.success{color:#2e7d32;margin:0;font-size:.9rem}button.link-plain{color:var(--blue);background:0 0;border:0;min-height:44px;padding:8px;text-decoration:underline}.checklist{text-align:left;color:var(--muted);margin:0;padding:0;font-size:.85rem;list-style:none}.checklist li.ok{color:#2e7d32}
