.visualiser-page{max-width:1040px}.visualiser-page .hero h1{max-width:840px}.tool-intro{max-width:760px}.tool-controls{margin:24px 0;border:1px solid var(--line);border-radius:16px;background:var(--wash);padding:22px}.tool-controls fieldset{border:0;margin:0;padding:0;min-width:0}.tool-controls legend{font-size:1.15rem;font-weight:750;margin-bottom:16px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.setting label{display:block;font-weight:700;font-size:.92rem;margin-bottom:6px}.setting input,.setting select{width:100%;min-width:0;border:1px solid #8696b5;border-radius:9px;background:white;color:var(--ink);font:inherit;padding:10px 12px;min-height:48px}.setting input:focus-visible,.setting select:focus-visible,button:focus-visible{outline:3px solid #d87717;outline-offset:3px}.setting small{display:block;color:var(--muted);font-size:.8rem;margin-top:5px}.tool-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.tool-actions button{font:inherit;cursor:pointer;border:0}.secondary-button{border:1px solid #8293ba!important;border-radius:11px;padding:10px 16px;background:white;color:#183cce;font-weight:700}.secondary-button:disabled{opacity:.55;cursor:default}.tool-status{min-height:1.5em;color:var(--muted);font-size:.85rem;margin:10px 0}.tool-error{border-left:4px solid #aa351b;background:#fff1ed;color:#802410;padding:12px 15px;margin:15px 0 0}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem;margin:18px 0 8px}.legend span{display:inline-flex;align-items:center;gap:8px}.swatch{display:inline-block;width:16px;height:16px;border:1px solid #52617a;border-radius:4px}.home-a{background:#eaf0ff}.home-b{background:#fdf1df}.calendar-wrap{overflow-x:auto;margin:15px 0 20px;border:1px solid var(--line);border-radius:12px}.calendar-wrap:focus-visible{outline:3px solid #d87717;outline-offset:3px}.schedule-calendar{table-layout:fixed;margin:0;min-width:650px;font-size:.82rem}.schedule-calendar caption{text-align:left;padding:14px 16px;background:#fff;font-size:.93rem;font-weight:750;line-height:1.45}.schedule-calendar th,.schedule-calendar td{padding:10px 8px;border-right:1px solid var(--line)}.schedule-calendar thead th{text-align:center}.schedule-calendar th:first-child{width:66px}.schedule-calendar tbody th{font-size:.75rem;vertical-align:middle}.schedule-calendar td{height:89px}.schedule-calendar time{display:block;white-space:nowrap;font-size:.77rem}.schedule-calendar strong{display:block;white-space:nowrap;font-size:.83rem;margin-top:8px}.calendar-summary{font-size:.9rem;color:var(--muted);margin-top:18px}.print-note{font-size:.85rem;color:var(--muted);margin:15px 0 0}.screen-explainer h2{margin-top:28px}.resource-links{display:flex;flex-wrap:wrap;gap:10px 24px;padding:0;list-style:none}.resource-links li{margin:0}.visualiser-page [hidden]{display:none!important}@media(max-width:620px){.settings-grid{grid-template-columns:1fr}.tool-controls{padding:18px}.calendar-wrap{margin-left:-8px;margin-right:-8px}.tool-actions button{width:100%}.visualiser-page .resource{padding:22px}.schedule-calendar caption{font-size:.85rem}.tool-status{font-size:.82rem}}@media print{@page{size:landscape;margin:12mm}.screen-only,.tool-controls,.tool-status,.tool-error,.screen-explainer,.resource-links,.app-offer,.scroll-hint{display:none!important}.visualiser-page .hero{padding-bottom:8px}.visualiser-page .hero h1{font-size:22pt;margin:5px 0 8px}.visualiser-page .hero .intro{display:none}.visualiser-page .hero .eyebrow{font-size:8pt}.visualiser-page .resource{padding:0;border:0}.calendar-wrap{overflow:visible;margin:10px 0;border:1px solid #68788f;break-inside:avoid}.schedule-calendar{min-width:0;font-size:9pt}.schedule-calendar td{height:20mm}.schedule-calendar strong{font-size:10pt}.schedule-calendar time{font-size:9pt}.schedule-calendar th:first-child{width:16mm}.schedule-calendar caption{font-size:10pt;padding:8px}.calendar-summary{font-size:9pt;margin:6px 0}.legend{font-size:9pt;margin:6px 0}.home-a,.home-b{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-note{font-size:8pt;margin:6px 0}.visualiser-page .footer{font-size:8pt;margin-top:10px;padding-top:8px}.visualiser-page .footer a{display:none}}
