/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.hidden{display:none}.inline{display:inline}.table{display:table}}:root{--ink:#24352d;--muted:#738079;--line:#e1e9e3;--green:#5f8f6b;--green-dark:#416f4e;--green-pale:#eaf4ec;--cream:#f7f8f3;--white:#fff;--orange:#b97036;--orange-pale:#fff1df;--red:#b84c47;--red-pale:#fdebea}*{box-sizing:border-box}html,body{background:var(--cream);min-height:100%;color:var(--ink);margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{color:inherit}.app-shell{grid-template-columns:238px minmax(0,1fr);min-height:100vh;display:grid}.app-shell,.sidebar,.workspace{transition:grid-template-columns .22s,width .22s}.sidebar{background:#f0f5ef;border-right:1px solid #dce7dd;flex-direction:column;width:238px;padding:28px 18px 20px;display:flex;position:fixed;inset:0 auto 0 0}.main-nav-collapsed{grid-template-columns:76px minmax(0,1fr)}.main-nav-collapsed .sidebar{width:76px;padding-inline:10px}.main-nav-collapsed .brand{padding-inline:9px}.main-nav-collapsed .brand-copy,.main-nav-collapsed nav button:not(.active):after,.main-nav-collapsed nav button{font-size:0}.main-nav-collapsed nav button{justify-content:center;padding-inline:8px}.main-nav-collapsed nav i{font-size:18px}.main-nav-collapsed nav b,.main-nav-collapsed .sidebar-note,.main-nav-collapsed .user-card>div:nth-child(2),.main-nav-collapsed .online-dot,.main-nav-collapsed .student-nav-group{display:none}.main-nav-collapsed .user-card{justify-content:center;padding-inline:0}.brand{align-items:center;gap:12px;padding:0 10px 30px;display:flex}.brand-mark{background:var(--green-dark);color:#fff;border-radius:12px;place-items:center;width:38px;height:38px;font-family:Georgia,serif;font-size:22px;display:grid}.brand strong,.brand span{display:block}.brand strong{font-family:Georgia,Songti SC,serif;font-size:16px}.brand span{color:#8aa090;letter-spacing:.14em;margin-top:4px;font-size:8px}nav{gap:6px;display:grid}nav button{cursor:pointer;color:#68766d;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;padding:12px 13px;display:flex;position:relative}nav button:hover,nav button.active{color:var(--green-dark);background:#dcebdd;font-weight:650}nav i{text-align:center;width:21px;font-size:17px;font-style:normal}nav b{background:var(--orange-pale);min-width:20px;height:20px;color:var(--orange);border-radius:10px;place-items:center;margin-left:auto;font-size:11px;display:grid}.student-nav-group{border-left:1px solid #cfddcf;gap:3px;margin:-2px 0 4px 27px;padding-left:8px;display:grid}.student-nav-group button{padding:8px 9px;font-size:11px}.student-nav-group button i{width:8px;font-size:13px}.student-nav-group button b{color:#6f8575;background:#e1ebe2;min-width:18px;height:18px;font-size:9px}.sidebar-note{background:#ffffff8c;border:1px solid #d9e5da;border-radius:14px;margin-top:auto;padding:15px}.sidebar-note span{color:var(--green-dark);background:#dcebdd;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.sidebar-note p{color:var(--muted);margin:9px 0 0;font-size:11px;line-height:1.6}.user-card{border-top:1px solid #d9e5da;align-items:center;gap:10px;margin-top:14px;padding:12px 8px;display:flex}.avatar{width:34px;height:34px;color:var(--green-dark);background:#cfe1d1;border-radius:50%;place-items:center;font:700 16px Georgia,serif;display:grid}.user-card strong,.user-card span{font-size:12px;display:block}.user-card span{color:var(--muted);margin-top:2px;font-size:10px}.user-card .online-dot{background:#68a675;border-radius:50%;width:8px;height:8px;margin:0 0 0 auto}.workspace{grid-column:2;min-width:0}.topbar{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;justify-content:space-between;align-items:center;height:92px;padding:18px 34px;display:flex;position:sticky;top:0}.topbar-title{align-items:center;gap:12px;display:flex}.collapse-button{border:1px solid var(--line);width:34px;height:34px;color:var(--green-dark);cursor:pointer;background:#fff;border-radius:9px;font-size:17px}.eyebrow{color:#8da193;letter-spacing:.14em;margin:0 0 6px;font-size:9px;font-weight:800}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-family:Georgia,Songti SC,serif;font-size:24px;font-weight:600}h2{margin-bottom:6px;font-family:Georgia,Songti SC,serif;font-size:28px;font-weight:600}h3{margin-bottom:0;font-family:Georgia,Songti SC,serif;font-size:18px;font-weight:600}.top-actions{align-items:center;gap:11px;display:flex}.save-state{border:0;border-radius:7px;padding:6px 9px;font-size:9px;font-weight:700}.save-state-action{cursor:pointer;box-shadow:inset 0 0 0 1px #925f252e}.save-state-action:hover{filter:brightness(.97)}.save-state:disabled{cursor:default}.save-saved{background:var(--green-pale);color:var(--green-dark)}.save-loading,.save-saving,.save-reconnecting{background:var(--orange-pale);color:var(--orange)}.save-offline{color:#a86620;background:#fff0d9}.save-demo{color:var(--muted);background:#eef1ef}.offline-banner{color:#925f25;background:#fff8ec;border-bottom:1px solid #efd6ad;justify-content:center;align-items:center;gap:10px;padding:8px 20px;font-size:10px;display:flex}.offline-banner strong{font-size:11px}.offline-banner.conflict-banner{color:#a34f45;background:#fff1ef;border-color:#e6b9b3}.sync-conflict-modal{border:1px solid var(--line);background:#fff;border-radius:18px;width:min(680px,100%);max-height:calc(100vh - 48px);padding:24px;overflow:auto;box-shadow:0 24px 70px #1f302638}.sync-conflict-modal .modal-heading span{color:var(--muted);margin-top:6px;font-size:11px;display:block}.sync-conflict-list{gap:12px;margin-top:18px;display:grid}.sync-conflict-list article{background:#fffaf9;border:1px solid #ead8d5;border-radius:13px;padding:16px}.sync-conflict-list article>div:first-child{justify-content:space-between;gap:16px;display:flex}.sync-conflict-list article>div:first-child small{color:var(--muted);font-size:9px}.sync-conflict-values{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:14px 0;display:grid}.sync-conflict-values span{background:#fff;border-radius:10px;padding:12px}.sync-conflict-values small,.sync-conflict-values b{display:block}.sync-conflict-values small{color:var(--muted);margin-bottom:5px;font-size:9px}.sync-conflict-values b{font-size:12px}.sync-conflict-values i{color:var(--muted);font-size:9px;font-style:normal}.sync-conflict-actions{justify-content:flex-end;gap:8px;display:flex}.viewer-switch{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.viewer-switch select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;padding:8px 30px 8px 10px;font-weight:650}.icon-button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;width:38px;height:38px;position:relative}.icon-button em{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:17px;height:17px;font-size:9px;font-style:normal;display:grid;position:absolute;top:-5px;right:-5px}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:10px;padding:10px 15px;font-size:12px;font-weight:650}.primary-button{background:var(--green-dark);color:#fff;box-shadow:0 5px 14px #416f4e29}.primary-button:hover{background:#345e40}.secondary-button{border:1px solid var(--line);color:var(--green-dark);background:#fff}.page-content{max-width:1600px;margin:0 auto;padding:28px 34px 48px}.section-summary{align-items:center;gap:28px;min-height:116px;margin-bottom:14px;padding:22px 24px;display:flex}.section-summary>div:first-child{flex:1}.section-summary h2{margin-bottom:5px;font-size:24px}.section-summary>div:first-child>span{color:var(--muted);font-size:11px}.summary-numbers{border-left:1px solid var(--line);gap:28px;padding:0 24px;display:flex}.summary-numbers span{min-width:66px;color:var(--muted);text-align:center;font-size:9px}.summary-numbers strong{color:var(--ink);margin-bottom:4px;font:600 24px Georgia,serif;display:block}.section-tabs{border:1px solid var(--line);background:#edf2ed;border-radius:11px;gap:5px;width:fit-content;margin:0 0 16px;padding:4px;display:flex}.section-tabs button,.filter-row button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 13px;font-size:10px}.section-tabs button.active,.filter-row button.active{color:var(--green-dark);background:#fff;font-weight:700;box-shadow:0 2px 8px #374b3c14}.knowledge-tabs button{align-items:center;gap:7px;display:inline-flex;position:relative}.knowledge-tabs button.has-count{padding-right:9px}.knowledge-tabs button b{color:#738079;background:#dfe7e0;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:9px;line-height:1;display:inline-grid}.knowledge-tabs button b.needs-action{color:#b45147;background:#f7ddd7}.knowledge-tabs button.active b.needs-action{color:#fff;background:#cf6457}.filter-row{gap:6px;margin:-5px 0 15px;display:flex}.filter-row button{border:1px solid var(--line);background:#fff}.welcome-row{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.welcome-row p{color:var(--green);margin-bottom:7px;font-size:12px}.welcome-row span,.calendar-header span,.knowledge-intro span{color:var(--muted);font-size:12px}.welcome-actions{align-items:center;gap:9px;display:flex}.backup-button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;background:#fff;border-radius:9px;padding:9px 12px;font-family:inherit;font-size:10px;font-weight:700;text-decoration:none}.backup-button:hover{border-color:#aac5af;box-shadow:0 4px 12px #37564012}.backup-preview-modal{width:min(620px,100%)}.backup-file-picker{cursor:pointer;text-align:center;background:#f5faf5;border:1px dashed #a9c8ae;border-radius:15px;place-items:center;padding:24px;position:relative;gap:5px!important;display:grid!important}.backup-file-picker input{opacity:0;height:1px;position:absolute;width:1px!important;padding:0!important}.backup-file-picker strong{color:var(--green-dark);font-size:13px}.backup-file-picker span{color:var(--muted);font-size:10px;font-weight:500}.backup-check-error{color:#aa4d45;background:#fce8e6;border-radius:11px;gap:4px;padding:13px 14px;display:grid}.backup-check-error span{font-size:10px}.backup-check-result{background:#f4faf5;border:1px solid #cfe2d3;border-radius:14px;gap:14px;padding:16px;display:grid}.backup-check-result.has-warning{background:#fffaf0;border-color:#ead5ad}.backup-check-heading{align-items:center;gap:11px;display:flex}.backup-check-heading>span{width:36px;height:36px;color:var(--green);background:#dcecdf;border-radius:50%;place-items:center;font-weight:800;display:grid}.backup-check-result.has-warning .backup-check-heading>span{color:#a96a18;background:#f8e6c6}.backup-check-heading strong,.backup-check-heading p{margin:0;display:block}.backup-check-heading p{color:var(--muted);margin-top:3px;font-size:10px}.backup-count-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.backup-count-grid span{color:var(--muted);text-align:center;background:#fff;border-radius:10px;gap:2px;padding:10px;font-size:9px;display:grid}.backup-count-grid strong{color:var(--ink);font-family:Georgia,serif;font-size:19px}.backup-check-result ul{color:#8b672a;margin:0;padding-left:18px;font-size:10px;line-height:1.7}.backup-sensitive-note{color:#8a5a25;border-top:1px solid #dce7dd;margin:0;padding-top:10px;font-size:10px;line-height:1.55}.backup-restore-steps{gap:9px;display:grid}.backup-restore-steps>div,.backup-restore-steps>label{border:1px solid var(--line);background:#fbfcfb;border-radius:11px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.backup-restore-steps>label{grid-template-columns:30px minmax(0,1fr);align-items:start}.backup-restore-steps>div>span,.backup-restore-steps>label>span{width:28px;height:28px;color:var(--muted);background:#edf1ed;border-radius:50%;place-items:center;font-weight:800;display:grid}.backup-restore-steps>div.step-complete>span{color:var(--green);background:#dcecdf}.backup-restore-steps strong,.backup-restore-steps p{margin:0;display:block}.backup-restore-steps p{color:var(--muted);margin-top:3px;font-size:9px;font-weight:500;line-height:1.5}.backup-restore-steps a{color:var(--green-dark);border:1px solid #b7cdbb;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:700;text-decoration:none}.backup-restore-steps input{margin-top:8px}.scope-toggle{background:#e9eee9;border-radius:10px;padding:3px;display:flex}.scope-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 13px;font-size:11px}.scope-toggle button.selected{color:var(--green-dark);background:#fff;font-weight:700;box-shadow:0 2px 7px #1f322614}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.metric-grid article{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:14px;padding:18px;display:flex;box-shadow:0 7px 22px #364e3e09}.metric-icon{border-radius:12px;place-items:center;width:42px;height:42px;font-size:12px;font-weight:800;display:grid}.metric-icon.green{background:var(--green-pale);color:var(--green-dark)}.metric-icon.sand{color:#967543;background:#f5efe2}.metric-icon.blue{color:#557d8d;background:#e8f0f3}.metric-icon.coral{background:var(--red-pale);color:var(--red)}.metric-grid p{color:var(--muted);margin:0;font-size:10px}.metric-grid strong{margin:2px 8px 0 0;font:600 25px Georgia,serif;display:inline-block}.metric-grid small{color:#90a098;font-size:9px}.panel{border:1px solid var(--line);background:#fff;border-radius:15px;box-shadow:0 7px 22px #364e3e09}.dashboard-grid{grid-template-columns:1.1fr .9fr;gap:18px;display:grid}.focus-panel,.deadline-panel,.students-panel,.preparation,.project-table-panel,.review-list,.library-table{padding:20px}.panel-heading{justify-content:space-between;align-items:center;min-height:32px;margin-bottom:15px;display:flex}.panel-heading button{color:var(--green);cursor:pointer;background:0 0;border:0;font-size:10px}.panel-heading .subtle{color:#9aa8a0;font-size:9px}.empty-focus{background:var(--green-pale);border-radius:12px;align-items:center;gap:13px;min-height:78px;padding:13px 15px;display:flex}.empty-focus>span{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.empty-focus strong{font-size:12px}.empty-focus p{color:var(--muted);margin:5px 0 0;font-size:10px}.update-row,.deadline-row{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #edf1ed;align-items:center;gap:10px;width:100%;padding:13px 5px;display:flex}.update-dot{background:var(--orange);width:8px;height:8px;box-shadow:0 0 0 4px var(--orange-pale);border-radius:50%;flex:0 0 8px}.update-row div,.deadline-row div{flex:1;min-width:0}.update-row strong,.deadline-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.update-row p,.deadline-row p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:9px;overflow:hidden}.update-row em{color:var(--muted);font-size:9px;font-style:normal}.update-row b{color:var(--green);font-size:9px}.deadline-row time{text-align:center;width:38px}.deadline-row time strong{color:var(--green-dark);font:600 18px Georgia,serif}.deadline-row time span{color:var(--muted);font-size:8px}.student-stripe{border-radius:3px;align-self:stretch;width:3px}.status{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;padding:5px 8px;font-size:9px;font-weight:700;display:inline-flex}.status-good{background:var(--green-pale);color:var(--green-dark)}.status-warn{background:var(--orange-pale);color:var(--orange)}.status-bad{background:var(--red-pale);color:var(--red)}.status-muted{color:#7f8a84;background:#eef1ef}.students-panel{margin-top:18px}.student-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.student-card{cursor:pointer;text-align:left;background:#fff;border:1px solid #e8eee9;border-radius:11px;grid-template-columns:38px minmax(0,1fr) 85px 45px auto;align-items:center;gap:11px;min-width:0;padding:12px;display:grid}.student-card:hover{border-color:#bdd2c1;box-shadow:0 5px 12px #37564012}.student-avatar{color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.student-main{min-width:0}.student-main strong{font-size:11px}.student-main p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:9px;overflow:hidden}.mini-progress{background:#e9eee9;border-radius:5px;height:5px;overflow:hidden}.mini-progress span{background:var(--green);border-radius:inherit;height:100%;display:block}.student-count{text-align:right}.student-count strong,.student-count span{display:block}.student-count strong{font:600 15px Georgia,serif}.student-count span{color:var(--muted);font-size:8px}.student-management-overview{grid-template-columns:minmax(250px,.72fr) minmax(500px,1.65fr);align-items:start;gap:18px;display:grid}.preparation-summary,.managed-student-list{padding:22px}.preparation-summary{position:sticky;top:116px}.preparation-summary>small{color:var(--muted);margin-top:18px;font-size:9px;display:block}.preparation-metrics{gap:12px;display:grid}.preparation-metrics article{background:linear-gradient(145deg,#fbfdfb,#f3f8f4);border:1px solid #e4ece5;border-radius:13px;padding:16px}.preparation-metrics article>div:first-child{justify-content:space-between;align-items:baseline;display:flex}.preparation-metrics strong{color:var(--green-dark);font:600 28px Georgia,serif}.preparation-metrics article span{color:var(--muted);font-size:9px}.preparation-metrics p{color:var(--ink);margin:8px 0 11px;font-size:12px;font-weight:700}.summary-progress{background:#e1e9e2;border-radius:10px;height:7px;overflow:hidden}.summary-progress span{border-radius:inherit;background:linear-gradient(90deg,#75a982,#9cc5a4);height:100%;display:block}.student-total{background:var(--green-pale);color:var(--green-dark);border-radius:16px;padding:6px 10px;font-size:10px;font-weight:700}.student-search{border:1px solid var(--line);color:var(--muted);background:#f8faf8;border-radius:10px;align-items:center;gap:8px;margin-bottom:14px;padding:0 12px;display:flex}.student-search input{background:0 0;border:0;outline:0;width:100%;padding:11px 0;font-size:10px}.managed-student-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.managed-student-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #e6ece7;border-radius:12px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;padding:15px;transition:all .18s;display:grid}.managed-student-card:hover{border-color:#a9c6af;transform:translateY(-1px);box-shadow:0 7px 20px #37564014}.managed-student-card>div{min-width:0}.managed-student-card>div strong{font-size:12px;display:block}.managed-student-card>div p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:9px;overflow:hidden}.managed-student-card .student-prep{color:var(--green-dark);text-align:right;font:600 15px Georgia,serif}.managed-student-card .student-prep small{color:var(--muted);margin-top:2px;font:400 8px Arial,sans-serif;display:block}.managed-student-card>b{color:var(--green);grid-column:2/-1;font-size:9px;font-weight:650}.empty-students{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:12px;grid-column:1/-1;padding:34px}.empty-students p{margin-top:6px;font-size:10px}.list-title{border-bottom:1px solid var(--line);padding:17px}.list-title>div{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.list-title h3{font-size:16px}.list-title span{color:var(--muted);font-size:10px}.list-title input,.library-table input{border:1px solid var(--line);background:#f8faf8;border-radius:8px;outline:none;width:100%;padding:9px 10px;font-size:10px}.student-list-row{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf1ed;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:11px 14px;display:grid}.student-list-row.selected{background:var(--green-pale)}.student-list-row>span{color:#fff;border-radius:50%;place-items:center;width:31px;height:31px;font-size:11px;display:grid}.student-list-row strong,.student-list-row small{display:block}.student-list-row strong{font-size:10px}.student-list-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:8px;overflow:hidden}.student-list-row em{color:#8da096;font-size:8px;font-style:normal}.student-detail{gap:15px;min-width:0;display:grid}.student-hero{align-items:center;gap:16px;padding:20px;display:flex}.back-to-students{border:0;border-right:1px solid var(--line);color:var(--green);cursor:pointer;white-space:nowrap;background:0 0;align-self:stretch;padding:0 17px 0 2px;font-size:10px;font-weight:650}.large-avatar{color:#fff;border-radius:18px;place-items:center;width:58px;height:58px;font-size:22px;font-weight:700;display:grid}.student-hero>div{flex:1}.student-hero h2{margin-bottom:3px;font-size:23px}.student-hero p:not(.eyebrow),.student-hero small{color:var(--muted);font-size:10px}.student-hero small{margin-top:5px;display:block}.preparation .panel-heading>strong{color:var(--green);font:600 24px Georgia,serif}.prep-items{flex-wrap:wrap;gap:8px;display:flex}.prep-task{background:var(--red-pale);border:1px solid #eed2cf;border-radius:8px;display:inline-flex;overflow:hidden}.prep-task>button{color:var(--red);cursor:pointer;background:0 0;border:0;padding:8px 11px;font-size:11px;font-weight:650}.prep-task.done{background:var(--green-pale);border-color:#d6e6d8}.prep-task.done>button{color:var(--green-dark)}.prep-task>button:hover:not(:disabled){background:#ffffff7a}.prep-task>button.prep-delete{opacity:.55;border-left:1px solid;padding-inline:8px}.prep-items button:disabled{cursor:default;opacity:.78}.prep-add-form{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px;display:grid}.prep-add-form input{border:1px solid var(--line);min-width:0;color:var(--ink);background:#fafcfa;border-radius:9px;outline:0;padding:9px 11px;font-size:10px}.prep-add-form input:focus{box-shadow:0 0 0 3px var(--green-pale);border-color:#91b399}.ec-field{color:var(--muted);grid-template-columns:170px 1fr;align-items:center;margin-top:14px;font-size:12px;font-weight:600;display:grid}.ec-field>span{align-items:center;gap:7px;display:flex}.ec-field em{color:#8a958f;white-space:nowrap;background:#eef1ef;border-radius:5px;padding:3px 6px;font-size:9px;font-style:normal;font-weight:500}.ec-field input{border:1px solid var(--line);color:var(--ink);background:#fafcfa;border-radius:8px;padding:10px 11px;font-size:11px;font-weight:400}.project-table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:930px}th{color:#74837a;text-align:left;letter-spacing:.03em;background:#f5f8f5;padding:11px 12px;font-size:10px}td{vertical-align:middle;border-bottom:1px solid #edf1ed;padding:15px 12px;font-size:11px}td strong,td small{display:block}td strong{margin:6px 0 4px;font-size:12px;line-height:1.35}td small{color:var(--muted);max-width:230px;font-size:10px;line-height:1.45}.project-table-panel .status{padding:6px 9px;font-size:10px}.country-tag{color:#74857a;background:#eef3ef;border-radius:5px;padding:4px 7px;font-size:9px;display:inline-block}.status-button{cursor:pointer;background:0 0;border:0;padding:0}.project-edit-button{color:var(--green);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:9px;font-weight:650}.project-edit-button:hover{text-decoration:underline}.application-link{color:var(--green);white-space:nowrap;font-size:10px;font-weight:700;text-decoration:none}.application-link:hover{text-decoration:underline}.credential-text{max-width:150px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:10px;display:block;overflow:hidden}.writing-status{gap:6px;min-width:125px;display:grid}.writing-status>span{color:var(--muted);justify-content:space-between;align-items:center;gap:6px;font-size:9px;font-weight:700;display:flex}.inline-status-select{cursor:pointer;border:0;border-radius:7px;outline:0;padding:7px 9px;font-size:10px;font-weight:700}.inline-status-select.good{background:var(--green-pale);color:var(--green-dark)}.inline-status-select.bad{background:var(--red-pale);color:var(--red)}.summary-cell,.material-summary{color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:5px;padding:0;font-size:9px;display:flex}.summary-cell span{background:#f5f7f5;border-radius:6px;padding:5px 7px}.summary-cell strong{color:var(--green-dark);margin:0;font-size:14px}.progress-summary{min-width:76px}.progress-summary strong,.progress-summary span{transition:color .15s,background .15s}.progress-summary.progress-complete strong{color:var(--green-dark)}.progress-summary.progress-complete span{background:var(--green-pale);color:var(--green-dark)}.progress-summary.progress-in-progress strong{color:var(--orange)}.progress-summary.progress-in-progress span{background:var(--orange-pale);color:var(--orange)}.progress-summary.progress-not-started strong{color:var(--red)}.progress-summary.progress-not-started span{background:var(--red-pale);color:var(--red)}.progress-summary.progress-empty strong{color:#89938d}.progress-summary.progress-empty span{color:#89938d;background:#f0f2f0}.material-summary span:last-child{white-space:nowrap}.detail-button{border:1px solid var(--line);color:var(--green);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:8px 10px;font-size:9px;font-weight:700}.detail-button:hover{background:var(--green-pale)}.calendar-header,.knowledge-intro{justify-content:space-between;align-items:center;margin-bottom:18px;padding:20px 23px;display:flex}.calendar-header h2,.knowledge-intro h2{font-size:23px}.legend{color:var(--muted);gap:18px;font-size:10px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{border-radius:50%;width:8px;height:8px}.legend i.kexin{background:#79a985}.legend i.vermous{background:#b493b8}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.calendar-month-toolbar{border-bottom:1px solid var(--line);grid-column:1/-1;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:15px 18px;display:grid}.calendar-month-toolbar>div{align-items:center;gap:12px;display:flex}.calendar-month-toolbar h3{text-align:center;min-width:132px;margin:0;font:650 17px Georgia,serif}.calendar-month-toolbar button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;background:#fff;border-radius:8px;padding:6px 10px;font-size:15px}.calendar-month-toolbar>span{color:var(--muted);font-size:10px;font-weight:700}.calendar-month-toolbar .today-button{justify-self:end;font-size:10px;font-weight:700}.calendar-grid>b{color:var(--muted);text-align:center;background:#f5f8f5;padding:11px;font-size:9px}.calendar-day{border-top:1px solid var(--line);border-right:1px solid var(--line);min-height:112px;padding:9px}.calendar-day.outside{background:#fafbfa}.calendar-day.today{background:#fbfefb;box-shadow:inset 0 0 0 2px #87b291}.calendar-day.today>span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:23px;height:23px;display:grid}.calendar-day>span{color:#7d8a82;font:600 11px Georgia,serif}.calendar-day button{text-overflow:ellipsis;white-space:nowrap;text-align:left;cursor:pointer;border:0;border-radius:6px;width:100%;margin-top:7px;padding:8px 7px;font-size:10px;font-weight:650;line-height:1.35;overflow:hidden}.calendar-day button.kexin{background:var(--green-pale);color:var(--green-dark);border-left:3px solid #79a985}.calendar-day button.vermous{color:#765d79;background:#f2eaf3;border-left:3px solid #b493b8}.simple-list{overflow:hidden}.simple-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:15px;width:100%;padding:16px 20px;display:grid}.simple-list time{color:var(--green-dark);font:600 13px Georgia,serif}.simple-list strong{font-size:12px}.simple-list p{color:var(--muted);margin:4px 0 0;font-size:10px}.summary-empty{justify-content:center;align-items:center;gap:14px;min-height:160px;display:flex}.summary-empty>span{background:var(--green-pale);width:40px;height:40px;color:var(--green-dark);border-radius:50%;place-items:center;font-weight:800;display:grid}.summary-empty h3{margin-bottom:6px}.summary-empty p{color:var(--muted);margin:0;font-size:10px}.risk-row{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:11px;width:100%;padding:13px 4px;display:grid}.risk-mark{background:var(--red-pale);width:25px;height:25px;color:var(--red);border-radius:50%;place-items:center;font-weight:800;display:grid}.risk-row p,.risk-row small{color:var(--muted);margin:3px 0 0;font-size:10px;display:block}.risk-row small{color:var(--red)}.risk-row time{color:var(--red);font-size:10px;font-weight:700}.risk-row b{color:var(--green);font-size:9px}.risk-list{overflow:hidden}.risk-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;grid-template-columns:28px 88px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:15px 20px;display:grid}.risk-list time{color:var(--red);font-size:10px;font-weight:750}.risk-list p,.risk-list small{color:var(--muted);margin:4px 0 0;font-size:10px;display:block}.risk-list small{color:var(--red)}.risk-list b{color:var(--green);font-size:9px}.knowledge-grid{grid-template-columns:.8fr 1.2fr;gap:18px;display:grid}.knowledge-grid.single{grid-template-columns:minmax(0,760px)}.review-card{border-top:1px solid var(--line);grid-template-columns:9px 1fr auto;align-items:start;gap:12px;padding:15px 4px;display:grid}.review-card div>*{display:block}.review-card strong{font-size:13px}.review-card p{color:var(--muted);margin:4px 0 9px;font-size:11px}.review-card em{background:var(--orange-pale);color:var(--orange);border-radius:7px;padding:9px;font-size:10px;font-style:normal}.review-card small{color:var(--muted);margin-top:9px;font-size:9px}.review-card button{border:1px solid var(--line);color:var(--green);cursor:pointer;background:#fff;border-radius:8px;align-self:center;padding:7px 9px;font-size:9px}.review-card-actions{align-self:center;justify-items:stretch;gap:7px;display:grid}.review-card-actions a{background:var(--green-pale);color:var(--green);text-align:center;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:700;text-decoration:none}.review-progress{align-items:center;gap:9px;margin-top:10px;display:flex}.review-progress>span{background:#e7eee8;border-radius:999px;width:118px;height:6px;overflow:hidden}.review-progress i{border-radius:inherit;background:var(--orange);height:100%;display:block}.review-progress small{margin:0;font-size:10px}.library-table .panel-heading input{width:180px}.library-row{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;grid-template-columns:auto minmax(0,1fr) auto auto 110px auto;align-items:center;gap:10px;width:100%;padding:13px 4px;display:grid}.library-row strong{font-size:13px}.library-row p{color:var(--muted);margin:4px 0 0;font-size:11px}.library-row small{color:var(--muted);font-size:9px}.library-row b{color:var(--green)}.major-tag{color:#667493;white-space:nowrap;background:#edf0f7;border-radius:6px;padding:5px 8px;font-size:9px;font-weight:700}.toast{z-index:300;color:#fff;background:#2e4937;border:1px solid #6f9f7a;border-radius:12px;max-width:min(520px,100vw - 56px);padding:15px 19px;font-size:12px;font-weight:700;line-height:1.45;animation:.22s ease-out toast-in;position:fixed;top:24px;right:28px;box-shadow:0 14px 34px #1e322647}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1c2b2252;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.student-modal{border:1px solid var(--line);background:#fff;border-radius:18px;gap:15px;width:min(480px,100%);padding:25px;display:grid;box-shadow:0 25px 70px #1a2e2138}.knowledge-modal{width:min(780px,100%);max-height:calc(100vh - 48px);overflow-y:auto}.knowledge-form-section{border-top:1px solid var(--line);gap:12px;padding-top:15px;display:grid}.knowledge-form-section h3{margin:0;font-size:14px}.knowledge-deadline-field{border:1px solid var(--line);background:#f8fbf8;border-radius:12px;gap:10px;margin:0;padding:14px;display:grid}.knowledge-deadline-field legend{color:var(--ink);padding:0 6px;font-size:12px;font-weight:800}.knowledge-deadline-field>p{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.knowledge-deadline-list{gap:8px;display:grid}.knowledge-deadline-row{grid-template-columns:minmax(140px,1fr) 120px 95px 95px auto;align-items:center;gap:8px;display:grid}.knowledge-deadline-row input,.knowledge-deadline-row select{min-width:0}.knowledge-deadline-row button{color:#b8564f;cursor:pointer;background:0 0;border:0;font-size:10px;font-weight:700}.knowledge-deadline-field>.secondary-button{justify-self:start}.empty-deadline-note{color:var(--muted);font-size:10px}.knowledge-review-summary{background:#f4f9f5;border:1px solid #cfe2d3;border-radius:14px;gap:11px;padding:14px;display:grid}.knowledge-review-summary>div:first-child{justify-content:space-between;gap:12px;display:flex}.knowledge-review-summary>div:first-child span{color:var(--muted);font-size:12px}.knowledge-review-summary>div:last-child{flex-wrap:wrap;gap:7px;display:flex}.knowledge-review-summary>div:last-child span{color:#a76828;background:#fff2df;border-radius:999px;padding:6px 9px;font-size:11px}.knowledge-review-summary>div:last-child span.complete{color:var(--green);background:#dfeee2}.knowledge-current-status{align-items:center;min-height:42px;display:flex}.knowledge-review-actions>span{flex:1}.knowledge-list-empty{color:var(--muted);text-align:center;padding:36px}.major-tag-field{border:0;margin:0;padding:0}.major-tag-field legend{color:var(--ink);margin-bottom:8px;font-size:11px;font-weight:650}.major-tag-field>div{flex-wrap:wrap;gap:8px;display:flex}.major-tag-field label{cursor:pointer}.major-tag-field input{opacity:0;pointer-events:none;position:absolute}.major-tag-field span{border:1px solid var(--line);color:var(--muted);background:#fafcfa;border-radius:999px;padding:8px 12px;font-size:12px;display:block}.major-tag-field label.selected span{color:var(--green);background:#e3f0e5;border-color:#9fc4a6;font-weight:750}.major-tag-field .custom-tag-row{gap:8px;width:100%;margin-top:10px;display:flex}.major-tag-field .custom-tag-row input{opacity:1;pointer-events:auto;flex:1;position:static}.knowledge-alert-list article{border-top:1px solid var(--line);grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 4px;display:grid}.knowledge-alert-list article p,.knowledge-alert-list article small{color:var(--muted);margin:4px 0 0;display:block}.knowledge-alert-list article button{color:var(--green);cursor:pointer;background:#fff;border:1px solid #bfd6c4;border-radius:9px;padding:9px 12px;font-weight:700}.knowledge-alert-list{max-width:920px;padding:20px 22px}.knowledge-alert-list .panel-heading{margin-bottom:12px}.knowledge-alert-list .panel-heading h3{margin-bottom:0}.knowledge-alert-list .empty-focus{min-height:0;padding:15px 16px}.knowledge-alert-card{align-items:start!important}.knowledge-alert-main{min-width:0}.knowledge-alert-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.knowledge-alert-heading>button{flex:none}.knowledge-alert-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.deadline-choice-row{background:#f3f8f4;border-radius:11px;flex-wrap:wrap;align-items:center;gap:7px;padding:11px;display:flex}.deadline-choice-row>span,.deadline-choice-row small{color:var(--muted);font-size:10px}.deadline-choice-row button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;gap:6px;padding:7px 9px;font-size:10px;display:flex}.deadline-choice-row button.selected{border-color:var(--green);background:var(--green-pale);color:var(--green)}.knowledge-diff-list{gap:7px;margin-top:12px;display:grid}.knowledge-diff-item{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:13px;display:grid}.knowledge-diff-item.review-only{background:#faf7f1}.knowledge-diff-choice{align-content:start;gap:8px;display:grid}.knowledge-diff-choice>label{color:var(--green);cursor:pointer;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.knowledge-diff-choice>span{color:#9a682f;background:#f0dfc8;border-radius:999px;width:fit-content;padding:5px 8px;font-size:10px;font-weight:700}.knowledge-diff-choice input{accent-color:var(--green)}.knowledge-diff-values{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.knowledge-diff-values>div{background:#fff;border-radius:9px;min-width:0;padding:10px}.knowledge-diff-values small{color:var(--muted);font-size:9px;display:block;margin:0 0 5px!important}.knowledge-diff-values p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;color:var(--ink)!important;margin:0!important}.knowledge-diff-values>div:last-child p{font-weight:650;color:var(--green)!important}.knowledge-diff-values>i{color:var(--muted);text-align:center;font-style:normal}.major-filter-panel{border:1px solid var(--line);background:#fff;border-radius:13px;gap:10px;margin:0 0 16px;padding:14px 16px;display:grid}.major-filter-panel>div:first-child{justify-content:space-between;align-items:center;gap:10px;display:flex}.major-filter-panel>div:first-child>div{align-items:baseline;gap:10px;display:flex}.major-filter-panel>div:first-child span{color:var(--muted);font-size:11px}.major-filter-panel>div:first-child .secondary-button{min-height:34px;padding:7px 12px}.major-filter-panel .filter-row{margin:0}.major-filter-item{align-items:stretch;display:inline-flex}.major-filter-item>button:first-child{border-radius:999px}.major-filter-item:has(.major-tag-delete)>button:first-child{border-radius:999px 0 0 999px}.major-filter-item .major-tag-delete{color:#b8564f;border-left:1px solid #dbe7dd;border-radius:0 999px 999px 0;min-width:28px;padding:0 8px}@media (width<=820px){.knowledge-diff-item,.knowledge-diff-values{grid-template-columns:1fr}.knowledge-diff-values>i{transform:rotate(90deg)}}.knowledge-form-section textarea{resize:vertical;min-height:78px}@media (width<=720px){.knowledge-deadline-row{grid-template-columns:1fr 1fr}}.knowledge-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.knowledge-section-heading h3{margin:0}.research-button{color:var(--green-dark);cursor:pointer;background:#eff7f0;border:1px solid #a9c8ae;border-radius:9px;padding:9px 12px;font-size:10px;font-weight:750}.research-button:disabled{cursor:default;opacity:.55}.research-summary{background:#f2f8f3;border:1px solid #cfe0d3;border-radius:11px;gap:4px;padding:12px 14px;display:grid}.research-summary strong{color:var(--green-dark);font-size:11px}.research-summary span{color:var(--muted);font-size:9px;line-height:1.55}.auth-message-page{min-height:100vh;color:var(--ink);background:#f4f8f3;place-items:center;padding:24px;display:grid}.auth-message-page section{border:1px solid var(--line);text-align:center;background:#fff;border-radius:22px;width:min(480px,100%);padding:34px;box-shadow:0 18px 55px #2a463114}.auth-message-page span{color:var(--green);letter-spacing:.16em;font-size:11px;font-weight:800}.auth-message-page h1{margin:12px 0 8px;font-family:Georgia,serif;font-size:28px}.auth-message-page p{color:var(--muted);line-height:1.6}.auth-message-page a{background:var(--green);color:#fff;border-radius:9px;margin-top:8px;padding:10px 14px;font-weight:700;text-decoration:none;display:inline-flex}.admin-login-page form{border:1px solid var(--line);text-align:center;background:#fff;border-radius:24px;justify-items:stretch;gap:15px;width:min(440px,100%);padding:38px;display:grid;box-shadow:0 22px 65px #2a46311a}.admin-login-page .brand-mark{margin:0 auto 2px}.admin-login-page h1{margin:0}.admin-login-page p{margin:0 0 4px}.admin-login-page label{color:var(--ink);text-align:left;gap:8px;display:grid}.admin-login-page label b{font-size:12px}.admin-login-page input{border:1px solid var(--line);background:#fbfdfb;border-radius:11px;outline:none;width:100%;padding:13px 14px}.admin-login-page input:focus{border-color:var(--green);box-shadow:0 0 0 3px #5f8f6b1f}.admin-login-page button{background:var(--green-dark);color:#fff;cursor:pointer;border:0;border-radius:11px;padding:13px 16px;font-weight:750}.admin-login-page small{color:var(--muted);font-size:10px}.admin-login-error{background:var(--red-pale);color:var(--red);border-radius:9px;padding:10px 12px;font-size:11px}.top-actions>form{margin:0}.logout-button{padding-inline:12px}.knowledge-writing-block{border:1px solid var(--line);background:#fbfdfb;border-radius:14px;gap:10px;padding:14px;display:grid}.knowledge-writing-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.knowledge-writing-heading select{width:150px}.knowledge-writing-heading button:not(.secondary-button){color:#bd574d;cursor:pointer;background:0 0;border:0}.knowledge-essay-item{border-top:1px dashed var(--line);gap:10px;padding-top:12px;display:grid}.compact-button{width:auto;padding:8px 12px}.form-hint{color:var(--muted);margin:0;font-size:13px}.knowledge-import-box{background:#f1f8f2;border:1px solid #cfe2d3;border-radius:14px;gap:6px;padding:14px;display:grid}.knowledge-import-box p{color:var(--muted);margin:0;font-size:13px}.knowledge-search-results{gap:7px;margin-top:4px;display:grid}.knowledge-search-results>button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;padding:11px;display:grid}.knowledge-search-results>button:hover{border-color:var(--green);box-shadow:0 4px 12px #48745114}.knowledge-search-results strong,.knowledge-search-results p,.knowledge-search-results small{margin:0;display:block}.knowledge-search-results p{color:var(--ink);margin-top:2px;font-size:13px}.knowledge-search-results small{color:var(--muted);margin-top:3px}.knowledge-search-empty{border:1px dashed var(--line);color:var(--muted);border-radius:12px;gap:3px;padding:13px;display:grid}.knowledge-selected{background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:11px;display:grid}.knowledge-selected>span{width:28px;height:28px;color:var(--green);background:#dcecdf;border-radius:50%;place-items:center;font-weight:800;display:grid}.knowledge-selected p{margin-top:2px}.knowledge-selected button{color:var(--green);cursor:pointer;background:0 0;border:0;font-weight:700}.student-hero-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.student-account-strip{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:center;gap:18px;margin:-8px 0 10px;padding:11px 14px;display:flex}.student-account-strip>div{gap:3px;min-width:170px;display:grid}.student-account-strip span{color:var(--muted);font-size:9px}.student-account-strip strong{overflow-wrap:anywhere;font-size:11px}.student-account-strip button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;background:#f7faf7;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:700}.student-account-strip button:first-of-type{margin-left:auto}.share-access-strip{color:var(--muted);background:#f4f9f5;border:1px solid #cfe0d3;border-radius:11px;align-items:center;gap:14px;margin:-8px 0 14px;padding:10px 14px;font-size:10px;display:flex}.share-access-strip>span{color:var(--green-dark);font-weight:750}.share-access-strip.is-disabled{background:#fafbfa;border-style:dashed}.share-access-strip.is-disabled>span{color:var(--muted)}.share-access-strip small:last-child{margin-left:auto}.danger-outline-button{color:#b4544b;cursor:pointer;background:#fff8f7;border:1px solid #e3b7b2;border-radius:11px;padding:10px 14px;font-weight:700}.danger-outline-button:hover{background:#fcecea;border-color:#c87369}.panel-heading-actions{align-items:center;gap:8px;display:flex}.agreement-import-modal{width:min(960px,100%);max-height:calc(100vh - 48px);overflow:auto}.agreement-file-picker{cursor:pointer;text-align:center;background:#f5faf5;border:1px dashed #a9c8ae;border-radius:15px;place-items:center;gap:5px;padding:25px;display:grid}.agreement-file-picker input{opacity:0;width:1px;height:1px;position:absolute}.agreement-file-picker strong{color:var(--green)}.agreement-file-picker span{color:var(--muted);font-size:13px}.agreement-error{color:#aa4d45;background:#fce8e6;border-radius:11px;padding:12px 14px}.agreement-preview{gap:7px;display:grid}.agreement-preview-heading{justify-content:space-between;align-items:center;display:flex}.agreement-preview-heading span{color:var(--muted);font-size:13px}.agreement-stage-summary{border:1px solid var(--line);background:#f5f9f6;border-radius:12px;grid-template-columns:repeat(3,minmax(110px,1fr)) auto;gap:8px;padding:12px;display:grid}.agreement-stage-summary>div{gap:2px;display:grid}.agreement-stage-summary strong{color:var(--ink);font-family:Georgia,serif;font-size:20px}.agreement-stage-summary span{color:var(--muted);font-size:10px}.agreement-staging-item{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.agreement-staging-item.is-ready{border-color:#bcd9c2}.agreement-staging-item.needs-review{border-color:#ead2a6}.agreement-staging-item.is-missing{border-color:#edc4c0}.agreement-preview-row{grid-template-columns:48px minmax(150px,.8fr) minmax(230px,1.3fr) auto 94px 28px;align-items:center;gap:8px;padding:9px;display:grid}.agreement-row-check{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.agreement-row-check input,.agreement-preview-heading input{width:16px;height:16px;accent-color:var(--green)}.agreement-preview-row input{min-width:0}.agreement-preview-row .agreement-review-button{border:1px solid var(--line);color:var(--green);cursor:pointer;background:#fff;border-radius:8px;padding:7px 8px;font-size:10px;font-weight:700}.agreement-preview-row .agreement-remove-button{color:#b4544b;cursor:pointer;background:0 0;border:0;font-size:18px}.agreement-ready-mark{color:var(--green);text-align:center;font-size:10px;font-weight:700}.agreement-deadline-step{border-top:1px solid var(--line);background:#f7fbf8;align-items:end;gap:12px;padding:10px 12px;display:flex}.agreement-deadline-step label{flex:1}.agreement-deadline-step small{color:var(--muted);padding-bottom:9px;font-size:10px}@media (width<=760px){.agreement-stage-summary{grid-template-columns:repeat(3,1fr)}.agreement-stage-summary>button{grid-column:1/-1}.agreement-preview-row{grid-template-columns:24px 1fr 72px 28px}.agreement-preview-row input{grid-column:2/4}.agreement-preview-row .status-pill{grid-column:2}.agreement-preview-row .agreement-review-button,.agreement-ready-mark{grid-column:3}.agreement-preview-row .agreement-remove-button{grid-area:1/4}.agreement-deadline-step{flex-direction:column;align-items:stretch}}.student-share-page{min-height:100vh;color:var(--ink);background:#f5f8f4;padding:48px clamp(20px,6vw,88px)}.student-share-header{justify-content:space-between;align-items:end;gap:24px;max-width:1180px;margin:0 auto 20px;display:flex}.student-share-header p{color:var(--green);letter-spacing:.16em;margin:0 0 8px;font-size:12px;font-weight:800}.student-share-header h1{margin:0 0 7px;font-family:Georgia,serif;font-size:clamp(30px,4vw,48px)}.student-share-header>div>span{color:var(--muted)}.student-share-summary{text-align:center;background:#deecdf;border-radius:18px;min-width:140px;padding:18px 22px;display:grid}.student-share-summary strong{color:var(--green);font-family:Georgia,serif;font-size:30px}.student-share-summary span{color:var(--muted);font-size:13px}.student-share-notice{color:#876b31;background:#fffaf0;border:1px solid #e7d8b5;border-radius:12px;max-width:1180px;margin:0 auto 20px;padding:12px 16px;font-size:13px}.student-share-projects{gap:18px;max-width:1180px;margin:0 auto;display:grid}.student-share-card{border:1px solid var(--line);background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 10px 30px #2a46310f}.student-share-card.completed{box-shadow:none;background:#fbfdfb}.student-share-card>summary{cursor:pointer;list-style:none}.student-share-card>summary::-webkit-details-marker{display:none}.student-share-card[open]>summary{border-bottom:1px solid var(--line)}.student-share-card-heading em{color:var(--green);font-size:12px;font-style:normal;font-weight:700}.student-share-card-heading{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:22px;display:flex}.student-share-card-heading h2{margin:7px 0 3px;font-size:21px}.student-share-card-heading p{color:var(--muted);margin:0}.student-share-card-heading>div:first-child>span{color:var(--green);font-size:12px;font-weight:800}.student-share-card-heading>div:last-child{align-content:center;justify-items:end;gap:8px;display:grid}.student-share-card-heading time{color:var(--muted);font-size:13px}.student-share-card b.good,.student-share-detail b.good,.student-share-materials b.good{color:#38734a;background:#e3f1e6}.student-share-card b.bad,.student-share-detail b.bad,.student-share-materials b.bad{color:#b34d45;background:#fbe8e6}.student-share-detail b.warn,.student-share-materials b.warn{color:#a96a18;background:#fff0d9}.student-share-detail b.muted,.student-share-materials b.muted{color:#78817c;background:#edf0ee}.student-share-card-heading b,.student-share-detail b,.student-share-materials b{border-radius:8px;padding:6px 9px;font-size:12px}.student-share-account{background:#fafcf9;grid-template-columns:1.4fr 1fr 1fr;gap:12px;padding:16px 22px;display:grid}.student-share-account a,.student-share-account span{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:11px;padding:11px 13px;text-decoration:none}.student-share-account small,.student-share-materials small{color:var(--muted);margin-bottom:4px;display:block}.student-share-columns{grid-template-columns:1fr 1fr;gap:24px;padding:20px 22px;display:grid}.student-share-columns h3{margin:0 0 10px}.student-share-detail{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:8px;padding:10px 0;display:grid}.student-share-detail small{color:var(--muted);margin-top:3px;display:block}.student-share-detail p{color:#59655d;white-space:pre-wrap;grid-column:1/-1;margin:3px 0 0;font-size:13px}.student-share-empty{color:var(--muted);font-size:13px}.export-button{align-items:center;text-decoration:none;display:inline-flex}.student-share-materials{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;padding:16px 22px 22px;display:flex}.student-share-materials span{border:1px solid var(--line);border-radius:11px;min-width:150px;padding:11px}.student-share-materials b{display:inline-block}.student-share-empty-state{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:18px;padding:80px 20px}@media (width<=760px){.student-share-header,.student-share-card-heading{flex-direction:column;align-items:stretch}.student-share-card-heading>div:last-child{justify-items:start}.student-share-account,.student-share-columns{grid-template-columns:1fr}}.project-modal{border:1px solid var(--line);background:#fff;border-radius:18px;gap:17px;width:min(760px,100%);max-height:calc(100vh - 48px);padding:25px;display:grid;overflow-y:auto;box-shadow:0 25px 70px #1a2e2138}.modal-heading{justify-content:space-between;align-items:start;margin-bottom:2px;display:flex}.modal-heading h2{margin:0;font-size:23px}.modal-heading>button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:#f0f3f0;border:0;border-radius:8px;font-size:19px}.student-modal>label,.project-form-grid>label{color:var(--ink);gap:7px;font-size:11px;font-weight:650;display:grid}.student-modal input,.student-modal select,.project-modal input:not([type=checkbox]),.project-modal select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fafcfa;border-radius:9px;outline:none;padding:11px 12px;font-size:11px;font-weight:400}.student-modal input:focus,.student-modal select:focus,.project-modal input:focus,.project-modal select:focus{box-shadow:0 0 0 3px var(--green-pale);border-color:#91b399}.project-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.project-form-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.project-status-section,.optional-progress{border-top:1px solid var(--line);padding-top:16px}.project-status-section h3,.optional-progress h3{margin:0 0 12px;font-size:14px}.optional-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.optional-progress>h3{grid-column:1/-1;margin-bottom:0}.optional-progress>div{border:1px solid var(--line);background:#fafcfa;border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.optional-progress>div>select{flex:1;width:auto}.optional-fields{flex:1;gap:8px;min-width:0;display:grid}.optional-fields select,.optional-fields input,.optional-fields textarea{width:100%}.optional-fields textarea{resize:vertical;min-height:76px}.material-controls label small{color:var(--muted);white-space:pre-wrap;margin:5px 0 8px;font-weight:500;line-height:1.5;display:block}.recommendation-list{gap:9px;display:grid}.recommendation-list article{border:1px solid var(--line);background:#fbfcfb;border-radius:11px;grid-template-columns:minmax(0,1fr) 120px 32px;align-items:center;gap:10px;padding:12px;display:grid}.recommendation-list article div{gap:4px;display:grid}.recommendation-list article span{color:var(--muted);font-size:12px}.recommendation-list article>button{color:#b05d58;cursor:pointer;background:0 0;border:0;font-size:20px}.recommendation-add-form{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) 1fr 1fr auto;gap:8px;margin-top:14px;padding-top:14px;display:grid}.recommendation-import{background:var(--green-pale);border:1px solid #cfe0d3;border-radius:11px;grid-template-columns:minmax(0,1fr) 190px auto;align-items:center;gap:9px;margin-top:14px;padding:12px;display:grid}.recommendation-import div{gap:4px;display:grid}.recommendation-import span{color:var(--muted);font-size:10px}.feature-toggle{color:var(--ink);white-space:nowrap;cursor:pointer;align-items:center;gap:7px;font-size:10px;font-weight:650;display:flex}.feature-toggle input{width:15px;height:15px;accent-color:var(--green)}.modal-note{color:var(--muted);background:#f4f7f4;border-radius:9px;padding:10px 12px;font-size:9px;line-height:1.55}.modal-actions{justify-content:flex-end;gap:9px;padding-top:3px;display:flex}.project-modal-actions>span{flex:1}.danger-button{color:var(--red);cursor:pointer;background:#fff5f4;border:1px solid #e8c5c1;border-radius:8px;padding:9px 12px;font-size:10px;font-weight:700}.danger-button:hover{background:var(--red-pale)}.student-delete-backdrop{z-index:80}.student-delete-modal{max-width:520px}.student-delete-warning{color:#7d3f39;background:#fff7f6;border:1px solid #efc9c5;border-radius:14px;padding:16px 18px}.student-delete-warning strong{margin-bottom:6px;font-size:16px;display:block}.student-delete-warning p{color:#92615c;margin:0;line-height:1.65}.modal-actions button:disabled{opacity:.55;cursor:wait}.drawer-backdrop{z-index:190;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c2b2242;position:fixed;inset:0}.project-drawer{background:#fbfdfb;flex-direction:column;width:min(560px,94vw);height:100%;animation:.22s ease-out drawer-in;display:flex;position:absolute;top:0;right:0;box-shadow:-18px 0 45px #1c2b222e}@keyframes drawer-in{0%{opacity:.4;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.project-drawer>header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;gap:18px;padding:25px 27px 18px;display:flex}.project-drawer>header h2{margin:10px 0 5px;font-size:22px}.project-drawer>header p{color:var(--muted);margin:0;font-size:11px;line-height:1.5}.project-drawer>header>button{width:34px;height:34px;color:var(--muted);cursor:pointer;background:#f0f3f0;border:0;border-radius:9px;font-size:20px}.drawer-meta{color:var(--muted);background:#fff;justify-content:space-between;align-items:center;padding:14px 27px;font-size:10px;display:flex}.drawer-meta strong{color:var(--ink);margin-left:6px}.drawer-tabs{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:repeat(4,1fr);padding:0 20px;display:grid}.drawer-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:13px 5px;font-size:10px;font-weight:650}.drawer-tabs button.active{border-bottom-color:var(--green);color:var(--green-dark)}.drawer-content{flex:1;padding:22px 27px;overflow-y:auto}.detail-section{gap:13px;display:grid}.detail-section h3{margin:0 0 3px;font-size:17px}.detail-section>label{color:var(--ink);grid-template-columns:130px 1fr;align-items:center;gap:12px;font-size:11px;font-weight:650;display:grid}.detail-section select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:9px;padding:10px 11px;font-size:10px}.detail-section dl{gap:9px;margin:0;display:grid}.detail-section dl>div{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:95px 1fr;padding:13px;display:grid}.detail-section dt{color:var(--muted);font-size:10px}.detail-section dd{overflow-wrap:anywhere;color:var(--ink);margin:0;font-size:11px;font-weight:650}.detail-section dd a{color:var(--green)}.coming-detail{background:#f5f9f5;border:1px dashed #cbd9cd;border-radius:11px;margin-top:8px;padding:16px}.coming-detail strong{font-size:11px}.coming-detail p{color:var(--muted);margin:6px 0 0;font-size:10px;line-height:1.6}.recommendation-summary{background:var(--orange-pale);color:var(--orange);border-radius:12px;align-items:baseline;gap:8px;padding:18px;display:flex}.recommendation-summary strong{font:600 30px Georgia,serif}.recommendation-summary span{font-size:10px}.writing-item-heading{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:8px;padding-top:15px;display:flex}.writing-overview{background:var(--green-pale);border-radius:12px;gap:12px;padding:17px;display:grid}.writing-overview>div:first-child{align-items:baseline;gap:9px;display:flex}.writing-overview strong{color:var(--green-dark);font:600 30px Georgia,serif}.writing-overview span{color:var(--green-dark);font-size:10px;font-weight:650}.writing-item-heading strong{font-size:12px}.writing-item-heading span{color:var(--muted);font-size:9px}.writing-item-list{gap:9px;display:grid}.writing-item-list article{border:1px solid var(--line);background:#fff;border-radius:11px;grid-template-columns:minmax(0,1fr) 125px 26px;align-items:center;gap:9px;padding:13px;display:grid}.writing-item-list article>div{min-width:0}.writing-item-list article strong{margin:8px 0 5px;font-size:11px;line-height:1.45;display:block}.writing-item-list article p{color:var(--muted);margin:0;font-size:9px}.writing-item-list article>button{background:var(--red-pale);width:26px;height:26px;color:var(--red);cursor:pointer;border:0;border-radius:7px}.empty-writing{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:10px;padding:18px}.empty-writing span{font-size:11px;font-weight:700}.empty-writing p{margin:5px 0 0;font-size:9px}.writing-add-form{background:#f1f6f2;border-radius:11px;gap:9px;padding:14px;display:grid}.writing-add-form>div{grid-template-columns:150px 1fr;gap:9px;display:grid}.writing-add-form>div:last-child{grid-template-columns:1fr auto}.writing-add-form input,.writing-add-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:9px;outline:0;padding:10px 11px;font-size:10px}.writing-add-form textarea{resize:vertical;min-height:84px;line-height:1.55}.project-drawer>footer{border-top:1px solid var(--line);text-align:right;background:#fff;padding:16px 27px}@media (width<=1120px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.knowledge-grid,.student-grid,.student-management-overview{grid-template-columns:1fr}.preparation-summary{position:static}.preparation-metrics{grid-template-columns:repeat(3,1fr)}.managed-student-grid{grid-template-columns:1fr}.project-form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
