:root{color:#282622;font-synthesis:none;--accent:#d55f38;--accent-hover:#bd4925;--muted:#969087;--line:#eeebe5;--paper:#fff;--cream:#fcfaf6;--sidebar:232px;--radius:12px;background:#f7f6f2;font-family:DM Sans,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;font-weight:400}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;line-height:1.5}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #e8b194}input,select,textarea{color:#38342e;background:#fff;border:1px solid #e5e0d7;border-radius:7px;outline:0}input:focus,select:focus,textarea:focus{border-color:#d98962;box-shadow:0 0 0 3px #d9896212}input[type=checkbox]{accent-color:#d76b43;cursor:pointer;width:16px;height:16px;min-height:0;box-shadow:none;flex-shrink:0}input,select{min-height:40px;padding:8px 12px}textarea{resize:vertical;width:100%;padding:12px;line-height:1.7}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{letter-spacing:-.8px;font-size:29px;font-weight:650;line-height:1.5}h2{font-size:17px;font-weight:650;line-height:1.5}h3{font-size:15px;font-weight:600}small{font-size:12px}.muted{color:var(--muted)}.error-text{color:#bd4925}.admin-shell{min-height:100vh}.sidebar{width:var(--sidebar);z-index:35;background:#fdfcf9;border-right:1px solid #eae6de;flex-direction:column;padding:28px 17px 19px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{align-items:center;gap:12px;padding:0 13px 35px;display:flex}.brand img{width:41px;height:41px}.brand>span{letter-spacing:2px;white-space:nowrap;font-size:21px;font-weight:650;line-height:1.5}.brand small{letter-spacing:2px;color:#9b9083;margin-top:2px;font-size:10px;font-weight:400;display:block}.workspace-label{color:#aca396;letter-spacing:2px;margin-bottom:15px;padding:0 17px;font-size:11px}.sidebar nav{flex-direction:column;gap:9px;display:flex}.sidebar nav a{color:#7e776c;border-radius:8px;align-items:center;gap:13px;min-height:48px;padding:0 16px;font-size:15px;font-weight:500;display:flex}.sidebar nav a:hover{color:#4e453c;background:#f4f0e9}.sidebar nav a.router-link-active{color:#c05c35;background:#f9eade;font-weight:600}.sidebar nav i{background:#d66b42;border-radius:50%;width:6px;height:6px;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:28px 9px 0}.enterprise-stamp{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#9a8067;align-items:center;gap:9px;padding:16px 0;display:flex}.enterprise-stamp>div{min-width:0}.enterprise-stamp b{color:#665c50;overflow-wrap:anywhere;font-size:12px;font-weight:600}.enterprise-stamp small{color:#a29584;margin-top:4px;font-size:10px;display:block}.logout{margin-top:20px}.sidebar-copyright{color:#b9b0a3;margin-top:22px;font-size:9px;display:block}.main-shell{margin-left:var(--sidebar)}.topbar{background:#fdfcf9;border-bottom:1px solid #eae7e0;justify-content:space-between;align-items:center;gap:16px;height:76px;padding:0 36px;display:flex}.topbar-left{align-items:center;gap:15px;display:flex}.breadcrumb{color:#a49a8c;font-size:12px}.breadcrumb span{color:#c5bdb1;padding:0 11px}.breadcrumb b{color:#665c50;font-weight:500}.admin-name{color:#5e5549;text-align:right;font-size:12px;line-height:1.7}.admin-name small{color:#a79886;text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:10px;display:block;overflow:hidden}.mobile-toggle{display:none!important}main{max-width:1700px;margin:auto;padding:32px 36px 0}.page-content{min-width:0}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;display:flex}.page-eyebrow{color:#a2886b;letter-spacing:1px;align-items:center;gap:6px;margin-bottom:5px;font-size:10px;display:flex}.page-eyebrow>span{background:#db9566;border-radius:50%;width:5px;height:5px}.page-heading p{color:#948879;margin-top:7px;font-size:12px;line-height:1.8}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:9px 16px;font-size:13px;font-weight:500;display:inline-flex}.button.primary{color:#fff;background:var(--accent);box-shadow:0 3px 7px #cf6c3720}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.secondary{color:#80705e;background:#fffdf9;border:1px solid #e1d9cc}.button.small{min-height:34px;padding:6px 12px;font-size:12px}.icon-button{color:#9b8f7e;border-radius:6px;justify-content:center;align-items:center;min-width:32px;min-height:32px;display:inline-flex}.icon-button:hover:not(:disabled){color:#ba6235;background:#f7f0e7}.text-button,.text-link{color:#bd683e;align-items:center;gap:5px;padding:3px 0;font-size:12px;display:inline-flex}.surface{background:var(--paper);border-radius:var(--radius);border:1px solid #eee9e0;min-width:0;overflow:hidden}.surface-toolbar{justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.section-heading{align-items:center;gap:8px;display:flex}.surface-toolbar h2{font-size:15px}.standalone{padding:0 0 20px}.info-strip,.error-box,.success-box{color:#95714e;overflow-wrap:anywhere;background:#fbf5e9;border:1px solid #efdfca;border-radius:8px;margin:0 0 22px;padding:15px 18px;font-size:12px;line-height:1.9}.error-box{color:#bd4925;background:#fff3ee;border-color:#f0d1c4}.success-box{color:#617b4d;background:#f0f5ec;border-color:#dbe6d3}.success-box p{margin-top:8px}.inset{margin:0 24px 18px}.table-wrap{width:100%;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th{color:#9c8f7e;white-space:nowrap;background:#fbfaf7;border-top:1px solid #f1ede5;border-bottom:1px solid #f1ede5;padding:15px 24px;font-weight:500}td{vertical-align:middle;border-bottom:1px solid #f1ede5;padding:20px 24px;line-height:1.8}td strong{font-weight:500}td small{color:#a69988;overflow-wrap:anywhere;margin-top:3px;font-size:10px;display:block}.empty{text-align:center;color:#a49581;padding:65px 20px;font-size:13px}.small-empty{padding:24px;font-size:12px}.status-badge{color:#8f887b;white-space:nowrap;background:#f1f0eb;border-radius:5px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;width:4px;height:4px;display:block}.status-badge.positive{color:#8a9f6b;background:#eef3e7}.status-badge.waiting{color:#be995d;background:#faf0dd}.status-badge.muted{color:#a49b8d;background:#f1f0ec}.pagination{color:#a29483;justify-content:space-between;align-items:center;gap:15px;padding:18px 24px;font-size:11px;display:flex}.pagination>div{align-items:center;gap:12px;display:flex}.page-current{color:#bc6c40;background:#f9ebdf;border-radius:5px;place-items:center;min-width:27px;height:27px;display:grid}.workspace-footer{color:#b9ab98;justify-content:space-between;gap:12px;max-width:1700px;margin:28px auto 0;padding:0 36px 24px;font-size:10px;display:flex}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#302b2565;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:#fffefa;border-radius:14px;outline:0;flex-direction:column;width:520px;max-width:100%;max-height:90vh;display:flex;box-shadow:0 24px 100px #302b2530}.dialog.wide{width:940px}.dialog-heading{border-bottom:1px solid #eee7dc;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;display:flex}.dialog-body{min-height:0;padding:24px 26px;overflow:auto}.dialog-footer{border-top:1px solid #eee7dc;justify-content:flex-end;align-items:center;gap:10px;padding:18px 26px;display:flex}.form-stack{flex-direction:column;gap:20px;display:flex}.form-stack .error-box{margin:0}.form-stack label,.form-grid label{color:#75695b;flex-direction:column;gap:9px;font-size:12px;display:flex}.form-stack label input,.form-stack label select{width:100%}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.form-grid label small{color:#a69988;font-size:10px;line-height:1.7}.dialog fieldset{border:0;min-width:0;margin:0;padding:0}.preview-card{background:#fff;border:1px solid #eadfce;border-radius:9px;margin-top:22px;padding:18px}.preview-card>p{color:#9c876f;margin:8px 0 14px;font-size:12px}.compact{max-height:260px}.compact th,.compact td{padding:10px 14px}.person-picker{border:1px solid #ece5d9;border-radius:8px;grid-template-columns:1fr 1fr;gap:0 20px;max-height:240px;margin-top:12px;padding:10px 15px;display:grid;overflow:auto}.check-row{cursor:pointer;align-items:flex-start;gap:10px;padding:12px 0;font-size:13px;line-height:1.7;display:flex}.check-row input{margin:4px 0 0}.check-row small{color:#aa9b87;font-size:10px;line-height:1.8;display:block}.selected-chips{flex-wrap:wrap;gap:7px;display:flex}.selected-chips button{color:#b86b42;background:#f9eade;border-radius:4px;padding:4px 8px;font-size:11px}.section-space{margin-top:24px}.course-picker{max-height:220px;margin-top:8px;overflow:auto}.assignment-total{color:#8f7b65;margin-top:20px;font-size:13px}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.course-card{padding:23px}.course-card-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.course-mark{color:#c58e56;background:#fbefdf;border-radius:10px;place-items:center;width:46px;height:46px;display:grid}.course-choice{color:#a48b70;align-items:center;gap:7px;font-size:11px;display:flex}.course-card h2{overflow-wrap:anywhere;margin-bottom:8px}.course-card>small{font-size:10px}.course-card dl{border-top:1px solid #f1ece4;margin:22px 0 0;padding-top:16px;font-size:11px;line-height:1.8}.course-card dt{color:#ab9a84;margin-top:10px}.course-card dd{color:#7e6d59;margin:4px 0 0}.back-link{margin-bottom:18px}.login-page{grid-template-columns:1fr 420px;align-items:center;gap:70px;max-width:1140px;min-height:100vh;margin:auto;padding:60px 50px;display:grid}.login-brand{letter-spacing:3px;align-items:center;gap:12px;margin-bottom:70px;font-size:24px;font-weight:650;display:flex}.login-brand img{width:44px;height:44px}.login-story h1{color:#544537;margin:18px 0 24px;font-size:40px;line-height:1.6}.login-story>p{color:#a08c75;font-size:14px;line-height:2.1}.login-line{background:#da9066;border-radius:2px;width:75px;height:3px;margin-top:35px}.login-card{background:#fffefa;border:1px solid #ede4d7;border-radius:16px;padding:38px;box-shadow:0 18px 70px #82613b07}.login-card h2{font-size:23px}.login-card p.muted{margin-top:8px;font-size:11px;line-height:1.9}.login-icon{color:#c3764a;background:#faeade;border-radius:12px;place-items:center;width:50px;height:50px;display:grid}.login-card>small{text-align:center;font-size:10px;line-height:1.8}.session-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:24px;display:flex}.session-state>img{width:54px}.session-state>.error-box{max-width:620px;margin:0}@media (width<=1180px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{flex-wrap:wrap}.login-page{gap:35px;padding:40px}.login-story h1{font-size:34px}}@media (width<=860px){:root{--sidebar:205px}main{padding:25px 22px 0}.topbar{padding:0 22px}.brand{gap:8px;padding-left:5px}.brand>span{font-size:18px}.brand img{width:36px}.surface-toolbar,th,td{padding-left:18px;padding-right:18px}.login-page{grid-template-columns:1fr;max-width:500px;padding:35px 24px}.login-story{display:none}.course-grid{grid-template-columns:1fr}}@media (width<=640px){.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-scrim{z-index:34;background:#302b2565;position:fixed;inset:0}.main-shell{margin-left:0}.mobile-toggle{display:inline-flex!important}.topbar{height:66px;padding:0 16px}.breadcrumb{font-size:11px}.admin-name small{max-width:115px}main{padding:24px 16px 0}h1{font-size:25px}.page-heading{gap:18px}.page-actions,.page-heading>.button{width:100%}.page-heading p{font-size:11px}.workspace-footer{flex-direction:column;padding:0 16px 20px}.dialog-heading,.dialog-body,.dialog-footer{padding:18px}.overlay{padding:12px}.dialog{max-height:94vh}.dialog-footer{flex-wrap:wrap}.form-grid,.person-picker{grid-template-columns:1fr}.course-grid{gap:14px}.login-card{padding:28px 24px}.pagination{gap:6px;padding:16px}.table-wrap table{min-width:620px}.compact table{min-width:520px}}
