:root{--ink:#1b2430;--ink-2:#212b38;--ink-3:#293445;--line:#ede6d624;--parchment:#ede6d6;--parchment-2:#e3d9bf;--accent:#c98a3e;--accent-soft:#c98a3e29;--brick:#a6503b;--brick-soft:#a6503b2e;--text-dark:#24211b;--text-muted:#5b564a;--text-light:#f2eee3;--text-light-muted:#f2eee39e;--font-display:Georgia, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif;--font-body:"Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--radius:3px}*{box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(1200px 600px at 8% -10%, #c98a3e1a, transparent 55%), radial-gradient(900px 500px at 100% 0%, #a6503b1a, transparent 50%), var(--ink);color:var(--text-light);font-family:var(--font-body);flex-direction:column;min-height:100vh;margin:0;display:flex}a{color:inherit}button,input,select{font-family:inherit}::selection{background:var(--accent-soft)}#loginScreen{background:repeating-linear-gradient(to bottom, #ede6d60d 0px, #ede6d60d 1px, transparent 1px, transparent 30px), radial-gradient(1200px 600px at 8% -10%, #c98a3e1a, transparent 55%), radial-gradient(900px 500px at 100% 0%, #a6503b1a, transparent 50%), var(--ink);flex:1;justify-content:center;align-items:center;padding:24px;display:flex;position:relative;overflow:hidden}.examSheet{background:linear-gradient(to right, transparent 0 40px, #a6503b61 40px 41px, transparent 41px 100%), repeating-linear-gradient(to bottom, transparent 0 26px, #24211b17 26px 27px), var(--parchment);z-index:0;pointer-events:none;border-radius:5px;width:280px;height:370px;position:absolute;box-shadow:0 24px 50px -20px #000000a6}.examSheet.sheetA{top:-8%;left:6%;transform:rotate(-11deg)}.examSheet.sheetB{bottom:-10%;right:4%;transform:rotate(8deg)}.examSheet .stamp{color:#a6503b99;width:74px;height:74px;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;text-align:center;border:2px dashed #a6503b8c;border-radius:50%;justify-content:center;align-items:center;font-size:9.5px;font-weight:700;display:flex;position:absolute;top:38px;right:26px;transform:rotate(-14deg)}@media (width<=720px){.examSheet{display:none}}.loginCard{z-index:1;background:var(--parchment);width:100%;max-width:400px;max-height:88vh;color:var(--text-dark);border-radius:6px;padding:32px 30px 28px;position:relative;overflow-y:auto;box-shadow:0 30px 60px -20px #0009}.loginCard .eyebrow{color:var(--brick)}.loginCard h1{font-family:var(--font-display);margin:0 0 6px;font-size:24px}.loginCard p.lead{color:var(--text-muted);margin:0 0 22px;font-size:13.5px;line-height:1.5}.field{margin-bottom:14px}.field label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:11px;display:block}.field input,.field select{width:100%;color:var(--text-dark);background:#fff;border:1px solid #0000002e;border-radius:4px;outline:none;padding:10px 12px;font-size:14px}.field input:focus,.field select:focus{border-color:var(--brick)}.pwField{position:relative}.pwField input{padding-right:40px}.pwToggle{cursor:pointer;color:var(--text-muted);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:none;padding:6px 8px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.pwToggle:hover{color:var(--text-dark)}.fieldHint{color:var(--text-muted);margin-top:5px;font-size:11px;display:block}.fieldOptional{text-transform:none;letter-spacing:0;color:var(--text-muted);font-weight:400;font-family:var(--font-body);font-size:11px}.radioRow{gap:16px;padding:2px 0;display:flex}.field .radioOpt{font-family:var(--font-body);color:var(--text-dark);text-transform:none;letter-spacing:0;cursor:pointer;align-items:center;gap:6px;font-size:13.5px;display:flex}.radioOpt input[type=radio]{width:auto;accent-color:var(--brick);cursor:pointer;margin:0}.field input[readonly]{background:var(--parchment-2);color:var(--text-muted);cursor:not-allowed}.loginBtn{background:var(--brick);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;padding:11px;font-size:14px;font-weight:700;transition:background .15s,opacity .15s}.loginBtn:hover{background:#8b4230}.loginBtn:disabled{opacity:.6;cursor:wait}.switchLine{text-align:center;color:var(--text-muted);margin:16px 0 0;font-size:12.5px}.linkBtn{color:var(--brick);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;font-weight:700;text-decoration:underline}.loginError{color:var(--brick);margin:0 0 14px;font-size:12.5px;display:none}.loginError.show{display:block}.loginSuccess{color:#4c7a4c;margin:0 0 14px;font-size:12.5px;display:none}.loginSuccess.show{display:block}header.top{border-bottom:1px solid var(--line);padding:34px clamp(18px,4vw,56px) 20px}.topRow{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sessionBadge{font-family:var(--font-mono);color:var(--text-light-muted);white-space:nowrap;align-items:center;gap:10px;font-size:12px;display:flex}.profileTrigger{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:flex}.profileAvatar{background:var(--accent);width:30px;height:30px;color:var(--ink);font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.profileTrigger:hover .profileAvatar,.profileTrigger:focus-visible .profileAvatar{outline:2px solid var(--parchment);outline-offset:2px}.profileTriggerText{font-size:11px}.roleTag{letter-spacing:.05em;text-transform:uppercase;border-radius:20px;padding:3px 9px;font-size:10.5px;font-weight:700}.roleTag.admin{background:var(--accent-soft);color:var(--accent)}.roleTag.user{color:var(--text-light-muted);background:#ffffff14}.signOutBtn{border:1px solid var(--line);color:var(--text-light-muted);cursor:pointer;background:0 0;border-radius:20px;padding:5px 12px;font-size:11.5px;transition:color .15s,border-color .15s}.signOutBtn:hover{color:var(--text-light);border-color:var(--text-light-muted)}.eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;font-size:11px}h1.title{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 6px;font-size:clamp(28px,4vw,42px);font-weight:700}.subtitle{color:var(--text-light-muted);max-width:640px;margin:0 0 22px;font-size:14.5px;line-height:1.5}.searchRow{align-items:center;gap:10px;max-width:560px;display:flex}.searchBox{flex:1;position:relative}.searchBox input{background:var(--ink-3);border:1px solid var(--line);width:100%;color:var(--text-light);border-radius:var(--radius);font-size:14px;font-family:var(--font-body);outline:none;padding:11px 14px 11px 38px;transition:border-color .15s,background .15s}.searchBox input::placeholder{color:var(--text-light-muted)}.searchBox input:focus{border-color:var(--accent);background:var(--ink-2)}.searchBox svg{opacity:.55;pointer-events:none;width:15px;height:15px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.mainTabs{gap:6px;padding:18px clamp(18px,4vw,56px) 0;display:flex}.tabBtn{color:var(--text-light-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.tabBtn:hover{color:var(--text-light);border-color:var(--line)}.tabBtn.active{background:var(--accent-soft);color:var(--accent);border-color:#c98a3e73}.usersToolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.usersToolbar .count{font-family:var(--font-mono);color:var(--text-light-muted);font-size:12px}.usersTableWrap{border:1px solid var(--line);border-radius:6px;overflow:auto}table.usersTable{border-collapse:collapse;width:100%;font-size:13px}table.usersTable th{text-align:left;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light-muted);background:var(--ink-3);white-space:nowrap;border-bottom:1px solid var(--line);padding:11px 14px;font-size:10.5px;position:sticky;top:0}.tableSortButton{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.tableSortButton:hover{color:var(--accent)}.tableSortButton:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.tableSortIcon{color:var(--accent);font-size:13px;line-height:1}table.usersTable td{border-bottom:1px solid var(--line);color:var(--text-light);white-space:nowrap;padding:11px 14px}table.usersTable tbody tr:last-child td{border-bottom:none}table.usersTable tbody tr:nth-child(2n){background:var(--ink-3)}table.usersTable tbody tr:hover{background:#ffffff0d}table.usersTable .userRoleTag{letter-spacing:.05em;text-transform:uppercase;border-radius:20px;padding:2px 9px;font-size:10.5px;font-weight:700;display:inline-block}table.usersTable .userRoleTag.admin{background:var(--accent-soft);color:var(--accent)}table.usersTable .userRoleTag.user{color:var(--text-light-muted);background:#ffffff14}table.usersTable .muted{color:var(--text-light-muted)}nav.crumbs{font-family:var(--font-mono);color:var(--text-light-muted);flex-wrap:wrap;align-items:center;gap:6px;padding:16px clamp(18px,4vw,56px) 0;font-size:12.5px;display:flex}nav.crumbs button{color:var(--text-light-muted);cursor:pointer;font-family:var(--font-mono);background:0 0;border:none;border-bottom:1px solid #0000;padding:4px 2px;font-size:12.5px;transition:color .15s,border-color .15s}nav.crumbs button:hover{color:var(--accent);border-color:var(--accent)}nav.crumbs .crumb-current{color:var(--parchment)}nav.crumbs .sep{opacity:.4}main{flex:1;padding:22px clamp(18px,4vw,56px) 60px}.levelBar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:6px 0 16px;display:flex}.levelLabel{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-light-muted);font-size:11px}.addBtn{background:var(--accent-soft);color:var(--accent);cursor:pointer;white-space:nowrap;border:1px solid #c98a3e73;border-radius:20px;padding:8px 16px;font-size:12.5px;font-weight:700;transition:background .15s,color .15s}.addBtn:hover{background:var(--accent);color:#1b2430}.folderBar{background:var(--ink-2);border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.folderBar .info{flex-direction:column;gap:2px;display:flex}.folderBar .label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-light-muted);font-size:10.5px}.folderBar .value{color:var(--text-light);font-size:13px}.folderBar .actions{gap:8px;display:flex}.folderBtn{color:var(--text-light);border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:20px;align-items:center;gap:6px;padding:7px 13px;font-size:12px;text-decoration:none;display:inline-flex}.folderBtn:hover{background:#ffffff1f}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;display:grid}.card{background:var(--parchment);color:var(--text-dark);text-align:left;cursor:pointer;font-family:var(--font-body);border:none;border-radius:5px;flex-direction:column;gap:10px;width:100%;min-height:104px;padding:20px 18px 16px;transition:transform .14s,box-shadow .14s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px #00000040,0 10px 20px -14px #0009}.cardShell{position:relative}.card:before{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px;position:absolute;top:12px;left:12px;box-shadow:inset 0 1px 2px #00000080}.card:after{content:"";border-style:solid;border-width:0 22px 22px 0;border-color:transparent var(--parchment-2) transparent transparent;width:0;height:0;position:absolute;top:0;right:0}.card:hover{transform:translateY(-3px);box-shadow:0 1px #00000040,0 18px 30px -16px #000000bf}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card .cardName{font-family:var(--font-display);margin-top:2px;padding-left:16px;font-size:17px;font-weight:700;line-height:1.25}.card .cardMeta{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);text-transform:uppercase;padding-left:16px;font-size:11px}.cardLogo{background:var(--parchment-2);border:1px solid #00000014;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-left:14px;display:flex;overflow:hidden}.cardLogo img{object-fit:contain;background:#fff;width:100%;height:100%;padding:5px}.cardLogo--fallback{font-family:var(--font-display);color:var(--brick);background:var(--accent-soft);font-size:15px;font-weight:700}.cardAdminRow{z-index:2;gap:6px;display:flex;position:absolute;top:8px;right:8px}.cardAdminBtn{width:24px;height:24px;color:var(--text-dark);cursor:pointer;background:#ffffffd9;border:1px solid #00000026;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:12px;display:flex}.cardAdminBtn:hover{background:#fff}.cardAdminBtn.danger:hover{background:var(--brick);color:#fff}.addCard{border:1.5px dashed var(--line);color:var(--text-light-muted);cursor:pointer;background:0 0;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:104px;font-size:13.5px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:flex}.addCard:hover{border-color:var(--accent);color:var(--accent);background:#c98a3e0d}.addCard .plus{font-size:18px;line-height:1}.paperList{border:1px solid var(--line);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.paperRow{background:var(--ink-2);border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto auto auto;align-items:center;gap:18px;padding:14px 18px;display:grid}.paperRow:last-child{border-bottom:none}.paperRow:nth-child(2n){background:var(--ink-3)}.paperRow.isAdmin{grid-template-columns:1fr auto auto auto auto auto auto}.paperTitle{color:var(--text-light);font-size:14.5px;font-weight:600}.paperCode{font-family:var(--font-mono);color:var(--text-light-muted);border:1px solid var(--line);white-space:nowrap;background:#ffffff0a;border-radius:20px;padding:3px 8px;font-size:11.5px}.paperDate{font-family:var(--font-mono);color:var(--text-light-muted);white-space:nowrap;font-size:12px}.viewBtn{background:var(--brick-soft);color:#f0c9be;cursor:pointer;white-space:nowrap;border:1px solid #a6503b80;border-radius:20px;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.viewBtn:hover{background:var(--brick);color:#fff}.saveBtn{color:var(--text-light-muted);border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:7px 14px;font-size:12.5px;font-weight:600}.saveBtn:hover,.saveBtn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.savedTabs{border-bottom:1px solid var(--line);background:#161d26;border-radius:5%;gap:8px;padding:10px clamp(18px,4vw,56px);display:flex;box-shadow:inset 0 1px #ffffff06,inset 0 -1px #00000047}.savedTabs a{color:var(--text-light-muted);background:#ffffff06;border:1px solid #0000;border-radius:20px;padding:7px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:transform .16s,color .16s,border-color .16s,background .16s,box-shadow .16s}.savedTabs a:hover{color:var(--parchment);background:linear-gradient(#fff3,#c98a3e33);border-color:#e8be7e8c;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff47,0 4px 10px #00000038}.savedTabs a.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.savedPaper{border-bottom:1px solid var(--line)}.savedPaper:last-child{border-bottom:none}.savedPaper .paperRow{border-bottom:0}.savedPaperPath{background:var(--ink-2);width:100%;color:var(--accent);text-align:left;font-family:var(--font-mono);cursor:pointer;border:0;padding:0 18px 12px;font-size:11px}.savedPaper:nth-child(2n) .savedPaperPath{background:var(--ink-3)}.rowIconBtn{border:1px solid var(--line);width:28px;height:28px;color:var(--text-light-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex}.rowIconBtn:hover{color:var(--text-light);border-color:var(--text-light-muted)}.rowIconBtn.danger:hover{color:#fff;background:var(--brick);border-color:var(--brick)}.resultRow{background:var(--ink-2);border-bottom:1px solid var(--line);cursor:pointer;flex-direction:column;gap:4px;padding:14px 18px;transition:background .12s;display:flex}.resultRow:hover{background:var(--ink-3)}.resultRow:last-child{border-bottom:none}.resultPath{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.resultTitle{font-size:14.5px;font-weight:600}.empty{border:1px dashed var(--line);text-align:center;color:var(--text-light-muted);border-radius:6px;padding:44px 24px}.empty strong{color:var(--parchment);font-family:var(--font-display);margin-bottom:6px;font-size:17px;display:block}.empty code{font-family:var(--font-mono);background:#ffffff0f;border-radius:3px;padding:2px 6px;font-size:12px}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0f131ac7;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.overlay.open{display:flex}.viewerPanel{background:var(--parchment);color:var(--text-dark);border-radius:6px;flex-direction:column;width:min(920px,100%);height:min(88vh,900px);display:flex;overflow:hidden;box-shadow:0 30px 60px -20px #000000b3}.viewerHead{background:var(--parchment-2);border-bottom:1px solid #0000001f;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.viewerHead h3{font-family:var(--font-display);margin:0 0 4px;font-size:18px}.viewerHead .meta{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;font-size:11.5px}.closeBtn{color:var(--text-dark);cursor:pointer;background:0 0;border:1px solid #0003;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;line-height:1;display:flex}.closeBtn:hover{background:#00000014}.viewerBody{background:#3a3a3a;flex:1}.viewerBody iframe{border:none;width:100%;height:100%}.viewerBody .noFile{color:#cfcfcf;text-align:center;background:var(--parchment);flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding:30px;display:flex}.viewerBody .noFile strong{color:var(--text-dark);font-family:var(--font-display);font-size:16px}.viewerBody .noFile p{color:var(--text-muted);max-width:420px;margin:0;font-size:13px;line-height:1.6}.viewerBody .noFile code{font-family:var(--font-mono);background:#0000000f;border-radius:3px;padding:2px 6px}.formPanel{background:var(--parchment);color:var(--text-dark);border-radius:6px;flex-direction:column;width:min(440px,100%);max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 30px 60px -20px #000000b3}.formPanel .viewerHead{background:var(--parchment-2)}.formBody{padding:20px;overflow-y:auto}.formActions{border-top:1px solid #0000001a;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.profileDetails{gap:12px;display:grid}.profileAvatarLarge{width:56px;height:56px;margin:0 auto 4px;font-size:17px}.profileDetail{border-bottom:1px solid #0000001a;justify-content:space-between;gap:20px;padding-bottom:10px;font-size:13px;display:flex}.profileDetail span{color:var(--text-muted)}.profileDetail strong{text-align:right;overflow-wrap:anywhere}.btnGhost{color:var(--text-dark);cursor:pointer;background:0 0;border:1px solid #0003;border-radius:20px;padding:9px 16px;font-size:13px;font-weight:600}.btnGhost:hover{background:#0000000d}.btnPrimary{background:var(--brick);border:1px solid var(--brick);color:#fff;cursor:pointer;border-radius:20px;padding:9px 18px;font-size:13px;font-weight:700}.btnPrimary:hover{background:#8b4230}footer.foot{font-family:var(--font-mono);color:var(--text-light-muted);border-top:1px solid var(--line);padding:16px clamp(18px,4vw,56px) 28px;font-size:11px}@media (width<=520px){.paperRow{grid-template-columns:1fr;row-gap:8px}.paperRow.isAdmin{grid-template-columns:1fr}.paperCode,.paperDate{justify-self:start}.topRow{flex-direction:column}}.adminDashboardGrid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:22px;display:grid}.adminStatCard{background:var(--parchment);color:var(--text-dark);border-radius:5px;padding:18px;box-shadow:0 1px #00000040,0 10px 20px -14px #0009}.adminStatCard .statValue{font-family:var(--font-display);font-size:28px;font-weight:700}.adminStatCard .statLabel{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px}
