:root{font-family:Arial,Segoe UI,sans-serif;color:#101e36;background:#eef0f2;line-height:1.35;--blue:#0d3471;--red:#ca2633;--green:#205b29}*{box-sizing:border-box}body{margin:0}button,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #2674c9;outline-offset:3px}button:disabled{cursor:default}main{max-width:1500px;margin:18px auto;padding:14px 18px;background:#fff;box-shadow:0 3px 22px #182c4012}.sheet-header{display:grid;grid-template-columns:185px 1fr 145px;align-items:start;gap:16px;min-height:105px}.sheet-title{text-align:center}.sheet-title h1{margin:0;background:#071e49;color:#fff;padding:9px 12px;border-radius:7px;font-family:Arial Narrow,Segoe UI,sans-serif;font-size:clamp(17px,1.9vw,27px);line-height:1.2;box-shadow:0 2px 5px #10284c25}.sheet-title p{margin:8px 0;font-weight:700;color:#112e61;font-size:15px}.mini-instructions{background:#faf2df;border-radius:6px;padding:8px 10px;font-size:10px;position:relative;z-index:5}.mini-instructions strong,.mini-instructions>span{display:block}.mini-instructions strong{margin-bottom:4px;font-size:10px}.mini-instructions summary{cursor:pointer;color:#234571;margin-top:3px;text-decoration:underline}.mini-instructions details[open] p{position:absolute;top:100%;left:0;background:#fff9ed;border:1px solid #dbcbab;box-shadow:0 3px 10px #1a2b4020;padding:12px;width:270px;margin:4px 0;font-size:12px}.compact-progress{border:1px solid #a2b4cc;border-radius:5px;padding:7px 9px;display:grid;gap:6px;font-size:11px}.compact-progress label{font-weight:700}progress{height:6px;width:100%;accent-color:#396b43}.quiet{background:#fff;border:1px solid #aebccc;border-radius:4px;padding:5px 10px;color:#173a62;font-size:11px}.diagram{position:relative;height:650px;display:grid;grid-template-columns:17% 21% 18% 21% 17%;column-gap:1.5%;isolation:isolate}.diagram-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.diagram-art path{vector-effect:non-scaling-stroke}.prevent-wing{fill:#f1f5fc;stroke:#18447d;stroke-width:1.5}.mitigate-wing{fill:#fff9e9;stroke:#e8a123;stroke-width:1.5}.red-line{fill:none;stroke:var(--red);stroke-width:1}.blue-line{fill:none;stroke:#759ac4;stroke-width:1}.orange-line{fill:none;stroke:#eac164;stroke-width:1}.zone{min-width:0;--accent:var(--red);position:relative}.threat,.effect{border:1px solid var(--red);border-radius:8px;margin-top:34px;height:608px;padding:0 10px;background:snow}.prevent,.mitigate{--accent:var(--blue)}.mitigate{--accent:#a86400}.zone-heading{text-align:center;color:var(--accent);height:100px;display:flex;flex-direction:column;justify-content:center;padding:6px}.threat .zone-heading,.effect .zone-heading{height:76px}.zone-heading h3{font-size:clamp(11px,1.05vw,15px);line-height:1.2;margin:0 0 7px}.zone-heading p{font-size:clamp(10px,.88vw,12px);line-height:1.3;font-weight:600;color:#172334;margin:0}.prevent .zone-heading,.mitigate .zone-heading{border:1px solid var(--accent);border-radius:6px 6px 0 0;background:#f7f9ff;margin:0 5% 10px;height:100px}.mitigate .zone-heading{background:#fff9e9}.slot-list{display:grid;grid-template-rows:repeat(7,64px)}.slot-row{height:64px;display:flex;align-items:center;gap:10px;min-width:0}.prevent .slot-list{padding:0 19% 0 7%}.mitigate .slot-list{padding:0 7% 0 19%}.row-shield{display:block;flex:none;width:26px;color:#13477e}.mitigate .row-shield{color:#e7a11b}.row-shield svg{width:100%;height:34px}.destination{height:50px;min-width:0;width:100%;padding:4px 7px;border:1px dashed #91abc9;background:#ffffffb8;border-radius:4px;display:flex;align-items:center;justify-content:center;text-align:center;color:#163c67;font-size:clamp(10px,.9vw,13px);line-height:1.2;overflow:auto;overflow-wrap:anywhere;scrollbar-width:thin}.threat .destination,.effect .destination{background:linear-gradient(100deg,#f7c9d3,#f5c1cd);border:0;border-top:1px solid #fbdde3;border-radius:0;box-shadow:0 3px 3px #4c303342;color:#7d2639}.mitigate .destination{border-color:#e6bb63;color:#8b5c08}.slot-hint{opacity:0;font-size:11px}.destination:hover .slot-hint,.destination:focus-visible .slot-hint,.destination.over .slot-hint{opacity:1}.destination.over{outline:3px solid #638eb8;outline-offset:2px}.confirmed{font-weight:600;gap:4px;cursor:default}.confirmed>span{flex:none;color:var(--green)}.center{display:flex;align-items:center;flex-direction:column;justify-content:flex-start;padding-top:76px;color:var(--green);min-width:0}.event-label{border:1px solid #5e975f;background:#f6faf2;border-radius:5px;padding:9px 6px;text-align:center;min-height:68px;width:88%}.event-label strong{display:block;font-size:13px}.event-label span{font-size:10px;color:#213c25;display:block;margin-top:5px}.center-circle{width:122%;aspect-ratio:1;border:2px solid #245f2c;background:#f8fcf4;border-radius:50%;margin-top:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12%;flex-shrink:0;box-shadow:0 0 0 2px #fff}.center-circle>svg{height:40%;width:46%;fill:none;stroke:var(--green);stroke-width:2;flex-shrink:0}.center-circle h3{text-align:center;margin:4px 0 0;font-size:clamp(11px,1.05vw,15px);line-height:1.3}.purpose-arrow{height:33px;font-size:29px;line-height:33px;color:#28632b}.purpose{background:#f7faf1;border:1px dashed #8ba67a;border-radius:5px;text-align:center;padding:9px;width:100%;max-width:210px}.purpose h3{font-size:12px;margin:0 0 5px}.purpose p{font-size:11px;margin:0;color:#263b2a;line-height:1.3}.sheet-bottom{display:grid;grid-template-columns:1fr 200px;gap:15px;margin-top:7px}.commitments{border:1px solid #643498;border-radius:7px;padding:9px 12px;background:#fdfbff}.commitments h3{font-size:12px;color:#623092;margin:0 0 5px}.commitments p{font-size:10px;margin:0 0 9px;font-weight:600}.commitments p span{font-weight:400;color:#675e72}.notes{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px;padding-bottom:4px}.notes textarea{background:#d9c9e8;box-shadow:0 3px 3px #3c255430;border:0;border-top:1px solid #e5d9ef;border-radius:0;resize:none;width:100%;height:67px;min-width:0;padding:7px;color:#43285c;font-size:11px}.notes textarea::placeholder{color:#5b4570;font-size:10px}.legend{border:1px dotted #7b91b4;border-radius:6px;padding:8px 10px;font-size:10px}.legend h3{text-align:center;font-size:10px;margin:0 0 5px}.legend>span{display:flex;align-items:center;gap:7px;margin:3px 0;color:#1c2b40}.legend svg{width:15px;height:18px}.legend .blue-key svg{color:var(--blue)}.legend .orange-key svg{color:#e7a11b}.pink-key{width:15px;height:15px;background:#f4c6d1;display:inline-block}.legend .green-key{color:var(--green)}.sheet-message{border:1px solid #97adc9;border-radius:6px;margin:10px 0 0;padding:9px;text-align:center;font-size:11px;background:#f2f6fb;color:#153563}.sheet-message strong,.sheet-message span{display:block}.activity{padding-bottom:12px;border-bottom:1px solid #c2cfdd}.bank{margin-top:16px;background:#f5f7fa;border:1px solid #d0dbe7;border-radius:6px;padding:14px}.bank-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.bank-header h2{font-size:17px;margin:0;color:#183b65}.bank-header>span{font-size:11px;color:#53667a}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;grid-auto-rows:126px}.card{min-width:0;text-align:left;position:relative;padding:10px 11px 10px 25px;border:1px solid #bccadd;border-radius:4px;background:#fff;color:#183752;overflow:auto;scrollbar-width:thin}.card strong{display:block;font-size:13px;line-height:1.3}.card .context{display:block;font-size:11px;line-height:1.4;color:#566779;margin-top:6px}.card-grip{position:absolute;left:7px;top:10px;color:#8395a7}.card:hover{border-color:#2a5685}.card.selected{outline:2px solid #326da5;outline-offset:-2px;background:#eaf3ff}.primary{background:#153f71;color:#fff;border:1px solid #153f71;border-radius:4px;font-size:12px;padding:9px 14px}.primary:disabled{visibility:hidden}.completion{text-align:center;padding:30px;background:#f7faf4;border:1px solid #94b18a;border-radius:6px}.completion>svg{width:45px;height:50px;color:var(--green)}.completion h2{font-size:25px}.completion p{font-size:14px}.lessons{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.lessons article{padding:10px;background:#fff;border:1px solid #d5e2d1}.lessons h3{font-size:14px}.lessons p{font-size:12px}footer{font-size:10px;text-align:center;color:#647287;padding:12px 0 0}dialog{max-width:450px;border:1px solid #a0b0c4;border-radius:8px;padding:24px;color:#183752}dialog::backdrop{background:#10213977}dialog form{display:flex;justify-content:flex-end;gap:9px}dialog h2{font-size:22px;margin-top:0}@media(min-width:761px)and (max-width:1050px){main{margin:8px;padding:10px}.sheet-header{grid-template-columns:150px 1fr 115px;gap:8px}.sheet-title h1{font-size:17px}.sheet-title p{font-size:12px}.threat,.effect{padding:0 6px}.slot-row{gap:5px}.row-shield{width:20px}.center-circle{width:128%;padding:10%}.center-circle h3{font-size:11px}.center{padding-top:95px}.event-label strong{font-size:11px}.purpose p{font-size:10px}.sheet-bottom{grid-template-columns:1fr 170px}.notes{gap:7px}}@media(max-width:760px){main{margin:0;padding:12px;box-shadow:none}.sheet-header{grid-template-columns:1fr;gap:10px}.sheet-title{grid-row:1}.sheet-title h1{font-size:20px;padding:12px}.sheet-title p{font-size:13px}.mini-instructions{font-size:11px}.mini-instructions>span{display:inline;margin-right:8px}.mini-instructions details[open] p{position:static;width:auto}.compact-progress{display:flex;align-items:center;gap:12px;border:0;padding:3px 0}.compact-progress label{white-space:nowrap}.compact-progress progress{max-width:150px}.compact-progress button{margin-left:auto}.diagram{height:auto;display:flex;flex-direction:column;gap:16px}.diagram-art{display:none}.zone{margin:0;height:auto;padding:10px;border:1px solid var(--accent);border-radius:6px;background:snow}.zone-heading,.threat .zone-heading,.effect .zone-heading,.prevent .zone-heading,.mitigate .zone-heading{height:auto;padding:5px 8px 12px;border:0;background:none;margin:0}.zone-heading h3{font-size:15px}.zone-heading p{font-size:12px}.slot-list{grid-template-columns:1fr 1fr;grid-template-rows:none;gap:9px;padding:0!important}.slot-row{height:59px}.destination{height:56px;font-size:12px}.row-shield{width:24px}.slot-hint{opacity:1;font-size:10px}.prevent,.mitigate{padding:18px 15px 26px;background:#f1f5fc;clip-path:polygon(0 0,100% 0,100% 94%,50% 100%,0 94%)}.mitigate{background:#fff9e9;clip-path:polygon(50% 0,100% 6%,100% 100%,0 100%,0 6%);padding-top:26px}.center{padding:0;gap:0}.event-label{width:190px;min-height:0;padding:8px}.center-circle{width:230px;height:230px;margin-top:15px;padding:24px}.center-circle h3{font-size:13px}.purpose{max-width:280px}.purpose p{font-size:12px}.sheet-bottom{grid-template-columns:1fr;gap:12px;margin-top:18px}.commitments{padding:12px}.commitments h3{font-size:12px}.commitments p{font-size:11px}.notes{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.notes textarea{height:85px;font-size:12px}.legend{display:flex;flex-wrap:wrap;gap:5px 12px;font-size:10px}.legend h3{width:100%;text-align:left}.sheet-message{font-size:11px;padding:12px}.bank{padding:10px}.bank-header{align-items:start}.bank-header h2{font-size:16px}.bank-header>span{max-width:150px;font-size:10px;text-align:right}.cards{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:174px}.card strong{font-size:12px}.card .context{font-size:11px}.lessons{grid-template-columns:1fr 1fr}.completion{padding:20px}.completion h2{font-size:22px}.primary{font-size:11px}dialog{margin:auto 15px}}.model-instruction{margin:0 0 12px;padding:8px 10px;background:#f2f6fb;border-left:3px solid #31547f;color:#213c60;font-size:12px;line-height:1.45}.effect .slot-list{grid-template-rows:repeat(6,64px)}@media(max-width:760px){.effect .slot-list{grid-template-rows:none}.model-instruction{font-size:12px;margin-top:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(min-width:761px){.center-circle{width:112%}.prevent .slot-list{padding-left:7%}.mitigate .slot-list{padding-right:7%}}.compact-progress{min-width:0}.compact-progress label{font-size:11px}.cards{align-content:start}.cards:empty{display:none}.completion{margin-top:16px}@media(max-width:760px){.compact-progress{flex-wrap:wrap}.compact-progress label{white-space:normal}}.lives{display:flex;flex-direction:column;gap:2px;color:#a12337}.lives>span{font-size:20px;letter-spacing:2px;line-height:1.2}.lives>b{font-size:11px;font-weight:600}.notification{position:fixed;right:20px;top:20px;z-index:1000;width:min(470px,calc(100vw - 32px));max-height:calc(100dvh - 40px);display:flex;align-items:flex-start;gap:14px;background:#edf4ff;color:#153a65;border:2px solid #4679af;border-radius:12px;padding:18px;box-shadow:0 10px 40px #10243a40;animation:notification-in .18s ease-out}.notification[hidden]{display:none}.notification.success{background:#e9f8ee;border-color:#25804a;color:#14532d}.notification.error{background:#fff0f0;border-color:#c12e3d;color:#821c29}.notification-body{min-width:0;overflow:auto;max-height:calc(100dvh - 90px);scrollbar-width:thin}.notification strong{display:block;font-size:16px;margin-bottom:6px}.notification p{font-size:14px;line-height:1.5;margin:0;overflow-wrap:anywhere}.notification-close{border:1px solid currentColor;background:transparent;color:inherit;border-radius:6px;min-width:44px;min-height:44px;font-size:24px;line-height:1;flex:none}.notification-close:hover{background:#ffffff80}@keyframes notification-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.lives{margin-left:auto}.lives>span{font-size:18px}.compact-progress button{margin-left:0}.notification{top:auto;bottom:max(12px,env(safe-area-inset-bottom));right:12px;width:calc(100vw - 24px);padding:14px;max-height:45dvh}.notification-body{max-height:calc(45dvh - 32px)}.notification strong{font-size:15px}.notification p{font-size:13px}}.legend-only .legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:8px}.legend-only .legend h3{margin:0}.commitments h2{font-size:15px;color:#623092;margin:0 0 10px}.commitments .congratulations{font-size:14px;color:#245a31;margin-bottom:14px}.commitments .notes-hint{font-size:11px;font-weight:400;color:#5f536b}.notes{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.note{min-width:0}.note label{display:block;font-size:11px;font-weight:600;color:#553471;margin-bottom:5px}.notes textarea{height:120px;min-height:90px;resize:vertical;font-size:13px;line-height:1.5;padding:10px}.print-note{display:none}.print-controls{margin-top:20px}.print-controls p{font-size:12px;font-weight:400;margin:9px 0 0}@media screen and (max-width:760px){.notes{grid-template-columns:repeat(2,minmax(0,1fr))}.commitments h2{font-size:15px;line-height:1.4}.notes textarea{font-size:14px}.sheet-bottom{grid-template-columns:1fr}}@page{size:A4 landscape;margin:10mm}@media print{html,body{margin:0;padding:0;background:#fff;color:#111;font-family:Arial,sans-serif}*{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}main{width:auto;max-width:none;padding:0;margin:0;background:#fff}.mini-instructions,.compact-progress,.model-instruction,.bank,.notification,.print-controls,.completion,footer,dialog,button,textarea,.notes-hint,.congratulations{display:none!important}.sheet-header{display:block;min-height:0;margin:0 0 3mm}.sheet-title h1{background:none;color:#111;font-size:20pt;border:1pt solid #333;border-radius:0;padding:2mm}.sheet-title p{font-size:10pt;color:#111;margin:2mm 0}.activity{padding:0;border:0}.diagram{display:grid;grid-template-columns:17% 21% 18% 21% 17%;column-gap:1.5%;width:100%;height:155mm;gap:0 1.5%;break-inside:avoid;page-break-inside:avoid;isolation:isolate}.diagram-art{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:-1}.prevent-wing,.mitigate-wing{fill:#fff;stroke:#444;stroke-width:1.2}.red-line,.blue-line,.orange-line{stroke:#555;stroke-width:1}.zone{clip-path:none;min-width:0;background:none;padding:0;border:0;border-radius:0;margin:0;height:auto;color:#111}.threat,.effect{margin-top:8.1mm;height:145mm;padding:0 1.5mm;border:1pt solid #555;border-radius:2mm;background:#fff}.zone-heading,.prevent .zone-heading,.mitigate .zone-heading{height:23.85mm;margin:0 5% 2.38mm;padding:1mm;border:1pt solid #555;border-radius:1mm;background:#fff;color:#111}.threat .zone-heading,.effect .zone-heading{height:18.13mm;margin:0;padding:1mm;border:0}.zone-heading h3{font-size:8.5pt;line-height:1.2;color:#111;margin:0 0 1.5mm}.zone-heading p{font-size:8pt;line-height:1.2;color:#111;margin:0}.slot-list,.effect .slot-list{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(7,15.26mm);gap:0}.effect .slot-list{grid-template-rows:repeat(6,15.26mm)}.prevent .slot-list{padding:0 16% 0 5%!important}.mitigate .slot-list{padding:0 5% 0 16%!important}.slot-row{height:15.26mm;gap:1.2mm;align-items:center;break-inside:avoid;page-break-inside:avoid}.row-shield{width:4mm;color:#333}.row-shield svg{width:4mm;height:5mm}.mitigate .row-shield{color:#555}.destination,.threat .destination,.effect .destination,.mitigate .destination{height:auto;min-height:12mm;max-height:none;overflow:visible;background:#fff;color:#111;border:.5pt solid #666;border-radius:1mm;padding:1mm;font-size:8pt;line-height:1.15;overflow-wrap:anywhere;break-inside:avoid;page-break-inside:avoid}.confirmed>span{color:#333}.center{padding-top:18.12mm;gap:0;color:#111;align-items:center}.event-label{width:88%;min-height:16.2mm;height:auto;padding:2mm 1mm;border:1pt solid #555;background:#fff}.event-label strong{font-size:9pt;color:#111}.event-label span{font-size:8pt;color:#111;margin-top:1mm}.center-circle{width:112%;height:auto;aspect-ratio:1;margin-top:7.15mm;padding:10%;border:1.2pt solid #333;background:#fff}.center-circle>svg{height:40%;width:46%;stroke:#333}.center-circle h3{font-size:8.5pt;line-height:1.2;color:#111;margin:1mm 0 0}.purpose-arrow{height:8mm;line-height:8mm;font-size:19pt;color:#333}.purpose{width:100%;max-width:none;padding:2mm;border:1pt dashed #555;background:#fff}.purpose h3{font-size:9pt;color:#111;margin:0 0 1mm}.purpose p{font-size:8pt;color:#111;line-height:1.2;margin:0}.sheet-bottom{display:block;margin:0}.commitments{break-before:page;page-break-before:always;display:block;border:0;padding:0;margin:0;background:#fff;overflow:visible}.commitments h2{font-size:15pt;line-height:1.3;color:#111;margin:0 0 4mm;break-after:avoid}.commitments>p{font-size:11pt;line-height:1.4;margin:0 0 4mm;color:#111}.notes{display:block;margin:0;padding:0}.note{display:block;height:auto;overflow:visible;margin:0 0 5mm;padding:0;break-inside:auto}.note label{display:block;font-size:11pt;color:#111;margin:0;padding:0 0 2mm;border-bottom:.5pt solid #777;break-after:avoid}.notes .print-note{display:block;height:auto;min-height:0;max-height:none;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;font-size:11pt;font-weight:400;line-height:1.45;color:#111;margin:2mm 0 0;padding:0;orphans:3;widows:3;break-inside:auto}.legend,.legend-only .legend{display:flex;flex-wrap:wrap;gap:3mm;padding:2mm;margin:4mm 0 0;color:#111;border:1pt solid #777;break-inside:avoid}.legend h3{margin:0;font-size:8pt}.legend>span{color:#111;font-size:8pt}.sheet-message{background:#fff;color:#111;border:1pt solid #777;font-size:9pt;margin:3mm 0 0;padding:2mm;break-inside:avoid}}
