@import"https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=Inter:wght@400;500;600&display=swap";:root{--paper: #f6f4ee;--paper-raised: #fffdf9;--ink: #202a23;--ink-soft: #56605a;--accent: #46604f;--accent-soft: #dce6de;--line: #ddd7c7;--danger: #8c3b2e;--danger-soft: #f3e2de;--gold: #a9812f;--radius: 3px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{font-family:"Source Serif 4",Georgia,serif;font-weight:600;margin:0 0 .4em;letter-spacing:.01em}a{color:var(--accent)}button{font-family:inherit;font-size:14px;cursor:pointer;border:1px solid var(--ink);background:var(--paper-raised);color:var(--ink);padding:7px 14px;border-radius:var(--radius)}button:hover{background:var(--accent-soft)}button.primary{background:var(--accent);color:var(--paper-raised);border-color:var(--accent)}button.primary:hover{filter:brightness(1.08)}button.danger{border-color:var(--danger);color:var(--danger);background:var(--paper-raised)}button.danger:hover{background:var(--danger-soft)}button:disabled{opacity:.45;cursor:default}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);color:var(--ink)}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;flex-shrink:0;background:var(--paper-raised);border-right:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column}.sidebar-brand{font-family:"Source Serif 4",serif;font-size:20px;margin-bottom:28px}.sidebar-nav a{display:block;padding:8px 0;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.sidebar-nav a:hover{color:var(--accent)}.sidebar-footer{margin-top:auto;font-size:13px;color:var(--ink-soft)}.main{flex:1;padding:32px 40px;max-width:980px}.course-list{list-style:none;padding:0;margin:24px 0 0}.course-row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.course-row:hover .course-title{color:var(--accent)}.course-title{font-family:"Source Serif 4",serif;font-size:17px}.meta{color:var(--ink-soft);font-size:13px}.badge{display:inline-block;font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);color:var(--ink-soft);margin-left:8px}.badge.locked{border-color:var(--gold);color:var(--gold)}.file-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.file-icon{width:34px;height:34px;border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--ink-soft);flex-shrink:0}.file-name{flex:1;min-width:0}.file-actions{display:flex;gap:6px}.toolbar{display:flex;gap:10px;align-items:center;margin:18px 0}.panel{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-top:16px}.viewer-frame{width:100%;height:78vh;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;align-items:center}table.admin-table{width:100%;border-collapse:collapse;font-size:14px}table.admin-table th,table.admin-table td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px}.login-screen h1{font-size:34px}.status-pill{font-size:12px;padding:2px 8px;border-radius:999px}.avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-initials{display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--paper-raised);font-size:11px;font-weight:600}.app-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-soft)}.status-ACTIVE{color:var(--accent);border:1px solid var(--accent)}.status-BLOCKED{color:var(--danger);border:1px solid var(--danger)}.status-DISABLED{color:var(--ink-soft);border:1px solid var(--ink-soft)}
