:root{color:#20241f;font-synthesis:none;text-rendering:optimizelegibility;--green:#48765b;--green-dark:#315441;--green-soft:#e8f0ea;--surface:#fffefa;--surface-muted:#f7f5ef;--line:#e5e1d7;--muted:#687067;--danger:#a34834;background:#f3f2ed;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:#f3f2ed;min-width:1080px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:var(--green-dark)}.login-page{background:radial-gradient(circle at 15% 10%,#edf3e9,#0000 32%),radial-gradient(circle at 90% 90%,#f6eadf,#0000 30%),#f4f2eb;place-items:center;min-height:100vh;padding:40px;display:grid}.login-card{background:#fffefaf5;border:1px solid #3a463914;border-radius:30px;width:min(100%,460px);padding:42px;box-shadow:0 30px 90px #3940311f}.brand-mark{background:var(--green-soft);width:62px;height:62px;color:var(--green);border-radius:20px;place-items:center;font-size:30px;display:grid}.brand-mark.small{border-radius:13px;width:40px;height:40px;font-size:21px}.eyebrow{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:11px;font-weight:850}.login-card .eyebrow{margin-top:24px}.login-card h1{letter-spacing:-.04em;margin:8px 0 0;font-size:37px}.login-copy{color:var(--muted);margin:12px 0 28px;line-height:1.6}.login-form{gap:18px;display:grid}label{color:#3d433c;gap:8px;font-size:14px;font-weight:720;display:grid}input,textarea,select{border:1px solid var(--line);color:#20241f;background:#fff;border-radius:12px;outline:none;width:100%;transition:all .16s}input,select{height:44px;padding:0 13px}textarea{resize:vertical;padding:12px 13px;line-height:1.6}input:focus,textarea:focus,select:focus{border-color:#759681;box-shadow:0 0 0 4px #48765b1a}.button{border:0;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-height:41px;padding:0 16px;font-weight:780;display:inline-flex}.button.primary{background:var(--green-dark);color:#fff;box-shadow:0 8px 20px #31544129}.button.primary:hover{background:#274a37}.button:disabled{opacity:.55;cursor:not-allowed}.button.ghost{color:#4a5049;background:#eeece5}.text-button{color:var(--green-dark);background:0 0;border:0;align-items:center;gap:5px;padding:5px;font-weight:760;display:inline-flex}.form-error,.alert{color:#954c29;background:#fff0e7;border-radius:11px;padding:12px 14px;font-size:13px}.form-error.compact{margin-top:8px}.alert{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.alert button{color:inherit;background:0 0;border:0;font-weight:800}.app-shell{min-height:100vh}.sidebar{z-index:30;background:#fbfaf6;border-right:1px solid #dcd8ce;flex-direction:column;width:238px;padding:25px 17px 18px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{align-items:center;gap:12px;padding:0 8px 24px;display:flex}.sidebar-brand>div:last-child{gap:2px;display:grid}.sidebar-brand strong{font-size:17px}.sidebar-brand span:not(.brand-mark){color:var(--muted);font-size:11px}.sidebar nav{gap:5px;display:grid}.sidebar nav button{color:#626961;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;height:45px;padding:0 13px;font-weight:720;display:flex}.sidebar nav button svg{font-size:20px}.sidebar nav button:hover{background:#f1efe8}.sidebar nav button.active{background:var(--green-soft);color:var(--green-dark)}.sidebar-user{border-top:1px solid var(--line);gap:5px;margin-top:auto;padding:16px 12px 5px;display:grid}.sidebar-user>span{color:var(--green);font-size:11px;font-weight:800}.sidebar-user>strong{font-size:14px}.sidebar-user button{width:fit-content;color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;margin-top:8px;padding:0;font-size:13px;display:flex}.dashboard-main{min-height:100vh;margin-left:238px;padding:34px 38px 80px}.topbar{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.topbar h1{letter-spacing:-.035em;margin:5px 0 0;font-size:34px}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-card{background:var(--surface);border:1px solid #34443512;border-radius:20px;align-items:center;gap:15px;min-height:116px;padding:21px;display:flex}.metric-icon{background:var(--green-soft);width:45px;height:45px;color:var(--green);border-radius:14px;flex:none;place-items:center;font-size:22px;display:grid}.metric-card p{color:var(--muted);margin:0;font-size:12px}.metric-card strong{margin-top:4px;font-size:27px;display:block}.metric-card small{color:var(--muted);margin-top:4px;display:block}.split-grid{grid-template-columns:1fr 1.2fr;gap:18px;display:grid}.content-panel{background:var(--surface);border:1px solid #34443512;border-radius:22px;margin-top:20px;overflow:hidden}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:84px;padding:22px 24px;display:flex}.panel-heading h2{letter-spacing:-.02em;margin:4px 0 0;font-size:21px}.panel-heading>span{color:var(--muted);font-size:12px}.heading-actions{align-items:center;gap:10px;display:flex}.heading-actions select{min-width:260px}.search-input{width:240px}.panel-empty{color:var(--muted);text-align:center;padding:54px 24px}.status-summary{grid-template-columns:repeat(3,1fr);gap:10px;padding:22px;display:grid}.status-summary div{background:var(--surface-muted);text-align:center;border-radius:15px;padding:22px 15px}.status-summary strong{font-size:29px;display:block}.status-summary span{color:var(--muted);font-size:12px}.recent-list{padding:10px 22px}.recent-list>div{border-bottom:1px solid #efede7;align-items:center;gap:11px;min-height:61px;display:flex}.recent-list>div:last-child{border-bottom:0}.recent-list div>div{gap:3px;min-width:0;display:grid}.recent-list strong{font-size:13px}.recent-list span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.recent-list b{color:var(--green);margin-left:auto;font-size:11px}.state-dot{background:#d3a56f;border-radius:50%;flex:none;width:8px;height:8px}.state-dot.completed{background:#67a47a}.state-dot.watched{background:#6387a8}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{color:var(--muted);text-align:left;white-space:nowrap;background:#f7f5ef;padding:12px 17px;font-size:11px;font-weight:780}td{color:#464c45;vertical-align:middle;border-top:1px solid #eeebe4;padding:15px 17px;font-size:13px}td>strong,td>small{display:block}td>small{max-width:320px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.media-cell,.user-cell{align-items:center;gap:11px;min-width:245px;display:flex}.media-cell img,.image-placeholder{object-fit:cover;border-radius:9px;flex:none;width:60px;height:42px}.image-placeholder{background:var(--green-soft);color:var(--green);place-items:center;font-size:20px;display:grid}.media-cell>div{gap:4px;min-width:0;display:grid}.media-cell small{max-width:310px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-cell{min-width:190px}.user-cell img,.user-cell>span{object-fit:cover;border-radius:50%;flex:none;width:37px;height:37px}.user-cell>span{background:var(--green-soft);color:var(--green-dark);place-items:center;font-weight:800;display:grid}.user-cell>div{gap:2px;display:grid}.user-cell small{color:var(--muted)}.row-actions{white-space:nowrap;gap:8px;display:flex}.status-pill,.role-pill{white-space:nowrap;border-radius:999px;align-items:center;padding:5px 9px;font-size:11px;font-weight:780;display:inline-flex}.status-pill.published,.status-pill.learning-completed{color:#336044;background:#e4f0e6}.status-pill.draft,.status-pill.learning-in_progress{color:#955328;background:#fff0e5}.status-pill.learning-watched{color:#3e627f;background:#e6eef5}.status-pill.archived,.status-pill.learning-not_started{color:#686d66;background:#eceae5}.role-pill.system_admin{color:#405b8b;background:#e5ebf6}.role-pill.operator{color:#356247;background:#e5f0e7}.role-pill.member{color:#626861;background:#efede8}.permission-note,.quiz-hint{color:#5d645c;background:#f3f0e7;border-radius:11px;align-items:center;gap:8px;margin:16px 22px 0;padding:12px 14px;font-size:12px;display:flex}.question-list{gap:12px;padding:20px;display:grid}.question-card{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:36px minmax(0,1fr) auto;gap:13px;padding:17px;display:grid}.question-number{background:var(--green-soft);width:32px;height:32px;color:var(--green-dark);border-radius:10px;place-items:center;font-weight:850;display:grid}.question-title{justify-content:space-between;gap:15px;display:flex}.question-title>span{flex:none;font-size:11px;font-weight:750}.question-title .enabled{color:var(--green)}.question-title .disabled{color:var(--muted)}.option-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;display:grid}.option-grid>div{color:#555c54;background:#f7f5f0;border-radius:9px;align-items:flex-start;gap:8px;padding:9px 10px;font-size:12px;display:flex}.option-grid>div.correct{color:#315c41;background:#e7f1e8}.option-grid b{width:18px}.question-body p{color:var(--muted);margin:11px 0 0;font-size:12px}.question-actions{gap:4px;display:flex}.question-actions button{color:#5a6159;background:#f0eee8;border:0;border-radius:8px;place-items:center;width:31px;height:31px;display:grid}.question-actions button:last-child{color:var(--danger)}.drawer-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1b1f1b61;justify-content:flex-end;display:flex;position:fixed;inset:0}.editor-drawer{background:#f9f8f3;width:min(760px,72vw);height:100%;overflow-y:auto;box-shadow:-24px 0 70px #1f261e33}.editor-form{min-height:100%;padding:31px}.editor-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.editor-heading h2{margin:5px 0 0;font-size:29px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:25px;display:grid}.form-grid .wide{grid-column:1/-1}.check-label{grid-template-columns:19px 1fr;align-items:center}.check-label input{width:17px;height:17px}.editor-note{color:#596459;background:#eef1ea;border-radius:11px;margin-top:18px;padding:12px 14px;font-size:12px;line-height:1.6}.form-actions{justify-content:flex-end;margin-top:22px;display:flex}.editor-form>.form-error{margin-top:18px}.upload-field{background:#fafbf8;border:1px dashed #cfd4cc;border-radius:13px;padding:13px}.upload-heading{justify-content:space-between;align-items:center;margin-bottom:9px;font-size:13px;font-weight:750;display:flex}.upload-heading a{font-size:11px;font-weight:650}.upload-button{background:var(--green-soft);min-height:43px;color:var(--green-dark);cursor:pointer;border-radius:10px;grid-template-columns:none;justify-content:center;align-items:center;gap:8px;display:flex}.upload-button.busy{opacity:.65;cursor:wait}.upload-button input{display:none}.file-url{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow:hidden}@media (width<=1280px){.dashboard-main{padding-inline:26px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.split-grid{grid-template-columns:1fr}.panel-heading.responsive{flex-direction:column;align-items:flex-start}}
