/* Cross-cutting MN shell only. Product pages keep ownership of their visual design. */
:root{--mn-shell-version:1;--mn-learner-accent:#4169E1;--mn-learner-accent-ink:#fff;--mn-learner-line:#315f8d;--mn-learner-panel:#071126}
html[data-mn-shell]{text-rendering:optimizeLegibility}
html[data-mn-learner-theme="mike"]{--mn-learner-accent:#4da3ff;--mn-learner-accent-ink:#04101d;--mn-learner-line:#315f8d;--mn-learner-panel:#0a1726}
html[data-mn-learner-theme="noah"]{--mn-learner-accent:#ff4b55;--mn-learner-accent-ink:#190306;--mn-learner-line:#74303b;--mn-learner-panel:#260b10}
#mnLearnerDock{position:fixed;right:14px;bottom:14px;z-index:9997;display:flex;gap:8px;align-items:center}
#mnLearnerDock a,#mnLearnerDock button{border:1px solid var(--mn-learner-line);border-radius:999px;background:var(--mn-learner-panel);color:#fff;padding:10px 13px;font:800 12px/1 system-ui;text-decoration:none;box-shadow:0 10px 30px #0008;cursor:pointer}
#mnLearnerDock button{background:var(--mn-learner-accent);color:var(--mn-learner-accent-ink);border-color:var(--mn-learner-accent)}
#mnFeedbackModal{position:fixed;inset:0;z-index:9999;background:#000b;display:grid;place-items:end center;padding:14px}
#mnFeedbackModal[hidden]{display:none}
.mn-feedback-card{width:min(680px,100%);box-sizing:border-box;background:var(--mn-learner-panel);color:#fff;border:1px solid var(--mn-learner-line);border-radius:24px;padding:22px;position:relative;box-shadow:0 24px 80px #000}
.mn-feedback-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}
.mn-feedback-eyebrow{color:var(--mn-learner-accent);font:900 11px/1.2 system-ui;letter-spacing:.15em}.mn-feedback-copy,.mn-feedback-status{color:#bcc8ba;font:400 14px/1.5 system-ui}
.mn-feedback-types{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.mn-feedback-types button{border:1px solid var(--mn-learner-line);background:#071009;color:#fff;border-radius:999px;padding:9px 11px;font:800 12px system-ui;cursor:pointer}.mn-feedback-types button.active{background:var(--mn-learner-accent);color:var(--mn-learner-accent-ink);border-color:var(--mn-learner-accent)}
#mnFeedbackText{width:100%;min-height:105px;box-sizing:border-box;border:1px solid var(--mn-learner-line);border-radius:14px;background:#050805;color:#fff;padding:12px;font:inherit}.mn-feedback-send{margin-top:10px;width:100%;border:0;border-radius:999px;background:var(--mn-learner-accent);color:var(--mn-learner-accent-ink);padding:12px;font-weight:900;cursor:pointer}.mn-feedback-send:disabled{opacity:.45;cursor:not-allowed}
@media(prefers-reduced-motion:reduce){html[data-mn-shell]{scroll-behavior:auto}}


/* Universal page navigation + home app map. */
#mnGlobalNav{position:fixed;top:max(10px,env(safe-area-inset-top));right:12px;z-index:9998;display:flex;gap:6px;padding:6px;border:1px solid color-mix(in srgb,var(--mn-learner-line) 75%,#fff 8%);border-radius:999px;background:color-mix(in srgb,var(--mn-learner-panel) 88%,transparent);box-shadow:0 12px 34px #0008;backdrop-filter:blur(14px)}
#mnGlobalNav a,#mnGlobalNav button{width:40px;height:40px;padding:0;border:1px solid var(--mn-learner-line);border-radius:50%;display:grid;place-items:center;background:#071009;color:#fff;cursor:pointer}
#mnGlobalNav a{background:var(--mn-learner-accent);color:var(--mn-learner-accent-ink);border-color:var(--mn-learner-accent)}
#mnGlobalNav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#mnAppDirectory{margin:18px auto 110px;width:min(1180px,calc(100% - 24px));box-sizing:border-box;border:1px solid var(--mn-learner-line);border-radius:24px;background:#061009;color:#fff;padding:16px;box-shadow:0 18px 50px #0007;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.mn-appmap-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.mn-appmap-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--mn-learner-accent);color:var(--mn-learner-accent-ink);font-size:24px}.mn-appmap-head b{display:block;font-size:13px;letter-spacing:.16em}.mn-appmap-head small{display:block;color:#a9b6ac;font-size:11px;margin-top:3px}
.mn-appmap-quick{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.mn-appmap-tile{min-height:84px;border:1px solid var(--mn-learner-line);border-radius:16px;background:var(--mn-learner-panel);padding:11px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;color:#fff}.mn-appmap-tile span{color:var(--mn-learner-accent);font:900 11px/1 ui-monospace,monospace}.mn-appmap-tile b{font-size:13px}
.mn-appmap-all{margin-top:12px;border-top:1px solid var(--mn-learner-line);padding-top:12px}.mn-appmap-all summary{cursor:pointer;font:900 12px/1.2 ui-monospace,monospace;letter-spacing:.08em;color:var(--mn-learner-accent)}.mn-appmap-all input{width:100%;margin:12px 0 8px;border:1px solid var(--mn-learner-line);border-radius:999px;background:#030704;color:#fff;padding:11px 14px}
.mn-appmap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.mn-appmap-grid a{border:1px solid #294130;border-radius:12px;background:#08120b;color:#fff;text-decoration:none;padding:9px;display:flex;gap:8px;align-items:center;min-height:44px}.mn-appmap-grid a span{color:var(--mn-learner-accent);font:900 10px ui-monospace,monospace}.mn-appmap-grid a b{font-size:11px;line-height:1.15}
@media(max-width:820px){#mnGlobalNav{top:auto;bottom:calc(78px + env(safe-area-inset-bottom));right:10px}#mnGlobalNav a,#mnGlobalNav button{width:38px;height:38px}.mn-appmap-quick{grid-template-columns:repeat(3,1fr)}.mn-appmap-grid{grid-template-columns:repeat(2,1fr)}#mnAppDirectory{margin-bottom:150px}}
@media(max-width:440px){.mn-appmap-quick{grid-template-columns:repeat(2,1fr)}.mn-appmap-grid{grid-template-columns:1fr}}


/* App-wide find + page jump menu. */
html[data-mn-find-open="1"],html[data-mn-find-open="1"] body{overflow:hidden}
#mnFindPanel{position:fixed;inset:0;z-index:10050;display:grid;place-items:start center;padding:max(64px,calc(env(safe-area-inset-top) + 54px)) 14px 20px}
#mnFindPanel[hidden]{display:none}
.mn-find-scrim{position:absolute;inset:0;border:0;background:#000c;backdrop-filter:blur(8px);cursor:default}
.mn-find-card{position:relative;width:min(760px,100%);max-height:min(78vh,720px);overflow:auto;box-sizing:border-box;border:1px solid var(--mn-learner-line);border-radius:24px;background:color-mix(in srgb,var(--mn-learner-panel) 96%,#020617);color:#fff;padding:16px;box-shadow:0 28px 90px #000}
.mn-find-card header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.mn-find-card header b{display:block;font:950 12px/1.2 ui-monospace,monospace;letter-spacing:.14em;color:var(--mn-learner-accent)}.mn-find-card header small{display:block;margin-top:4px;color:#aeb8c7;font:650 11px/1.3 system-ui}.mn-find-card header button{width:38px;height:38px;border:1px solid var(--mn-learner-line);border-radius:50%;background:#071009;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.mn-find-search{height:52px;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:8px;border:1px solid var(--mn-learner-line);border-radius:16px;background:#030704;padding:0 13px}.mn-find-search span{color:var(--mn-learner-accent)}.mn-find-search svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}.mn-find-search input{width:100%;border:0;outline:0;background:transparent;color:#fff;font:750 15px/1.2 system-ui}.mn-find-search input::placeholder{color:#7f8b86}
.mn-find-status{min-height:28px;display:flex;align-items:center;color:#9eaba3;font:750 11px/1.2 system-ui;padding:0 4px}.mn-find-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mn-find-results a{min-height:58px;border:1px solid color-mix(in srgb,var(--mn-learner-line) 72%,transparent);border-radius:13px;background:#071009;color:#fff;text-decoration:none;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:4px}.mn-find-results a:hover,.mn-find-results a:focus{border-color:var(--mn-learner-accent);outline:none}.mn-find-results strong{font:850 12px/1.2 system-ui}.mn-find-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#93a099;font:650 10px/1.2 ui-monospace,monospace}.mn-find-empty{grid-column:1/-1;border:1px dashed var(--mn-learner-line);border-radius:13px;padding:18px;text-align:center;color:#aeb8c7;font:700 12px/1.3 system-ui}
.mn-page-jump{display:grid;gap:7px;margin-top:13px;padding-top:13px;border-top:1px solid var(--mn-learner-line)}.mn-page-jump span{font:950 10px/1.2 ui-monospace,monospace;letter-spacing:.12em;color:var(--mn-learner-accent)}.mn-page-jump select{width:100%;height:46px;border:1px solid var(--mn-learner-line);border-radius:13px;background:#030704;color:#fff;padding:0 12px;font:750 13px/1 system-ui}.mn-find-hint{margin:10px 2px 0;color:#718078;font:650 10px/1.3 system-ui}
@media(max-width:620px){#mnFindPanel{padding:14px;padding-top:max(14px,env(safe-area-inset-top))}.mn-find-card{max-height:calc(100vh - 28px);border-radius:20px}.mn-find-results{grid-template-columns:1fr}.mn-find-hint{display:none}}

/* Mike's original chalk drawing is the MN learner correction mark. Do not redraw or recolour it. */
#mnLearnerDock .mn-chalk-feedback{width:76px;height:76px;padding:0!important;border-radius:22px!important;background:#050505!important;border:2px solid #6ea8ff!important;overflow:hidden;position:relative;display:grid;place-items:center;box-shadow:0 14px 38px #0009!important}
#mnLearnerDock .mn-chalk-feedback img{width:100%;height:100%;object-fit:cover;display:block}
#mnLearnerDock .mn-chalk-label{position:absolute;left:7px;right:7px;bottom:5px;border-radius:999px;background:#050505d9;color:#fff;padding:3px 4px;font:900 8px/1 system-ui;letter-spacing:.08em}
.mn-feedback-mark{width:70px;height:70px;border-radius:20px;overflow:hidden;border:2px solid var(--mn-learner-accent);background:#050505;margin:-4px 0 12px}
.mn-feedback-mark img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:620px){#mnLearnerDock .mn-chalk-feedback{width:68px;height:68px;border-radius:20px!important}#mnLearnerDock{right:10px;bottom:max(10px,env(safe-area-inset-bottom))}.mn-feedback-mark{width:62px;height:62px}}
