:root{color:#18201c;background:#f3f5f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button{border:0;border-radius:7px;background:#17231c;color:#fff;cursor:pointer;font-size:.88rem;font-weight:760;min-height:40px;padding:0 16px}button:hover:not(:disabled){background:#24362c}button:disabled{cursor:not-allowed;opacity:.46}.secondary-button{background:#e7ece5;color:#1d281f}.secondary-button:hover:not(:disabled){background:#dce5da}.compact-button{min-height:34px;padding:0 12px}.app-shell{margin:0 auto;max-width:1440px;padding:24px}.app-header{align-items:flex-end;display:flex;gap:24px;justify-content:space-between;margin-bottom:16px}.app-kicker,.section-heading p,.session-titlebar p{color:#66736c;font-size:.72rem;font-weight:820;letter-spacing:.08em;margin:0 0 5px;text-transform:uppercase}h1,h2{letter-spacing:0;margin:0}h1{color:#111815;font-size:2.05rem;line-height:1.12}h2{color:#17231c;font-size:1.14rem;line-height:1.2}.header-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.status-chip,.session-pill{border:1px solid #cdd8cf;border-radius:999px;color:#3e4b43;font-size:.78rem;font-weight:780;line-height:1;padding:8px 10px}.status-chip[data-state=ready]{background:#e8f2e7;border-color:#a9c8ad;color:#245531}.status-chip[data-state=saving],.status-chip[data-state=loading],.status-chip[data-state=authenticating],.status-chip[data-state=picking]{background:#edf3f8;border-color:#b6c8d5;color:#254a62}.status-chip[data-state=error]{background:#fff0ec;border-color:#e4a392;color:#9a2f1e}.session-pill{background:#fff;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-panel,.session-main,.materials-panel,.sessions-panel,.empty-panel{background:#fffefa;border:1px solid #dbe3dc;border-radius:8px;box-shadow:0 12px 30px #1c261f0f}.connection-panel{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(170px,.42fr) minmax(420px,1fr) auto;margin-bottom:16px;padding:14px}.connection-panel[data-loaded=true]{align-items:center;grid-template-columns:minmax(220px,1fr) auto;padding:10px 12px}.connection-panel[data-loaded=true] .connection-actions{grid-column:2;grid-row:1}.connection-panel[data-loaded=true] .message{color:#52605a;grid-column:1 / -1;margin-top:-4px}.connection-copy{display:grid;gap:4px;min-width:0}.connection-copy strong{font-size:.8rem}.connection-copy span,.message{color:#66736c;font-size:.82rem}.credential-grid{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) minmax(180px,.9fr) auto}.credential-grid label,.field>span,.transfers-grid label{color:#374239;display:grid;font-size:.78rem;font-weight:820;gap:7px}.connection-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.link-button{background:none;border:0;color:#2f6b4f;cursor:pointer;font-size:.8rem;font-weight:760;min-height:0;padding:0;text-decoration:underline}.link-button:hover:not(:disabled){background:none;color:#1f5039}.dev-harness-button{background:transparent;border:1px dashed #cdd8cf;color:#65736b;font-size:.74rem;min-height:30px;padding:0 9px}.dev-harness-button:hover:not(:disabled){background:#f4f7f3;color:#334139}input,textarea{background:#fff;border:1px solid #cbd5ce;border-radius:7px;color:#18201c;outline:none;padding:10px 11px;width:100%}input:focus,textarea:focus{border-color:#53765b;box-shadow:0 0 0 3px #53765b29}input:read-only,textarea:read-only{background:#f7f8f4;color:#56625b}input:read-only:focus,textarea:read-only:focus{border-color:#cbd5ce;box-shadow:none}textarea{line-height:1.55;resize:vertical}.message{grid-column:1 / -1;margin:0}.message.error{color:#9a2f1e}.system-notice{align-items:start;border:1px solid #dbe3dc;border-radius:8px;display:grid;gap:4px;grid-column:1 / -1;padding:10px 12px}.system-notice strong{color:#1d281f;font-size:.8rem}.system-notice span{color:#5d6a63;font-size:.82rem;line-height:1.45}.system-notice[data-tone=error]{background:#fff7f4;border-color:#e7b2a3}.system-notice[data-tone=error] strong,.system-notice[data-tone=error] span{color:#8f321f}.system-notice[data-tone=cache]{background:#f7f3e8;border-color:#e1d4ad}.system-notice[data-tone=cache] strong{color:#6f5a1d}.system-notice[data-tone=info]{background:#eef5f2;border-color:#c8dcd2}.dashboard-grid{display:grid;gap:14px;grid-template-columns:minmax(190px,.45fr) minmax(520px,1.35fr) minmax(300px,.72fr)}@media(min-width:861px){.dashboard-grid[data-density=sparse]{grid-template-columns:minmax(190px,.42fr) minmax(560px,1.55fr) minmax(260px,.56fr)}.dashboard-grid[data-density=empty]{grid-template-columns:minmax(190px,.42fr) minmax(620px,1.75fr) minmax(220px,.45fr)}}.session-main,.materials-panel,.sessions-panel,.empty-panel{min-width:0;padding:18px}.sessions-panel,.materials-panel{align-self:start;max-height:calc(100vh - 150px);overflow:auto;position:sticky;top:16px}.section-heading,.session-titlebar{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:14px}.section-heading.compact{margin-bottom:10px}.button-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.title-with-state{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.canvas-state-badge{background:#edf4ec;border:1px solid #cfe0d0;border-radius:999px;color:#2f633d;font-size:.72rem;font-weight:820;line-height:1;padding:6px 8px}.canvas-state-badge[data-state=dirty]{background:#fff7df;border-color:#ead89c;color:#755f1f}.canvas-state-badge[data-state=readonly]{background:#f8ede9;border-color:#ead2ca;color:#7b4134}.canvas-state-badge[data-state=saving]{background:#e8f1f5;border-color:#cbe0e9;color:#2a5267}.session-meta{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 16px}.session-meta div{background:#f5f7f3;border:1px solid #e0e7e1;border-radius:7px;padding:10px}.session-meta dt{color:#6a756e;font-size:.72rem;font-weight:820;margin-bottom:5px}.session-meta dd{color:#1d281f;font-size:.84rem;font-weight:720;margin:0;overflow-wrap:anywhere}.session-editor{display:grid;gap:13px}.field{display:grid;gap:7px}.priority-field textarea,.summary-field input{background:#fbfdfb;border-color:#aec6b3}.review-fields,.two-column-fields,.transfers-grid{align-items:stretch;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.field-cell{display:flex;flex-direction:column;min-width:0}.field-cell>label{flex:1;grid-template-rows:auto 1fr}.field-cell>label>textarea{height:100%}.review-fields textarea{min-height:172px}.transfers-grid textarea{min-height:78px}.transfer-field{background:#f8faf7;border:1px solid #e0e7e1;border-radius:8px;padding:12px}.ai-note{background:#eef4fb;border:1px solid #c3d6e8;border-radius:7px;margin-top:7px;padding:7px 9px}.ai-note-label{align-items:center;color:#234b63;display:flex;font-size:.72rem;font-weight:820;gap:6px;margin-bottom:3px}.ai-pill{background:#d3e3f3;border-radius:999px;color:#234b63;font-size:.6rem;font-weight:820;line-height:1;padding:3px 7px}.ai-pill-sm{padding:2px 6px}.ai-note-text{color:#2c4658;font-size:.78rem;line-height:1.6;margin:0}.ai-note ul{color:#2c4658;font-size:.76rem;line-height:1.6;margin:0;padding-left:16px}.ai-hint{align-items:flex-start;background:#eef4fb;border:1px solid #c3d6e8;border-radius:6px;color:#2c4658;display:flex;font-size:.7rem;gap:6px;line-height:1.45;margin:5px 0 0;padding:5px 7px}.material-linked-good{color:#1f7a43}.material-linked-improve{color:#8a5a12}.external-advice{background:#f8faf7;border:1px solid #e0e7e1;border-radius:8px;display:grid;gap:10px;padding:12px}.external-advice-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.external-advice-title{color:#45604d;font-size:.82rem;font-weight:820}.external-advice-empty{color:#66736c;font-size:.8rem;line-height:1.6;margin:0}.advice-entry{background:#fff;border:1px solid #e0e7e1;border-radius:8px;padding:4px 10px}.advice-entry>summary{align-items:center;cursor:pointer;display:flex;gap:8px;list-style:none;padding:6px 0}.advice-entry>summary::-webkit-details-marker{display:none}.advice-entry>summary:after{color:#7b877f;content:"+";font-weight:900;margin-left:auto}.advice-entry[open]>summary:after{content:"−"}.advice-source{font-size:.8rem;font-weight:760}.advice-date{background:#e9f2f7;border:1px solid #cfe0e9;border-radius:999px;color:#2a5267;font-size:.68rem;font-weight:820;line-height:1;padding:4px 7px}.advice-body{display:grid;gap:10px;padding:4px 0 8px}.advice-summary{background:#f5f7f3;border-radius:7px;color:#2c352e;font-size:.8rem;line-height:1.6;margin:0;padding:8px 10px}.advice-summary strong{color:#45604d}.advice-exercises{display:grid;gap:7px}.advice-exercise{border:1px solid #e0e7e1;border-radius:7px;display:grid;gap:4px;padding:7px 9px}.advice-exercise[data-linking=true]{border-color:#7fa789;box-shadow:0 0 0 2px #cfe0d0}.advice-exercise-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.advice-exercise-label{font-size:.8rem;font-weight:760}.advice-exercise-detail{color:#5d6a63;display:grid;font-size:.74rem;gap:2px;line-height:1.5}.advice-link-button{background:#e7ece5;color:#1d281f;flex:0 0 auto;font-size:.72rem;min-height:28px;padding:0 9px}.advice-link-button:hover:not(:disabled){background:#dce5da}.advice-link-chip{align-items:center;background:#e9f2f7;border:1px solid #cfe0e9;border-radius:999px;color:#2a5267;display:inline-flex;flex:0 0 auto;font-size:.7rem;font-weight:760;gap:6px;line-height:1;padding:4px 8px}.advice-link-chip button{background:none;border:0;color:#2a5267;cursor:pointer;font-size:.82rem;line-height:1;min-height:0;opacity:.7;padding:0}.advice-link-chip button:hover{background:none;opacity:1}.advice-lists{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.advice-list-label{color:#6a756e;display:block;font-size:.72rem;font-weight:820;margin-bottom:4px}.advice-lists ul{color:#444;font-size:.76rem;line-height:1.6;margin:0;padding-left:18px}.advice-transfer-hints{color:#444;font-size:.76rem;line-height:1.6;margin:0}.advice-entry-actions{display:flex;justify-content:flex-end}.material-link-select{background:#e8f2e7;border:1px solid #a9c8ad;color:#245531;font-size:.74rem;min-height:30px;width:100%}.material-link-select:hover:not(:disabled){background:#dcecdb}.materials-list li[data-link-target=true]{border-color:#7fa789;border-style:dashed;grid-template-columns:104px minmax(0,1fr)}.materials-list li[data-link-target=true] .material-thumb{flex:0 0 104px;height:104px;width:104px}.material-link-actions{display:flex;flex-wrap:wrap;gap:8px}.material-link-actions .material-link-select{width:auto}.advice-link-controls{align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;gap:6px;justify-content:flex-end}.advice-unmatched{background:#fff7df;border:1px solid #ead89c;border-radius:999px;color:#755f1f;font-size:.7rem;font-weight:760;line-height:1;padding:4px 8px}.material-linked-exercise{background:#edf4ec;border:1px solid #cfe0d0;border-radius:7px;color:#2f633d;display:grid;font-size:.72rem;gap:2px;line-height:1.45;padding:6px 8px}.material-linked-badge{font-weight:820}.modal-overlay{align-items:center;background:#11181461;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50}.modal-card{background:#fffefa;border:1px solid #dbe3dc;border-radius:10px;box-shadow:0 20px 50px #141c1638;display:grid;gap:12px;max-width:560px;padding:18px;width:100%}.modal-head{align-items:center;display:flex;justify-content:space-between}.modal-head strong{font-size:.94rem}.modal-error{color:#9a2f1e;font-size:.8rem;margin:0}.modal-preview{background:#f5f7f3;border-radius:7px;font-size:.8rem;line-height:1.55;padding:8px 10px}.modal-preview p{margin:0}.modal-warn{color:#755f1f;margin-top:6px}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.action-row{align-items:center;border-top:1px solid #e0e7e1;color:#66736c;display:flex;gap:14px;justify-content:space-between;margin-top:16px;padding-top:14px}.action-row[data-state=dirty]{border-top-color:#d5c18c}.action-row[data-state=readonly]{border-top-color:#d8c5bc}.save-state{align-items:center;display:flex;flex-wrap:wrap;gap:7px 10px;justify-content:flex-end;min-width:0}.save-state strong{background:#edf4ec;border:1px solid #cfe0d0;border-radius:999px;color:#2f633d;flex:0 0 auto;font-size:.72rem;font-weight:820;line-height:1;padding:6px 8px}.action-row[data-state=dirty] .save-state strong{background:#fff7df;border-color:#ead89c;color:#755f1f}.action-row[data-state=readonly] .save-state strong{background:#f8ede9;border-color:#ead2ca;color:#7b4134}.action-row[data-state=saving] .save-state strong{background:#e8f1f5;border-color:#cbe0e9;color:#2a5267}.save-state span{font-size:.82rem;line-height:1.45;text-align:right}.session-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.session-list-button{background:#fff;border:1px solid #e0e7e1;color:#18201c;display:grid;gap:4px;justify-items:start;min-height:72px;padding:11px;text-align:left;width:100%}.session-list-button:hover:not(:disabled){background:#f6f9f5}.session-list-button[data-active=true]{background:#eaf4ea;border-color:#7fa789;box-shadow:inset 3px 0 #50785a}.session-list-button strong{font-size:.84rem}.session-list-button span{color:#66736c;font-size:.76rem;line-height:1.42}.session-list-button em{background:#f3f6f1;border:1px solid #dfe7dd;border-radius:999px;color:#5c6a61;font-size:.68rem;font-style:normal;font-weight:820;line-height:1;padding:5px 7px}.session-list-button[data-active=true] em{background:#fffefa;border-color:#c9d9c8;color:#3c6245}.materials-empty{align-items:start;background:#f5f7f3;border:1px dashed #cbd5ce;border-radius:8px;color:#66736c;display:grid;font-size:.84rem;gap:5px;line-height:1.6;margin:0;padding:14px}.materials-empty strong{color:#2f633d;font-size:.84rem}.materials-empty span{display:block}.materials-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}.materials-list li{align-items:start;background:#fff;border:1px solid #e0e7e1;border-radius:8px;display:grid;gap:10px;grid-template-columns:74px minmax(0,1fr);padding:10px}.materials-list li[data-kind=video]{border-color:#d5e2df}.materials-list li[data-kind=pdf],.materials-list li[data-kind=text],.materials-list li[data-kind=file]{background:#fbfcfb}.material-thumb{background:#edf1ed;border:1px solid #dbe3dc;border-radius:7px;color:#66736c;display:grid;flex:0 0 74px;font-size:.68rem;font-weight:820;height:74px;object-fit:cover;place-items:center;width:74px}.materials-list li[data-kind=video] .material-thumb.placeholder,.materials-list li[data-kind=video] video.material-thumb{background:#e7eef2;color:#2a5267}.materials-list li[data-kind=pdf] .material-thumb.placeholder{background:#f1ece9;color:#7b4134}.materials-list li[data-kind=text] .material-thumb.placeholder{background:#eef0ea;color:#4f5f55}.material-body{display:grid;gap:7px;min-width:0}.material-title{align-items:start;display:flex;gap:8px;justify-content:space-between;min-width:0}.material-title strong{color:#18201c;display:block;font-size:.84rem;line-height:1.35;min-width:0;overflow-wrap:anywhere}.material-kind-badge{background:#eef3ec;border:1px solid #d6e1d7;border-radius:999px;color:#6a756e;flex:0 0 auto;font-size:.72rem;font-weight:820;line-height:1;padding:5px 7px}.materials-list li[data-kind=video] .material-kind-badge{background:#e9f2f7;border-color:#cfe0e9;color:#2a5267}.materials-list li[data-kind=pdf] .material-kind-badge{background:#f6eeeb;border-color:#ead7d0;color:#7b4134}.materials-list li[data-kind=text] .material-kind-badge{background:#f1f4ee;border-color:#d8dfd3;color:#4f5f55}.material-meta{color:#6a756e;display:flex;flex-wrap:wrap;font-size:.72rem;gap:6px 10px;overflow-wrap:anywhere}.material-meta span:first-child{min-width:0}.material-annotation{border-top:1px solid #eef2ee;padding-top:2px}.material-annotation summary{align-items:center;color:#45604d;cursor:pointer;display:flex;font-size:.76rem;font-weight:820;gap:8px;justify-content:space-between;list-style:none;padding:3px 0}.material-annotation summary::-webkit-details-marker{display:none}.material-annotation summary:after{color:#7b877f;content:"+";font-weight:900}.material-annotation[open] summary:after{content:"−"}.material-annotation summary em{background:#edf4ec;border:1px solid #cfe0d0;border-radius:999px;color:#2f633d;flex:0 0 auto;font-size:.68rem;font-style:normal;line-height:1;padding:4px 6px}.material-annotation-fields{display:grid;gap:7px;padding-top:5px}.materials-list input,.materials-list textarea{font-size:.78rem;padding:8px 9px}.materials-list a{color:#2f5d3b;font-size:.8rem;font-weight:820;text-decoration:none}.material-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;grid-column:2}.material-preview{background:#f5f7f3;border:1px solid #dbe3dc;border-radius:8px;margin-bottom:12px;padding:10px}.preview-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:9px}.preview-header strong{font-size:.8rem;overflow-wrap:anywhere}.material-preview video,.material-preview img{background:#111;border-radius:7px;display:block;max-height:360px;object-fit:contain;width:100%}.empty-panel{color:#5b665e;padding:26px}.empty-panel h2{color:#18201c;margin-bottom:8px}.empty-panel p{line-height:1.7;margin:0;max-width:640px}@media(max-width:1100px){.connection-panel{align-items:stretch;grid-template-columns:1fr}.connection-panel[data-loaded=true]{grid-template-columns:1fr}.connection-panel[data-loaded=true] .connection-actions{grid-column:auto;grid-row:auto}.credential-grid{grid-template-columns:1fr 1fr auto}.connection-actions{justify-content:flex-start}.dashboard-grid{grid-template-columns:minmax(180px,.45fr) minmax(0,1fr)}.materials-panel{grid-column:1 / -1;max-height:none;position:static}}@media(max-width:760px){.app-shell{padding:16px}.app-header,.section-heading,.session-titlebar,.action-row{align-items:start;display:grid}h1{font-size:1.65rem}.credential-grid,.dashboard-grid,.session-meta,.review-fields,.two-column-fields,.transfers-grid{grid-template-columns:1fr}.sessions-panel{max-height:none;position:static}.save-state{justify-content:flex-start}.save-state span{text-align:left}}
