:root{
  --forest:#173d32;--forest-2:#235847;--leaf:#3f8064;--sage:#e7f1e9;--sage-2:#f2f7f3;
  --blue:#eaf3fa;--blue-ink:#315f7a;--peach:#fbece4;--peach-ink:#8a523a;--butter:#fbf4d8;--butter-ink:#776322;
  --coral:#f8e4e1;--coral-ink:#8b4945;--mint:#e1f3e9;--ink:#203029;--muted:#6f7c75;--line:#dfe8e2;
  --paper:#fbfcf9;--white:#fff;--shadow:0 16px 46px rgba(21,61,50,.09);--shadow-soft:0 8px 24px rgba(21,61,50,.07);
  --radius:20px;--max:1380px;
}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Be Vietnam Pro",system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.boot-shell{min-height:100vh;display:grid;place-items:center}.boot-card{display:grid;justify-items:center;gap:10px;color:var(--muted)}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--forest),var(--leaf));color:white;display:grid;place-items:center;font-weight:800;box-shadow:var(--shadow-soft);overflow:hidden;flex:0 0 auto}.brand-mark img{width:100%;height:100%;object-fit:contain;display:block}.brand-mark.large{width:58px;height:58px;border-radius:18px}.brand-mark.login-logo{width:74px;height:74px;border-radius:20px;margin-bottom:8px}
.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;border-right:1px solid var(--line);background:rgba(255,255,255,.88);backdrop-filter:blur(18px);display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:4px 6px 22px}.brand b{font-size:13px;display:block}.brand small{font-size:9px;color:var(--muted)}.side-nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;border-radius:12px;padding:10px 11px;text-align:left;display:flex;gap:10px;align-items:center;font-size:10px;color:#56655d}.nav-item:hover{background:var(--sage-2)}.nav-item.active{background:var(--sage);color:var(--forest);font-weight:800}.nav-icon{width:23px;text-align:center;font-size:13px}.side-spacer{flex:1}.teacher-card{padding:12px;border:1px solid var(--line);background:#fff;border-radius:15px}.teacher-card b{font-size:10px;display:block}.teacher-card small{font-size:8px;color:var(--muted)}.teacher-card button{margin-top:9px}
.main{min-width:0}.topbar{height:72px;border-bottom:1px solid var(--line);background:rgba(251,252,249,.88);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:8}.search{max-width:420px;flex:1;position:relative}.search input{width:100%;border:1px solid var(--line);background:white;border-radius:999px;padding:10px 15px;font-size:9px;outline:none}.search input:focus{border-color:#a8c7b6;box-shadow:0 0 0 3px rgba(63,128,100,.08)}.top-actions{display:flex;gap:9px;align-items:center}.avatar{width:34px;height:34px;border-radius:12px;background:var(--forest);color:white;display:grid;place-items:center;font-weight:800}.teacher-chip{display:flex;gap:8px;align-items:center}.teacher-chip b{font-size:9px;display:block}.teacher-chip small{font-size:7px;color:var(--muted)}
.content{max-width:var(--max);margin:0 auto;padding:30px 30px 70px}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.page-head h1{font-size:25px;line-height:1.2;margin:4px 0 5px;letter-spacing:-.03em}.page-head p{font-size:9px;color:var(--muted);margin:0;max-width:670px;line-height:1.7}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:8px;font-weight:800;color:var(--leaf)}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.primary,.secondary,.ghost,.danger-btn{border-radius:11px;padding:9px 13px;font-size:9px;font-weight:700;border:1px solid transparent}.primary{background:var(--forest);color:white;box-shadow:0 8px 18px rgba(23,61,50,.14)}.primary:hover{background:#102f27}.secondary{background:white;border-color:var(--line);color:var(--forest)}.secondary:hover{background:var(--sage-2)}.ghost{background:transparent;color:var(--forest)}.ghost:hover{background:var(--sage-2)}.danger-btn{background:var(--coral);color:var(--coral-ink)}.small-btn{padding:6px 9px;font-size:8px}.icon-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:white}.icon-btn:hover{background:var(--sage)}
.hero-v2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;margin-bottom:24px}.hero-main{background:linear-gradient(135deg,#f2f8f3 0%,#f9fbf6 56%,#edf5fb 100%);border:1px solid var(--line);border-radius:27px;padding:30px;min-height:250px;display:flex;flex-direction:column;justify-content:center}.hero-main h1{font-size:34px;line-height:1.18;letter-spacing:-.04em;margin:8px 0 10px;max-width:720px}.hero-main p{font-size:10px;line-height:1.8;color:var(--muted);max-width:650px;margin:0 0 20px}.hero-main .primary{align-self:flex-start;padding:11px 17px}.hero-focus{display:grid;gap:12px}.focus-card{border:1px solid var(--line);border-radius:21px;padding:18px;background:white;min-height:118px}.focus-card.peach{background:var(--peach)}.focus-card.blue{background:var(--blue)}.focus-card .label{font-size:8px;color:var(--muted);font-weight:700}.focus-card strong{display:block;font-size:20px;margin-top:7px}.focus-card span{display:block;font-size:8px;color:var(--muted);margin-top:4px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:24px 0 12px}.section-title h2{font-size:15px;margin:0}.section-title p{font-size:8px;color:var(--muted);margin:3px 0 0}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-card{border:1px solid var(--line);border-radius:19px;background:white;padding:18px;text-align:left;min-height:155px;position:relative;overflow:hidden}.quick-card:after{content:"";position:absolute;width:72px;height:72px;border-radius:50%;right:-25px;top:-25px;background:var(--tone,var(--sage));opacity:.9}.quick-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#cddbd2}.quick-card b{font-size:12px;display:block;margin-top:22px}.quick-card span{font-size:8px;line-height:1.65;color:var(--muted);display:block;margin-top:6px}.quick-icon{width:35px;height:35px;border-radius:12px;background:var(--tone,var(--sage));display:grid;place-items:center;font-weight:800;color:var(--forest)}
.panel{border:1px solid var(--line);border-radius:21px;background:white;overflow:hidden}.panel-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h3{font-size:11px;margin:0}.empty{padding:34px;text-align:center;color:var(--muted)}.empty b{display:block;color:var(--ink);font-size:12px;margin-bottom:6px}.empty p{font-size:9px;margin:0 auto 13px;max-width:430px;line-height:1.7}
.library-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filter-chip{border:1px solid var(--line);background:white;padding:7px 10px;border-radius:999px;font-size:8px;color:var(--muted)}.filter-chip.active{background:var(--forest);border-color:var(--forest);color:white}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.exercise-card{background:white;border:1px solid var(--line);border-radius:19px;padding:16px;display:flex;flex-direction:column;min-height:220px}.exercise-card:hover{box-shadow:var(--shadow-soft);border-color:#cedbd3}.exercise-card .skill-band{height:5px;border-radius:999px;background:var(--accent,var(--sage));margin:-3px 0 14px}.meta-row{display:flex;gap:5px;flex-wrap:wrap}.pill{border-radius:999px;background:#f1f4f2;color:#66736c;font-size:7px;padding:4px 7px;font-weight:700}.pill.green{background:var(--sage);color:var(--forest)}.pill.blue{background:var(--blue);color:var(--blue-ink)}.pill.peach{background:var(--peach);color:var(--peach-ink)}.pill.butter{background:var(--butter);color:var(--butter-ink)}.exercise-card h3{font-size:12px;line-height:1.45;margin:11px 0 6px}.excerpt{font-size:8px;color:var(--muted);line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.exercise-footer{margin-top:auto;padding-top:14px;border-top:1px solid #edf1ee;display:flex;align-items:center;justify-content:space-between;gap:8px}.exercise-footer small{font-size:7px;color:var(--muted)}.card-actions{display:flex;gap:5px}
.wizard-shell{max-width:980px;margin:auto}.progress{display:flex;gap:7px;margin-bottom:20px}.progress-step{height:5px;flex:1;border-radius:999px;background:#e7ece9}.progress-step.done{background:var(--forest)}.wizard-card{background:white;border:1px solid var(--line);border-radius:25px;padding:25px;box-shadow:0 14px 38px rgba(23,61,50,.04)}.wizard-head{text-align:center;max-width:620px;margin:0 auto 22px}.wizard-head .step-label{font-size:8px;font-weight:800;color:var(--leaf);text-transform:uppercase;letter-spacing:.12em}.wizard-head h1{font-size:24px;margin:7px 0 6px;letter-spacing:-.03em}.wizard-head p{font-size:9px;color:var(--muted);line-height:1.65;margin:0}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.choice-card{border:1px solid var(--line);background:white;border-radius:18px;padding:18px;text-align:left;min-height:145px;transition:.16s}.choice-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#c5d9cd}.choice-card.selected{box-shadow:0 0 0 2px var(--forest) inset}.choice-icon{width:39px;height:39px;border-radius:13px;background:var(--tone,var(--sage));display:grid;place-items:center;font-weight:800;color:var(--forest);font-size:12px}.choice-card h3{font-size:12px;margin:13px 0 5px}.choice-card p{font-size:8px;color:var(--muted);line-height:1.65;margin:0}.wizard-foot{display:flex;justify-content:space-between;gap:8px;margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}
.builder{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:16px}.builder-main,.builder-side{background:white;border:1px solid var(--line);border-radius:20px;padding:18px}.builder-side{height:max-content;position:sticky;top:90px}.section-block{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.section-block:last-child{border:0;margin-bottom:0;padding-bottom:0}.section-block h2{font-size:13px;margin:0 0 3px}.section-block>p{font-size:8px;color:var(--muted);line-height:1.6;margin:0 0 12px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.field.full{grid-column:1/-1}.field label{display:block;font-size:8px;font-weight:800;color:#536159;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:white;border-radius:11px;padding:10px 11px;font-size:9px;outline:none}.field textarea{min-height:125px;resize:vertical;line-height:1.6}.field input:focus,.field textarea:focus,.field select:focus{border-color:#9fc0ae;box-shadow:0 0 0 3px rgba(63,128,100,.07)}.hint{font-size:7px;color:#8a948e;line-height:1.5;display:block;margin-top:5px}.upload-zone{border:1.5px dashed #b9cec2;border-radius:15px;padding:16px;background:var(--sage-2);text-align:center}.upload-zone b{font-size:9px}.upload-zone span{display:block;font-size:7px;color:var(--muted);margin-top:4px}.media-preview{margin-top:10px;border-radius:13px;overflow:hidden;border:1px solid var(--line);background:#f8faf8}.media-preview img{width:100%;max-height:300px;object-fit:contain;display:block}.media-preview audio{width:100%;padding:10px}.question-list{display:grid;gap:9px}.question-block{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fcfdfb}.question-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.question-head b{font-size:9px}.question-grid{display:grid;gap:8px}.question-grid input,.question-grid textarea,.question-grid select{border:1px solid var(--line);border-radius:10px;padding:9px;font-size:8px;width:100%}.question-grid textarea{min-height:70px;resize:vertical}.option-row{display:grid;grid-template-columns:23px 1fr auto;gap:6px;align-items:center;margin-top:5px}.option-row span{font-size:8px;color:var(--muted)}.add-question{width:100%;margin-top:9px;border:1px dashed #b9cec2;background:#f7faf8;color:var(--forest);border-radius:12px;padding:10px;font-size:9px;font-weight:800}.side-section{padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.side-section:last-child{border:0;margin:0;padding:0}.side-section h4{font-size:9px;margin:0 0 9px}.mini-note{font-size:7px;color:var(--muted);line-height:1.6}.builder-actions{display:grid;gap:7px}.builder-actions button{width:100%}
.assignment-list{display:grid;gap:9px}.assignment-row{background:white;border:1px solid var(--line);border-radius:16px;padding:13px;display:grid;grid-template-columns:minmax(0,1fr) 150px 120px auto;gap:10px;align-items:center}.assignment-row b{font-size:10px}.assignment-row small{display:block;font-size:7px;color:var(--muted);margin-top:4px}.status-badge{justify-self:start;border-radius:999px;padding:5px 8px;font-size:7px;font-weight:800;background:var(--sage);color:var(--forest)}.status-badge.due{background:var(--butter);color:var(--butter-ink)}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--paper)}.login-brand{background:linear-gradient(150deg,#14372d 0%,#275b49 58%,#5d9479 100%);color:white;padding:58px;display:flex;flex-direction:column;justify-content:space-between}.login-brand h1{font-size:43px;letter-spacing:-.05em;margin:18px 0 10px}.login-brand p{font-size:11px;line-height:1.8;max-width:520px;color:rgba(255,255,255,.78)}.login-brand .signature{font-family:"Dancing Script",cursive;font-size:30px}.login-panel{display:grid;place-items:center;padding:30px}.login-box{width:min(420px,100%);background:white;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.login-box h2{font-size:21px;margin:0 0 5px}.login-box>p{font-size:9px;color:var(--muted);line-height:1.6;margin:0 0 20px}.login-box .field{margin-bottom:10px}.login-box .primary{width:100%;margin-top:4px;padding:11px}.login-divider{display:flex;align-items:center;gap:10px;margin:15px 0;color:#9ba49f;font-size:7px}.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}.login-box .secondary{width:100%}.login-msg{font-size:8px;line-height:1.55;margin-top:11px;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(11,28,22,.38);backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(760px,100%);max-height:91vh;overflow:auto;background:white;border-radius:23px;box-shadow:0 30px 90px rgba(9,40,28,.25)}.modal.wide{width:min(1040px,100%)}.modal-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:rgba(255,255,255,.96);z-index:3}.modal-head h3{font-size:12px;margin:0}.modal-body{padding:18px}.modal-foot{margin:18px -18px -18px;padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:7px;position:sticky;bottom:0;background:white}.close-x{border:0;background:#f0f4f1;border-radius:10px;width:32px;height:32px}.student-preview{background:#f3f6f3;border-radius:17px;padding:16px}.student-shell{max-width:760px;margin:auto;background:white;border:1px solid var(--line);border-radius:19px;overflow:hidden}.student-top{padding:14px 18px;background:var(--forest);color:white}.student-top b{font-size:11px;display:block}.student-top span{font-size:8px;opacity:.75}.student-body{padding:24px}.student-body h2{font-size:20px;margin:0 0 5px}.student-meta{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 16px}.student-prompt{font-size:10px;line-height:1.8;white-space:pre-wrap}.student-media{margin:14px 0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fafbfa}.student-media img{display:block;width:100%;max-height:430px;object-fit:contain}.student-media audio{width:100%;padding:12px}.answer-area textarea,.answer-area input{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px;font-size:9px}.answer-area textarea{min-height:190px}.student-question{padding:12px;border:1px solid var(--line);border-radius:12px;margin:8px 0}.student-question b{font-size:9px}.student-question label{display:block;margin-top:7px;font-size:9px}
#toastRoot{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:7px}.toast{background:var(--forest);color:white;border-radius:12px;padding:10px 13px;box-shadow:var(--shadow);font-size:9px;max-width:340px}.toast.warn{background:#715f26}.toast.error{background:#884944}.footer{max-width:var(--max);margin:0 auto 28px;padding:0 30px;display:flex;align-items:end;justify-content:space-between;color:#89948e;font-size:8px}.signature{font-family:"Dancing Script",cursive;font-size:22px;color:var(--forest)}.mobile-menu{display:none}
@media(max-width:1120px){.library-grid{grid-template-columns:repeat(2,1fr)}.builder{grid-template-columns:1fr}.builder-side{position:static}.hero-v2{grid-template-columns:1fr}.hero-focus{grid-template-columns:1fr 1fr}.quick-actions{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:820px){.app-shell{display:block}.sidebar{display:none}.mobile-menu{display:flex;position:fixed;left:10px;right:10px;bottom:10px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:16px;padding:5px;z-index:60;box-shadow:var(--shadow)}.mobile-menu button{flex:1;border:0;background:transparent;border-radius:10px;padding:9px 3px;font-size:7px;color:var(--muted)}.mobile-menu button.active{background:var(--sage);color:var(--forest);font-weight:800}.topbar{padding:0 15px}.content{padding:22px 15px 90px}.footer{padding:0 15px;margin-bottom:84px}.page-head{align-items:flex-start;flex-direction:column}.choice-grid,.quick-actions{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.assignment-row{grid-template-columns:1fr auto}.assignment-row>*:nth-child(2),.assignment-row>*:nth-child(3){display:none}.login-shell{grid-template-columns:1fr}.login-brand{display:none}}
@media(max-width:520px){.library-grid,.choice-grid,.quick-actions,.hero-focus{grid-template-columns:1fr}.hero-main{padding:23px}.hero-main h1{font-size:27px}.search{display:none}.teacher-chip b,.teacher-chip small{display:none}.wizard-card{padding:18px}.modal-backdrop{padding:7px}.modal{border-radius:18px}}

/* V3 — same visual system, clearer data structure and overflow safety */
.exercise-card,.exercise-card h3,.exercise-card .excerpt,.exercise-footer,.exercise-footer small,.card-actions,.quick-card,.focus-card,.source-stack,.table-title,.table-sub{min-width:0}
.exercise-card h3,.exercise-card .excerpt,.exercise-footer small,.focus-card strong,.focus-card span,.quick-card b,.quick-card span,.student-prompt,.table-title,.table-sub,.source-stack b,.source-stack span{overflow-wrap:anywhere;word-break:break-word}
.card-actions{flex-wrap:wrap;justify-content:flex-end}.exercise-footer{align-items:flex-end}.exercise-footer small{max-width:48%}

.library-filter-panel{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(130px,.8fr));gap:10px;border:1px solid var(--line);background:white;border-radius:18px;padding:14px;margin-bottom:14px}.library-filter-panel .field{min-width:0}
.library-table-wrap{border:1px solid var(--line);border-radius:20px;background:white;overflow:auto;box-shadow:0 10px 28px rgba(21,61,50,.035)}
.library-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed}.library-table th{padding:11px 12px;text-align:left;font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:#7b8781;background:#f8faf8;border-bottom:1px solid var(--line)}.library-table td{padding:13px 12px;vertical-align:top;border-bottom:1px solid #edf1ee;font-size:8px}.library-table tbody tr:last-child td{border-bottom:0}.library-table tbody tr:hover{background:#fbfdfb}.library-table th:nth-child(1){width:25%}.library-table th:nth-child(2){width:13%}.library-table th:nth-child(3){width:18%}.library-table th:nth-child(4){width:12%}.library-table th:nth-child(5){width:13%}.library-table th:nth-child(6){width:9%}.library-table th:nth-child(7){width:10%}.table-title{display:block;font-size:9px;line-height:1.55}.table-sub{display:block;color:var(--muted);font-size:7px;line-height:1.55;margin-top:5px}.clamp-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.source-stack{display:grid;gap:4px;align-content:start}.source-stack .pill{justify-self:start}.source-stack b{font-size:8px}.source-stack span:not(.pill){font-size:7px;color:var(--muted)}.table-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}

.collection-card{cursor:default}.collection-card .clickable{cursor:pointer}.collection-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:12px;position:relative;z-index:2}
.taxonomy-list{display:grid}.taxonomy-row{padding:15px 17px;border-bottom:1px solid var(--line)}.taxonomy-row:last-child{border-bottom:0}.taxonomy-main{display:flex;gap:11px;align-items:flex-start}.taxonomy-main>div:last-child{min-width:0;flex:1}.taxonomy-main b{display:block;font-size:10px}.taxonomy-main span{display:block;font-size:8px;color:var(--muted);line-height:1.55;margin-top:3px;overflow-wrap:anywhere}.taxonomy-main small{display:block;font-size:7px;color:#87938d;margin-top:5px}.taxonomy-actions{display:flex;gap:5px;justify-content:flex-end;margin-top:-35px;flex-wrap:wrap}.task-type-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;padding-left:50px}.editable-chip{display:inline-flex!important;align-items:center;gap:4px;background:#f3f6f4;border:1px solid var(--line);border-radius:999px;padding:5px 7px;font-size:7px!important;color:#607068!important}.editable-chip button{border:0;background:transparent;color:var(--forest);font-size:7px;padding:0 2px}.empty-inline{grid-column:1/-1;border:1px dashed #c7d7ce;background:var(--sage-2);border-radius:15px;padding:18px;text-align:center;color:var(--muted);font-size:9px}

@media(max-width:1120px){.library-filter-panel{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.library-filter-panel{grid-template-columns:1fr 1fr}.taxonomy-actions{margin-top:10px;justify-content:flex-start;padding-left:50px}.task-type-chips{padding-left:50px}}
@media(max-width:520px){.library-filter-panel{grid-template-columns:1fr}.exercise-footer{align-items:flex-start;flex-direction:column}.exercise-footer small{max-width:100%}.card-actions{justify-content:flex-start}.taxonomy-actions,.task-type-chips{padding-left:0}.taxonomy-main{align-items:center}}


/* Student portal */
.portal-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:8px;color:var(--forest);text-decoration:none;font-weight:700}
.student-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:18px;margin-bottom:18px}.student-hero-art{border:1px solid var(--line);border-radius:28px;overflow:hidden;background:white;box-shadow:var(--shadow)}.student-hero-art img{display:block;width:100%;height:100%;object-fit:cover;min-height:280px}.student-home-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.practice-card{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;align-items:stretch}.practice-thumb{border-radius:16px;overflow:hidden;background:#f5f7f5;border:1px solid var(--line);min-height:114px}.practice-thumb img{width:100%;height:100%;object-fit:cover;display:block}.practice-body{min-width:0}.practice-body h3{margin:0 0 5px;font-size:11px;line-height:1.4;overflow-wrap:anywhere}.practice-body p{margin:0;color:var(--muted);font-size:8px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.practice-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.submission-state{margin-top:8px;font-size:7px;color:var(--muted)}.student-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.student-history{display:grid;gap:10px}.history-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:white}.history-item b{font-size:9px;display:block;overflow-wrap:anywhere}.history-item small{display:block;margin-top:4px;font-size:7px;color:var(--muted)}.sync-pill{border-radius:999px;padding:5px 8px;font-size:7px;font-weight:800;background:var(--sage);color:var(--forest)}.sync-pill.pending{background:var(--butter);color:var(--butter-ink)}.mini-text{font-size:8px;color:var(--muted);line-height:1.7}.practice-form{display:grid;gap:14px}.practice-form .answer-area textarea{min-height:220px}.response-note{font-size:7px;color:var(--muted);line-height:1.6}.file-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.file-inline input[type=file]{max-width:100%}.empty-inline-list{border:1px dashed #c7d7ce;background:var(--sage-2);border-radius:16px;padding:18px;text-align:center;color:var(--muted);font-size:9px}
@media(max-width:1120px){.student-grid,.student-home-cards,.student-hero{grid-template-columns:1fr}}
@media(max-width:820px){.practice-card{grid-template-columns:1fr}.practice-thumb{min-height:180px}.history-item{grid-template-columns:1fr}}

/* V5 submission-method controls — preserves existing visual system */
.submission-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.submission-option{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px;cursor:pointer}.submission-option.selected{background:var(--sage-2);border-color:#bfd2c7}.submission-option input{margin-top:2px}.submission-option span{min-width:0}.submission-option b{display:block;font-size:9px}.submission-option small{display:block;font-size:7px;color:var(--muted);line-height:1.55;margin-top:3px}.submission-preview-list{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
@media(max-width:620px){.submission-option-grid{grid-template-columns:1fr}}
