.ink-shell{--ink-bg:#fff;--ink-fg:#182b40;--ink-border:#cbd5e1;--ink-soft:#edf2f7;position:relative;background:var(--ink-bg);color:var(--ink-fg);border:1px solid var(--ink-border);border-radius:18px;margin:20px 0;min-width:0;overflow:clip;box-shadow:0 8px 28px #10233d0b}
.ink-toolbar{background:var(--ink-bg);padding:16px 18px;border-bottom:1px solid var(--ink-border);position:sticky;top:0;z-index:4;color:var(--ink-fg)}
.ink-heading,.ink-tools,.ink-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ink-heading{justify-content:space-between;margin-bottom:12px}.ink-heading strong{font-size:17px}.ink-heading [role=status]{font-size:12px;color:#4b6673}.ink-heading .ink-error{color:#ad2626}
.ink-shell button{min-height:38px;padding:7px 11px;border:1px solid var(--ink-border);background:var(--ink-bg);color:var(--ink-fg);border-radius:9px;font-size:13px;cursor:pointer;box-shadow:none;white-space:nowrap}.ink-shell button:hover{background:var(--ink-soft)}.ink-shell button.active{background:#17334f;color:#fff;border-color:#17334f}.ink-shell button:disabled{opacity:.45;cursor:default}.ink-shell button:focus-visible,.ink-shell select:focus-visible{outline:3px solid #3187ee;outline-offset:2px}.ink-shell .ink-tools button>span{font-size:18px}
.ink-colors{display:flex;gap:8px;margin:0 6px}.ink-shell [data-ink-color]{width:30px;min-height:30px;height:30px;border-radius:50%;background:var(--ink-color)!important;border:4px solid var(--ink-bg);outline:1px solid var(--ink-border);padding:0}.ink-shell [data-ink-color][aria-pressed=true]{outline:2px solid #947331}.ink-tools label{display:flex;align-items:center;gap:6px;font-size:12px}.ink-shell select{padding:7px;color:var(--ink-fg);background:var(--ink-bg);border:1px solid var(--ink-border);border-radius:8px;width:auto;min-width:0;font-size:12px}
.ink-actions{margin-top:10px}.ink-actions button{font-size:12px;min-height:32px;padding:5px 9px}.ink-actions [data-ink-zoom]{font-size:12px}.ink-hint{font-size:12px!important;line-height:1.6!important;color:#536777!important;margin:10px 0 0!important}
.ink-viewport{position:relative;overflow:auto;background:#e8edf3;max-height:75vh;overscroll-behavior:contain;touch-action:pan-x pan-y}.ink-viewport.ink-drawing{touch-action:none}.ink-spacer{position:relative;margin:auto}.ink-paper{position:absolute;left:0;top:0;transform-origin:top left;background:var(--ink-bg);color:var(--ink-fg);min-height:420px}.ink-paper>.lesson-exam,.ink-paper>.daily-question{margin:0!important;box-sizing:border-box;width:100%;border:0!important;border-radius:0!important}.ink-paper>.lesson-exam{padding:24px}.ink-overlay{position:absolute;left:0;top:0;z-index:2;touch-action:none;user-select:none;cursor:crosshair}.ink-paper .xp-columns{grid-template-columns:1fr 1fr!important}.ink-paper .xp-panel{min-width:0}.ink-focus{position:fixed!important;inset:12px;z-index:1500;margin:0;display:flex;flex-direction:column;box-shadow:0 0 0 100vmax #0c1829cc}.ink-focus>.ink-toolbar{flex:none}.ink-focus>.ink-viewport{flex:1;max-height:none}.ink-shell .daily-question{position:static!important;max-height:none!important;overflow:visible!important}
[data-theme=dark] .ink-shell,body.dark .ink-shell{--ink-bg:#1d2c40;--ink-fg:#f1f5f9;--ink-border:#50627a;--ink-soft:#2b405a}[data-theme=dark] .ink-hint,[data-theme=dark] .ink-heading [role=status]{color:#bac9db!important}[data-theme=dark] .ink-viewport{background:#101d2d}[data-theme=dark] .ink-heading .ink-error{color:#ffb4aa!important}
@media(max-width:650px){.ink-toolbar{padding:12px}.ink-shell button{min-height:40px}.ink-tools{gap:6px}.ink-focus{inset:0;border-radius:0}.ink-hint{font-size:11px!important}.ink-actions{gap:5px}}
/* The paper has one layout at every viewport size; only its visual scale changes. */
.ink-paper .xp-columns{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important}.ink-paper .xp-panel{padding:28px!important;margin:0!important;font-size:18px!important;line-height:1.85!important;max-height:none!important;overflow:visible!important}.ink-paper .xp-panel h2{font-size:20px!important;line-height:1.5!important;margin:0 0 24px!important}.ink-paper .xp-panel h3{font-size:18px!important;line-height:1.6!important;margin:0 0 20px!important}.ink-paper .xp-passage,.ink-paper .review-passage{font-size:18px!important;line-height:1.85!important;max-height:none!important;overflow:visible!important}.ink-paper .xp-choices button{font-size:15px!important;line-height:1.6!important;padding:12px!important;min-height:46px!important;white-space:normal!important}.ink-paper .xp-choices{display:grid!important;gap:12px!important}
.ink-paper .ew-layout,.ink-paper .ad-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:24px!important;font-size:18px!important;line-height:1.8!important}.ink-paper .ew-prompt,.ink-paper .ew-response,.ink-paper .ad-prompt,.ink-paper .ad-right{width:auto!important;min-width:0!important;padding:20px!important;max-height:none!important;overflow:visible!important}.ink-paper .ew-material,.ink-paper .ad-message,.ink-paper .ad-instructions{font-size:18px!important;line-height:1.8!important}.ink-paper .ad-peers{display:block!important}.ink-paper .ad-student{padding:18px!important}.ink-paper textarea{font-size:18px!important;line-height:1.8!important;resize:none!important;min-height:360px!important}.ink-paper .sb-builder{font-size:18px!important}.ink-paper .sb-avatar{width:64px!important;height:64px!important}.ink-paper .sb-dialogue,.ink-paper .sb-response{display:flex!important;flex-direction:row!important;gap:20px!important}.ink-paper .sb-bank,.ink-paper .sb-slots{font-size:18px!important;line-height:1.8!important}
.ink-paper .daily-question{font-size:18px!important;line-height:1.8!important;padding:28px!important}.ink-paper .daily-question h2{font-size:24px!important;line-height:1.5!important}.ink-paper .daily-question h3{font-size:20px!important;line-height:1.6!important}.ink-paper .daily-choices{font-size:18px!important;line-height:1.8!important}
.ink-paper .repeat-scene{width:900px!important;max-width:100%!important;margin:0 auto 20px!important}.ink-paper .repeat-scene figcaption{font-size:12px!important;line-height:16.8px!important;padding:10px 14px!important}.ink-paper .repeat-scene-help{font-size:12px!important;line-height:18px!important;padding:9px 14px!important;margin:0!important}
.ink-paper .ad-professor .ad-avatar{width:90px!important;height:90px!important}.ink-paper .ad-student{display:grid!important;grid-template-columns:80px minmax(0,1fr)!important;gap:18px!important}.ink-paper .ad-student .ad-avatar{width:62px!important;height:62px!important}.ink-paper .ad-person{font-size:14px!important;line-height:19.6px!important}.ink-paper .ad-peers{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;flex:none!important}.ink-paper .ad-right{display:block!important}.ink-paper .ad-toolbar{padding:10px 12px!important}.ink-paper .ad-toolbar button{padding:5px 11px!important;min-height:35px!important}.ink-paper .ad-editor textarea,.ink-paper .ew-response textarea{height:480px!important;max-height:none!important}

/* v2 additions. Scoped to .ink-v2 so they outrank the base sheet the old loader appends later. */
.ink-shell.ink-v2{max-width:none;transition:none;border-radius:12px}
/* Keep the scrollbar's place reserved so its arrival never changes the drawing width (no layout feedback). */
.ink-shell.ink-v2 .ink-viewport{scrollbar-gutter:stable;overflow-y:auto}
.ink-shell.ink-v2 .ink-viewport.ink-typing .ink-overlay{cursor:text}
.ink-shell.ink-v2 .ink-text{user-select:none;white-space:pre}
.ink-shell.ink-v2 .ink-text-editor{position:absolute;z-index:3;margin:0;padding:0 2px;border:1.5px dashed #2469d8;border-radius:4px;background:var(--ink-bg);resize:none;overflow:hidden;white-space:pre;min-height:0;max-width:none;box-sizing:content-box;outline:none;box-shadow:none}
/* Compact bar: one row on desktop, two on phones. Every item has a fixed size so status changes never re-wrap the bar. */
.ink-shell.ink-v2 .ink-toolbar{padding:6px 10px}
.ink-shell.ink-v2 .ink-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ink-shell.ink-v2 .ink-title{font-size:14px;margin-right:2px;white-space:nowrap}
.ink-shell.ink-v2 .ink-bar button:not([data-ink-color]),.ink-shell.ink-v2 .ink-more>summary{min-height:32px;padding:3px 9px;font-size:13px;white-space:nowrap}
.ink-shell.ink-v2 .ink-tools button>span{font-size:13px}.ink-shell.ink-v2 .ink-tools button>span[aria-hidden]{font-size:15px}
.ink-shell.ink-v2 .ink-colors{display:flex;gap:6px;margin:0 2px}.ink-shell.ink-v2 [data-ink-color]{width:26px;min-height:26px;height:26px;border-width:3px}
.ink-shell.ink-v2 [data-ink-size-label]{display:flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.ink-shell.ink-v2 [data-ink-size]{padding:4px 6px;font-size:12px}
.ink-shell.ink-v2 .ink-group,.ink-shell.ink-v2 .ink-slot{display:inline-flex;gap:4px;align-items:center}
.ink-shell.ink-v2 .ink-status{flex:none;width:9.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#4b6673;margin-left:auto;text-align:right}
.ink-shell.ink-v2 .ink-status.ink-error{color:#ad2626}
.ink-shell.ink-v2 .ink-more{position:relative}
.ink-shell.ink-v2 .ink-more>summary{list-style:none;cursor:pointer;border:1px solid var(--ink-border);border-radius:9px;display:inline-flex;align-items:center;background:var(--ink-bg)}
.ink-shell.ink-v2 .ink-more>summary::-webkit-details-marker{display:none}
.ink-shell.ink-v2 .ink-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:8;display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:min(360px,86vw);padding:10px;border:1px solid var(--ink-border);border-radius:10px;background:var(--ink-bg);box-shadow:0 10px 28px #10233d26}
.ink-shell.ink-v2 .ink-more-menu .ink-hint{flex-basis:100%;margin:4px 0 0!important}
html[data-appearance=dark] .ink-shell.ink-v2{--ink-bg:#1d2c40;--ink-fg:#f1f5f9;--ink-border:#50627a;--ink-soft:#2b405a}
html[data-appearance=dark] .ink-shell.ink-v2 .ink-viewport{background:#101d2d}
@media(max-width:650px){
 .ink-shell.ink-v2 .ink-toolbar{padding:6px}
 .ink-shell.ink-v2 .ink-title,.ink-shell.ink-v2 .ink-label{display:none}
 .ink-shell.ink-v2 .ink-bar{gap:4px}
 .ink-shell.ink-v2 .ink-bar button:not([data-ink-color]),.ink-shell.ink-v2 .ink-more>summary{min-height:34px;padding:3px 7px;font-size:12px}
 .ink-shell.ink-v2 .ink-status{width:6.5em}
}
