:root{--ink:#203634;--muted:#72817b;--green:#087d60;--green-dark:#075846;--mint:#d9f3df;--cream:#f7f6ee;--line:#e4ebe2;--orange:#f4b760;--red:#ec7569;--blue:#7bafcc;--s:#a9d5bb;--i:#e8c069;--a:#e87f6d;--d:#8cbad4;--r:#829bde}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f2f5ec;color:var(--ink);font-family:Arial,'Segoe UI',sans-serif;font-size:14px;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #efaa3d;outline-offset:3px}.page-shell{max-width:1600px;margin:auto;padding:0 48px}.topbar{min-height:100px;display:flex;align-items:center;gap:48px;border-bottom:1px solid #dce5d9}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:800;font-size:12px;line-height:1.05;letter-spacing:.04em}.brand strong{color:var(--green)}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:var(--green);color:white;font-size:25px}.top-title{flex:1}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#81938a}.top-title h1{margin:2px 0 0;font-size:24px;line-height:1.1}.top-title h1 span{font-size:20px}.top-tag,.live-pill{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--green);background:#e1f3e4;padding:9px 13px;border-radius:30px;white-space:nowrap}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#31ae75;margin-right:5px}.intro{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:38px 0 28px}.intro h2,.mission-heading h2{font-size:30px;letter-spacing:-.04em;margin:5px 0}.intro p,.mission-heading p{max-width:690px;color:#64766d;margin:0;font-size:15px}.intro-stats{display:flex;gap:30px;flex-shrink:0}.intro-stats div{display:grid}.intro-stats strong{font-size:24px;letter-spacing:-.04em}.intro-stats span{color:var(--muted);font-size:11px}.missions{display:flex;gap:10px;margin-bottom:20px}.mission{border:1px solid #dce7dc;background:#e9efe5;color:#688177;border-radius:15px;display:flex;align-items:center;gap:12px;padding:12px 20px;text-align:left;min-width:230px}.mission>span{font-size:22px;font-weight:bold;color:#adc2b3}.mission small,.mission strong{display:block}.mission small{font-size:9px;letter-spacing:.1em}.mission strong{font-size:14px}.mission.active,.mission[aria-pressed=true]{background:var(--green-dark);color:white;border-color:var(--green-dark);box-shadow:0 6px 14px #0d6c5030}.mission.active>span,.mission[aria-pressed=true]>span{color:#7dc5a4}.mission-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e4efe2;border-radius:18px;padding:22px 26px;margin-bottom:16px}.mission-heading h2{font-size:23px}.objective{display:flex;gap:12px;align-items:center;background:#f6fbf2;border-radius:13px;padding:11px 15px;min-width:245px}.objective>span{font-size:23px}.objective small{display:block;font-size:9px;color:#8a9a8e;font-weight:bold;letter-spacing:.12em}.objective strong{font-size:12px}.workspace{display:grid;grid-template-columns:minmax(320px, .85fr) minmax(500px,1.35fr);gap:16px;align-items:start}.panel{background:#fff;border:1px solid #e6ece4;border-radius:20px;box-shadow:0 7px 25px #365b3e0a}.controls-panel,.live-panel{padding:24px}.section-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.section-heading h2,.results-section h2{margin:3px 0;font-size:21px;letter-spacing:-.035em}.number-badge{background:#f0f5ec;color:#6e8c78;border-radius:20px;padding:7px 11px;font-size:10px;font-weight:800;white-space:nowrap}.muted{color:var(--muted);font-size:12px}.measures{display:grid;gap:8px;margin:19px 0}.measure{display:flex;align-items:center;gap:11px;border:1px solid #e5ece5;border-radius:12px;padding:11px 12px;transition:.2s;background:#fff}.measure:has(input:checked){border-color:#5bad84;background:#f0faf2}.measure input{accent-color:var(--green);width:17px;height:17px;flex-shrink:0}.measure strong,.measure small{display:block}.measure strong{font-size:13px}.measure small{color:#819087;font-size:11px}.measure .price{margin-left:auto;text-align:right;white-space:nowrap;font-weight:bold;color:var(--green-dark);font-size:12px}.budget-box{display:flex;justify-content:space-between;align-items:center;background:#eff7ee;border-radius:13px;padding:14px 16px;margin:15px 0}.budget-box small,.budget-box strong{display:block}.budget-box small{font-size:9px;font-weight:bold;letter-spacing:.09em;color:#7b9885}.budget-box strong{font-size:20px}.budget-box>span{text-align:right;color:#829388;font-size:10px}.budget-box b{color:var(--ink);font-size:12px}.action-row{display:flex;gap:8px;margin-top:8px}.button{border:0;border-radius:10px;padding:12px 14px;font-weight:700;font-size:12px;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button.primary{background:#0a8061;color:white;flex:1}.button.dark{background:#244a40;color:#fff}.button.light{background:#edf3ed;color:#3e6253}.secondary-actions .button{flex:1}.hint{margin:18px 0 8px;padding:12px;background:#fffae9;border-radius:10px;color:#806d42;font-size:12px}.text-button{border:0;background:none;padding:6px 0;color:var(--green);font-weight:800}.output-note:empty,.event-note:empty{display:none}.output-note{padding:12px;background:#f2f7ef;border-radius:10px;margin-top:8px;font-size:12px}.scene{height:220px;position:relative;overflow:hidden;background:linear-gradient(#dff3dd 0 76%,#c5e7bf 76%);border-radius:15px;margin-top:17px}.scene-sun{position:absolute;right:12%;top:17px;width:53px;height:53px;background:#f8d87e;border-radius:50%;box-shadow:0 0 0 10px #f9e7a066}.cloud{position:absolute;background:#fff9;width:75px;height:17px;border-radius:20px;top:37px;left:10%}.cloud:before{content:'';position:absolute;background:#fff9;width:27px;height:27px;border-radius:50%;left:13px;bottom:0}.cloud.c2{left:65%;top:70px;transform:scale(.7)}.cityline{position:absolute;bottom:35px;left:0;right:0;height:50px;background:linear-gradient(90deg,#b7d9b8 0 8%,transparent 8% 12%,#b7d9b8 12% 20%,transparent 20% 70%,#b7d9b8 70% 78%,transparent 78% 82%,#b7d9b8 82% 93%,transparent 93%)}.bank-building{position:absolute;width:168px;height:111px;left:calc(50% - 84px);bottom:34px;background:#fff8e3;border:4px solid #457d66;border-radius:7px 7px 2px 2px;box-shadow:inset 0 -10px #f1e8cc}.bank-roof{position:absolute;left:-15px;top:-38px;width:0;height:0;border-left:95px solid transparent;border-right:95px solid transparent;border-bottom:39px solid #4d8b6d}.bank-sign{position:absolute;top:-14px;left:51px;width:58px;text-align:center;background:#fff6d9;border:3px solid #457d66;border-radius:5px;color:#356b56;font-weight:900;font-size:12px;letter-spacing:.1em;z-index:1}.bank-windows{display:flex;justify-content:space-around;margin-top:30px}.bank-windows i{width:23px;height:29px;background:#b6dde0;border:3px solid #7aab9b;border-radius:9px 9px 1px 1px}.bank-door{position:absolute;bottom:0;left:64px;width:34px;height:36px;border:3px solid #638d79;background:#a8cdbd;border-radius:8px 8px 0 0}.ground{position:absolute;bottom:24px;left:0;right:0;height:12px;background:#a7d3a9;border-radius:50%}.character{position:absolute;bottom:32px;z-index:2;width:27px;height:60px}.character.one{left:22%}.character.two{left:30%;transform:scale(.85)}.character.boss{right:22%;animation:pace 4s ease-in-out infinite alternate;animation-play-state:paused}.character .head{width:27px;height:28px;background:#f1c49c;border:2px solid #334d41;border-radius:45% 45% 48% 48%;position:relative;z-index:2}.character .eyes:after{content:'••';position:absolute;top:4px;left:5px;color:#334d41;letter-spacing:5px;font-style:normal}.character .mouth{position:absolute;width:8px;height:4px;border-bottom:2px solid #9c5e51;border-radius:50%;left:8px;top:17px}.character .body{width:24px;height:26px;margin:-2px auto 0;background:#efa467;border:2px solid #334d41;border-radius:8px 8px 3px 3px}.character.two .body{background:#8eb5d3}.character.boss .body{background:#405b6e}.boss span{display:none;position:absolute;top:-15px;right:-14px;color:#e96258;font-size:22px;font-weight:bold}.scene-label{position:absolute;bottom:5px;width:100%;text-align:center;font-size:8px;letter-spacing:.12em;font-weight:800;color:#54836c}.scene-label span{color:#e39966}.service-bar{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #eef2ed}.service-icon{display:grid;place-items:center;width:39px;height:39px;background:#e2f5e6;color:#098a60;border-radius:12px;font-size:22px}.service-bar small,.service-bar strong{display:block}.service-bar small{color:#93a39a;font-size:9px;letter-spacing:.1em;font-weight:bold}.service-bar strong{font-size:16px}.traffic-value{margin-left:auto;text-align:right}.event-note{background:#fff5df;color:#795a25;padding:10px;border-radius:9px;margin:10px 0;font-size:12px}body[data-service=slow] .service-icon{background:#fff1cf;color:#c8881e}body[data-service=down] .service-icon{background:#ffe5df;color:#d6574e}body[data-service=slow] .boss,body[data-service=down] .boss{animation-play-state:running}body[data-service=slow] .boss span,body[data-service=down] .boss span{display:block}body[data-service=slow] .customer .mouth,body[data-service=down] .customer .mouth{border-bottom:0;border-top:2px solid #9c5e51}body[data-service=down] .scene{background:linear-gradient(#f4dfca 0 76%,#d8d9ac 76%)}body[data-external=on] .service-bar{outline:3px solid #e87f6d;outline-offset:3px;border-radius:8px}@keyframes pace{from{transform:translateX(-18px)}to{transform:translateX(18px)}}.map-heading{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px}.map-heading h3,.chart-card h3{margin:0;font-size:15px}.map-heading p{font-size:10px;color:#8a9990;margin:3px 0;max-width:420px}.map-heading>span{font-size:9px;font-weight:bold;color:#98aaa0;white-space:nowrap}.branches{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}.branch{height:17px;border:1px solid #c8dfc9;border-radius:4px;overflow:hidden;background:linear-gradient(to right,var(--s) 0 calc(var(--s-p,100)*1%),var(--i) calc(var(--s-p,100)*1%) calc((var(--s-p,100) + var(--i-p,0))*1%),var(--a) calc((var(--s-p,100) + var(--i-p,0))*1%) calc((var(--s-p,100) + var(--i-p,0) + var(--a-p,0))*1%),var(--d) calc((var(--s-p,100) + var(--i-p,0) + var(--a-p,0))*1%) calc((var(--s-p,100) + var(--i-p,0) + var(--a-p,0) + var(--d-p,0))*1%),var(--r) 0);display:flex}.branch span{height:100%;min-width:0}.legend{display:flex;gap:8px 12px;flex-wrap:wrap;margin:12px 0;color:#74847b;font-size:10px}.legend span{white-space:nowrap}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:3px;vertical-align:-1px}.swatch.s{background:var(--s)}.swatch.i{background:repeating-linear-gradient(45deg,#e8c069 0 3px,#9d8446 3px 4px)}.swatch.a{background:repeating-linear-gradient(90deg,#e87f6d 0 3px,#b85f50 3px 4px)}.swatch.d{background:repeating-linear-gradient(135deg,#8cbad4 0 3px,#618eaa 3px 4px)}.swatch.r{background:var(--r)}.state-counts{display:flex;gap:7px;flex-wrap:wrap;font-size:11px;font-weight:bold}.state-counts>*{background:#f2f6f0;padding:5px 8px;border-radius:6px}.timeline-head{display:flex;justify-content:space-between;margin-top:20px;font-size:12px}.timeline-head span{font-size:9px;color:#c88949;font-weight:bold}.timeline-wrap{position:relative}.timeline-wrap input{width:100%;accent-color:var(--green);position:relative;z-index:1}.time-marker{position:absolute;left:66.66%;top:6px;height:15px;border-left:2px solid #d78741}.time-ends{display:flex;justify-content:space-between;color:#a1afa4;font-size:9px}.playback{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.playback label{margin-left:auto;color:#809188;font-size:11px}.playback select{border:1px solid #dfe8df;border-radius:7px;background:white;color:var(--ink);padding:7px}.external-control{display:flex;align-items:start;gap:10px;background:#fff6e8;border:1px solid #f5e7cd;border-radius:12px;padding:12px;margin-top:15px}.external-control input{accent-color:#c98235;margin-top:4px}.external-control strong,.external-control small{display:block}.external-control strong{font-size:12px}.external-control small{font-size:10px;color:#9b8465}.results-section{margin:38px 0}.results{margin:16px 0}.empty-state{border:1px dashed #cbdccc;border-radius:15px;padding:25px;text-align:center;color:#8a9b8d;background:#f9fbf6}.results-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.result-card{background:white;border:1px solid #e3ebe1;border-radius:14px;padding:16px}.result-card small{display:block;color:#8a9b90;font-size:10px}.result-card strong{font-size:20px}.scenarios,.comparison{overflow:auto}.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.chart-card{padding:20px}.chart-card canvas{display:block;width:100%;height:auto;margin-top:15px}table{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden;font-size:12px}th,td{text-align:left;padding:10px;border-bottom:1px solid #edf1ea}th{color:#778e7d}footer{border-top:1px solid #dce5d9;padding:24px 0 35px;display:flex;align-items:start;justify-content:space-between;color:#83948a}footer strong{font-size:11px;letter-spacing:.08em;color:#517263}footer strong span{color:#e4ac58}footer p{max-width:620px;margin:0;font-size:11px;text-align:right}@media(max-width:1000px){.page-shell{padding:0 22px}.workspace{grid-template-columns:1fr}.intro-stats{gap:15px}.charts{grid-template-columns:1fr}}@media(max-width:640px){.page-shell{padding:0 14px}.topbar{gap:15px;min-height:75px}.top-tag{display:none}.top-title h1{font-size:19px}.intro{display:block;padding-top:25px}.intro h2{font-size:25px}.intro-stats{margin-top:18px}.missions{display:grid;grid-template-columns:1fr 1fr}.mission{min-width:0;padding:10px;gap:7px}.mission>span{font-size:17px}.mission strong{font-size:11px}.mission-heading{display:block}.objective{margin-top:15px}.controls-panel,.live-panel{padding:17px}.scene{height:185px}.branches{gap:3px}.branch{height:14px}.results-grid{grid-template-columns:1fr 1fr}.action-row{flex-wrap:wrap}.action-row .button{flex:1 1 auto}footer{display:block}footer p{text-align:left;margin-top:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.branch .s{background:var(--s)}.branch .i{background:var(--i)}.branch .a{background:var(--a)}.branch .d{background:var(--d)}.branch .r{background:var(--r)}.channel-diagram{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:10px;color:#83948a;font-size:9px;letter-spacing:.04em}.channel-diagram span,.channel-diagram strong{padding:5px 7px;background:#f3f6f1;border-radius:6px}.channel-diagram b{color:#b3c2b6}body[data-external=on] .channel-diagram strong{background:#ffe5df;color:#bd4c42;box-shadow:0 0 0 2px #f3a79a}

.results:has(.result-card){display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.result-card span{display:block;color:#71837a;font-size:11px}.button:disabled{opacity:.48;cursor:not-allowed}@media(max-width:640px){.results:has(.result-card){grid-template-columns:1fr 1fr}}
/* The first screen is the mission workspace. */
.topbar{min-height:68px;gap:25px}.brand-mark{width:36px;height:36px;font-size:21px}.top-title h1{font-size:20px}.top-tag{padding:7px 11px}.intro{display:none}.missions{margin:14px 0 10px}.mission{padding:8px 15px;min-width:210px}.mission-heading{padding:13px 20px;margin-bottom:12px}.mission-heading h2{font-size:19px;margin:1px 0}.mission-heading p{font-size:12px}.objective{padding:8px 12px}.workspace{grid-template-columns:minmax(310px,.78fr) minmax(500px,1.4fr)}.controls-panel,.live-panel{padding:20px}.live-panel{position:relative}.scene{height:250px;margin-top:12px;background:linear-gradient(#d6f1db 0 73%,#b6dfa9 73%);border:1px solid #d3e9d0}.bank-building{transform:scale(1.24);transform-origin:bottom center;bottom:42px}.ground{bottom:32px}.character{bottom:41px;transform:scale(1.25);transform-origin:bottom center}.character.two{transform:scale(1.05)}.character.boss{animation:pace-v2 4s ease-in-out infinite alternate;animation-play-state:paused}.character .head{box-shadow:0 -5px 0 #385a4a}.character.one .head{box-shadow:0 -5px 0 #704d3c}.character.two .head{box-shadow:0 -5px 0 #c59660}.customer .body:after{content:'';display:block;width:8px;height:8px;background:#fff3d8;border:1px solid #927c6c;border-radius:1px;position:absolute;right:-4px;bottom:8px}.speech{position:absolute;z-index:3;top:24px;max-width:150px;background:#fff;border:2px solid #53866b;border-radius:13px;padding:8px 11px;color:#315949;font-weight:bold;font-size:11px;box-shadow:0 4px 0 #7aa78133}.speech:after{content:'';position:absolute;bottom:-9px;width:12px;height:12px;background:white;border-right:2px solid #53866b;border-bottom:2px solid #53866b;transform:rotate(45deg)}.customer-speech{left:8%}.customer-speech:after{left:30px}.boss-speech{right:5%;top:50px}.boss-speech:after{right:28px}body[data-service=slow] .customer-speech{border-color:#d59c45;background:#fffaf0}body[data-service=down] .customer-speech{border-color:#df7a69;background:#fff6f3}body[data-service=down] .customer .head:after{content:'💧';position:absolute;top:10px;right:-10px;font-size:12px}body[data-service=slow] .boss,body[data-service=down] .boss{animation-play-state:paused}body[data-playing=true][data-service=slow] .boss,body[data-playing=true][data-service=down] .boss{animation-play-state:running}@keyframes pace-v2{from{transform:translateX(-18px) scale(1.25)}to{transform:translateX(18px) scale(1.25)}}.mission-quick{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 15px;padding:10px 2px 0;color:#607a68;font-size:11px;font-weight:bold}.service-bar{padding:10px 0}.service-reason{color:#5d7568;font-size:12px;margin:9px 0}.cause-chain{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;gap:4px;align-items:stretch;margin:12px 0}.cause-chain>div{background:#f3f8f1;border:1px solid #e3eee1;border-radius:10px;text-align:center;padding:8px 3px;min-width:0}.cause-chain>b{align-self:center;color:#91baa1;font-size:23px}.chain-icon{display:block;font-size:20px}.cause-chain small,.cause-chain strong{display:block}.cause-chain small{font-size:8px;color:#91a697;font-weight:bold}.cause-chain strong{font-size:10px;overflow-wrap:anywhere}.meter-label{display:flex;justify-content:space-between;font-size:10px;color:#829387;font-weight:bold;margin-top:10px}.meter-label span:last-child{text-align:right}progress{display:block;width:100%;height:12px;margin:5px 0;border:0;border-radius:10px;overflow:hidden;background:#e7efe5}progress::-webkit-progress-bar{background:#e7efe5;border-radius:10px}progress::-webkit-progress-value{background:linear-gradient(90deg,#76bb8a,#ecb96b);border-radius:10px}progress::-moz-progress-bar{background:linear-gradient(90deg,#76bb8a,#ecb96b);border-radius:10px}body[data-service=down] progress::-webkit-progress-value,body[data-external=on] progress::-webkit-progress-value{background:#e77769}.channel-diagram{margin:8px 0}.map-heading{margin:16px 0 10px}.branches{gap:7px 5px;padding:11px 8px 7px;background:#e9f4e5;border-radius:12px}.branch{height:22px;position:relative;border:2px solid #90b99c;border-radius:3px 3px 2px 2px;overflow:visible;background:#d4e9d2;box-shadow:0 2px 0 #afc8aa}.branch:before{content:'';position:absolute;left:-3px;right:-3px;top:-6px;height:6px;background:#6b9b7a;clip-path:polygon(50% 0,100% 100%,0 100%)}.branch:after{content:'';position:absolute;left:20%;right:20%;top:4px;height:7px;background:repeating-linear-gradient(90deg,#edf9e9 0 3px,transparent 3px 7px);opacity:.8}.branch span{position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(to right,var(--s) 0 calc(var(--s-p,100)*1%),var(--i) calc(var(--s-p,100)*1%) calc((var(--s-p,100) + var(--i-p,0))*1%),var(--a) calc((var(--s-p,100) + var(--i-p,0))*1%) calc((var(--s-p,100) + var(--i-p,0) + var(--a-p,0))*1%),var(--d) calc((var(--s-p,100) + var(--i-p,0) + var(--a-p,0))*1%) calc((var(--s-p,100) + var(--i-p,0) + var(--a-p,0) + var(--d-p,0))*1%),var(--r) 0)}.state-counts{font-size:12px}.task-steps:empty,.interpretation:empty{display:none}.task-steps,.interpretation{background:#f0f8ef;border:1px solid #dcebdc;border-radius:12px;padding:12px;margin:12px 0;color:#476354;font-size:12px}.task-steps ol{padding-left:19px;margin:5px 0}.chart-legend{display:flex;gap:7px 10px;flex-wrap:wrap;margin-top:12px;color:#6f8175;font-size:10px}.zoom-card{grid-column:1/-1}.zoom-card canvas{max-width:720px;margin-left:auto;margin-right:auto}.results-section{margin-top:26px}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}
@media(max-width:1000px){.workspace{grid-template-columns:1fr}.live-panel{grid-row:1}.controls-panel{grid-row:2}.scene{height:220px}}
@media(max-width:640px){.topbar{min-height:60px}.mission-heading{padding:12px}.mission-heading .objective{margin-top:8px}.mission-quick{display:grid}.scene{height:200px}.bank-building{transform:scale(1);bottom:34px}.character{bottom:34px;transform:scale(1)}.character.two{transform:scale(.85)}.speech{font-size:10px;max-width:110px;padding:6px}.customer-speech{left:3%;top:10px}.boss-speech{right:3%;top:30px}.cause-chain{gap:2px}.cause-chain>div{padding:6px 2px}.chain-icon{font-size:15px}.cause-chain small{font-size:7px}.cause-chain strong{font-size:9px}.cause-chain>b{font-size:14px}.branch{height:19px}.branches{gap:7px 4px}.zoom-card{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.character.boss{animation:none!important}.cause-chain *{animation:none!important}}
.cause-chain>b{position:relative}.cause-chain>b:after{content:'•';position:absolute;top:0;left:0;color:#efaa57;font-size:14px;opacity:0;animation:signal 1.6s linear infinite;animation-play-state:paused}body[data-playing=true] .cause-chain>b:after{animation-play-state:running}.cause-chain>b:nth-of-type(2):after{animation-delay:.3s}.cause-chain>b:nth-of-type(3):after{animation-delay:.6s}.cause-chain>b:nth-of-type(4):after{animation-delay:.9s}@keyframes signal{0%{transform:translateX(-4px);opacity:0}35%,65%{opacity:1}100%{transform:translateX(9px);opacity:0}}@media(prefers-reduced-motion:reduce){.cause-chain>b:after{animation:none!important;display:none}}
/* The 60-day label sits at two thirds of the 90-day timeline. */
.time-ends{position:relative;display:block;height:15px}.time-ends span{position:absolute;top:0}.time-ends span:first-child{left:0}.time-ends span:nth-child(2){left:66.6667%;transform:translateX(-50%)}.time-ends span:last-child{right:0}.state-counts>span:nth-child(2){background:#fff5d5;color:#72571e;box-shadow:inset 0 0 0 1px #dfbc5b}.state-counts>span:nth-child(2):before{content:'';display:inline-block;width:10px;height:10px;margin-right:5px;border:1px solid #a77912;border-radius:50%;background:repeating-linear-gradient(45deg,#e8c069 0 3px,#a77912 3px 4px);vertical-align:-1px}
/* Eight compact choices remain visible together; explanations expand on demand. */
.measures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}.measure{display:block;position:relative;padding:0;min-width:0;border-radius:10px}.measure-choice{display:grid;grid-template-columns:16px minmax(0,1fr);grid-template-rows:auto auto;column-gap:7px;align-items:start;padding:8px 9px 0;cursor:pointer}.measure-choice input{grid-row:1/3;margin:2px 0 0;width:15px;height:15px}.measure-name{font-size:11px;line-height:1.15;font-weight:800;min-width:0}.measure .price{grid-column:2;text-align:left;margin:3px 0 0;font-size:11px;line-height:1.1}.measure-details{padding:0 9px 6px 32px}.measure-details summary{display:inline-block;cursor:pointer;color:#397d62;font-size:10px;font-weight:700;line-height:1.2;list-style:none}.measure-details summary::-webkit-details-marker{display:none}.measure-details summary:after{content:' +';font-size:12px}.measure-details[open] summary:after{content:' −'}.measure-details summary:focus-visible{outline:3px solid #efaa3d;outline-offset:2px;border-radius:2px}.measure-details p{margin:5px 0 2px;color:#657b6e;font-size:11px;line-height:1.3}.controls-panel>.muted{margin:4px 0}.budget-box{margin:10px 0;padding:10px 12px}.action-row{margin-top:6px}.action-row .button{padding:10px}.hint{margin:10px 0 5px;padding:9px}.task-steps{margin:8px 0;padding:8px}.controls-panel .section-heading h2{font-size:19px}@media(max-width:380px){.measure-choice{padding:7px 6px 0;column-gap:4px}.measure-name{font-size:10px}.measure .price{font-size:10px}.measure-details{padding-left:25px}}
@media(max-width:1000px){.controls-panel{grid-row:1}.live-panel{grid-row:2}}
@media(min-width:1001px) and (max-height:800px){.topbar{min-height:56px}.missions{margin:9px 0 7px}.mission{padding:6px 12px}.mission-heading{padding:9px 16px;margin-bottom:9px}.objective{padding:5px 10px}.controls-panel,.live-panel{padding:15px}.measures{margin:9px 0;gap:6px}.measure-choice{padding-top:6px}.measure-details{padding-bottom:4px}.budget-box{margin:7px 0;padding:8px 10px}}
/* Comparative graph and scene share the main workspace. */
.live-overview{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:10px;margin-top:10px}.live-overview .scene{height:190px;margin:0}.main-chart-card{min-width:0;background:#f7faf5;border:1px solid #e5eee2;border-radius:14px;padding:10px}.main-chart-heading{display:flex;justify-content:space-between;align-items:center}.main-chart-heading h3{font-size:14px;margin:0}.main-chart-heading>span{font-size:10px;color:#84958a}.main-chart-card canvas{display:block;width:100%;height:auto;margin-top:4px}.main-chart-legend{font-size:9px;line-height:1.25;color:#6c8074}.cause-chain{grid-template-columns:repeat(5,minmax(0,1fr) auto) minmax(0,1fr);gap:3px}.cause-chain>div{padding:6px 3px}.impact-chip{display:inline-block;margin:3px 1px 0;padding:2px 3px;border-radius:4px;background:#e7eee6;color:#89998e;font-size:8px;line-height:1.1}.impact-chip.selected,.impact-chip.active,.impact-chip[aria-pressed=true]{background:#c6efd3;color:#086443;box-shadow:inset 0 0 0 1px #66b58a;font-weight:bold}.cause-chain>div:has(.impact-chip.selected),.cause-chain>div:has(.impact-chip.active){border-color:#78be91;background:#edf9ed}.chain-caption{margin:0;color:#8a9b90;font-size:10px}.measure-impact:not(:empty),.comparison-summary:not(:empty){background:#ecf7ed;color:#416c4f;border-radius:9px;padding:8px;margin:7px 0;font-size:11px}.branch[data-symbol]:not([data-symbol=none]):after{left:auto;right:2px;top:0;width:auto;height:auto;background:none;opacity:1;font-size:10px;font-weight:900;line-height:13px;text-shadow:0 0 2px white,0 0 2px white}.branch[data-symbol=i]:after{content:'●';color:#bf8412}.branch[data-symbol=a]:after{content:'⚡';color:#c95842}.branch[data-symbol=d]:after{content:'✚';color:#347da0}.branch[data-symbol=r]:after{content:'✓';color:#526bc0}body[data-external=on] #traffic-meter{outline:2px solid #e77769;outline-offset:2px}.event-note:empty{display:none}
@media(max-width:640px){.live-overview{grid-template-columns:1fr}.live-overview .scene{height:190px}.main-chart-card{padding:10px}.cause-chain{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.cause-chain>b{display:none}.impact-chip{font-size:9px}}
@media(min-width:1001px) and (max-height:800px){.live-overview .scene{height:165px}.main-chart-card{padding:7px}.main-chart-card canvas{max-height:135px;object-fit:contain}.main-chart-heading h3{font-size:12px}.main-chart-legend{font-size:9px}.mission-heading{padding:6px 12px}.mission-heading h2{font-size:17px}.mission-heading p{font-size:11px}.mission-heading .eyebrow{display:none}.missions{margin:6px 0}.mission{padding:5px 10px}.topbar{min-height:48px}.live-panel .section-heading h2{font-size:17px}.live-overview{margin-top:5px}.live-overview .scene .bank-building{transform:scale(.85);bottom:26px}.live-overview .scene .character{bottom:27px;transform:scale(.85)}.live-overview .scene .speech{top:8px;font-size:9px;padding:5px;max-width:100px}.live-overview .scene .boss-speech{top:25px}.live-overview .scene .ground{bottom:23px}.cause-chain{margin:6px 0}.cause-chain>div{padding:4px 2px}.cause-chain .chain-icon{font-size:15px}.mission-quick{padding-top:5px}.service-bar{padding:5px 0}.service-reason{margin:4px 0}}
/* Compact header and the aggregate network replace the decorative bank scene. */
.topbar{min-height:58px;gap:14px;flex-wrap:wrap;padding:7px 0}.top-title{flex:0 0 auto}.top-title .eyebrow{display:none}.top-title h1{font-size:17px;white-space:nowrap}.missions{margin:0;gap:6px}.mission{min-width:0;padding:5px 9px;gap:6px}.mission>span{font-size:14px}.mission small{display:none}.mission strong{font-size:11px}.mission-heading{flex:1;min-width:220px;margin:0;padding:5px 9px;gap:8px;background:transparent}.mission-heading h2,.mission-heading .eyebrow{display:none}.mission-heading p{font-size:11px;line-height:1.25}.mission-heading .objective{min-width:0;padding:4px 7px;gap:5px}.objective>span{font-size:16px}.objective small{display:none}.objective strong{font-size:10px}.network-scene{min-width:0;background:#edf7e9;border:1px solid #d8ead7;border-radius:14px;padding:8px;display:flex;flex-direction:column}.network-scene .map-heading{margin:0 0 5px;gap:5px}.network-scene .map-heading h3{font-size:13px}.network-scene .map-heading p{font-size:9px;line-height:1.2;margin:2px 0}.network-scene .map-heading>span{font-size:8px}.network-scene .branches{flex:1;min-height:110px;gap:4px 5px;padding:7px 6px 3px;align-content:stretch}.network-scene .branch{height:auto;min-height:8px;overflow:visible;transition:background-color .25s,border-color .25s}.network-scene .branch:before{background:inherit}.network-scene .branch span{display:none}.network-scene .branch[data-symbol]:after{content:'';position:absolute;left:20%;right:20%;top:30%;width:auto;height:30%;background:repeating-linear-gradient(90deg,#fff9 0 3px,transparent 3px 6px);opacity:1;text-shadow:none}.network-scene .branch[data-symbol=s]{background:#a9d5bb;border-color:#609477}.network-scene .branch[data-symbol=i]{background:#ed7569;border-color:#b63f38}.network-scene .branch[data-symbol=a]{background:#b92f43;border-color:#7f2032}.network-scene .branch[data-symbol=d]{background:#8cbad4;border-color:#457d9d}.network-scene .branch[data-symbol=r]{background:#a29bde;border-color:#665da6}.network-scene .legend{gap:3px 7px;margin:5px 0;font-size:9px}.network-scene .swatch.i{background:#ed7569}.network-scene .swatch.a{background:#b92f43}.network-scene .state-counts{font-size:10px;gap:3px}.network-scene .state-counts>*{padding:3px 5px}.network-reactions{display:flex;justify-content:space-between;gap:5px;margin-top:4px;color:#476354;font-size:10px}.network-reactions span{background:#fff;border-radius:7px;padding:3px 5px}body[data-service=slow] .network-reactions span{background:#fff0cb}body[data-service=down] .network-reactions span{background:#ffe0da;color:#92382f}@media(max-width:1000px){.topbar{gap:8px}.mission-heading{flex-basis:100%}.network-scene .branches{min-height:160px}}@media(max-width:640px){.topbar .brand{display:none}.top-title{width:100%}.missions{display:flex;width:100%}.mission{flex:1}.mission-heading{display:flex}.mission-heading .objective{margin:0}.network-scene .branches{min-height:180px}.network-scene .branch{min-height:10px}}

/* Results: clear summary first, then two equally sized, readable views. */
[hidden]{display:none!important}.results-section{margin:34px 0 44px;padding:26px;background:#e9f1e6;border:1px solid #dae6d9;border-radius:22px}.analysis-header{display:flex;justify-content:space-between;align-items:end;gap:20px}.analysis-header h2{margin:3px 0;font-size:25px;letter-spacing:-.035em}.analysis-header p{margin:0;color:#667c6d;font-size:13px}.analysis-back{font-size:12px;font-weight:700;color:#087d60;white-space:nowrap;text-decoration:none}.analysis-empty{margin-top:18px;border:1px dashed #b9cfba;border-radius:14px;background:#f6faf4;padding:22px;color:#708578;text-align:center}.results-section .results:has(.result-card){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 10px}.results-section .result-card{position:relative;min-width:0;min-height:104px;padding:15px 16px;background:#fff;border:1px solid #dce9dd;border-radius:14px;box-shadow:0 3px 12px #365b3e0a}.results-section .result-card small{font-size:10px;font-weight:800;letter-spacing:.08em;color:#768e80}.results-section .result-card strong{display:block;margin:6px 0 3px;font-size:clamp(17px,1.55vw,23px);line-height:1.15;overflow-wrap:anywhere}.results-section .result-card span{font-size:11px;color:#6e8274}.results-section .result-good{border-top:4px solid #55a77b}.results-section .result-alert{border-top:4px solid #d97865}.results-section .interpretation{margin:10px 0 16px;padding:13px 16px;background:#fff9e8;border:1px solid #f1e4ba;color:#665a3d;font-size:13px;line-height:1.5}.analysis-detail:not(:empty){background:#fff;border:1px solid #dce9dd;border-radius:14px;padding:16px;margin:12px 0;overflow:auto}.analysis-detail h3{margin:0 0 5px;font-size:16px}.analysis-detail p{color:#60766a;line-height:1.5}.analysis-detail table{border:1px solid #e7eee7}.analysis-detail th,.analysis-detail td{padding:10px 12px}.analysis-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.analysis-chart{padding:18px;min-width:0;box-shadow:none}.analysis-chart-head{display:flex;justify-content:space-between;align-items:start;gap:10px}.analysis-chart h3{margin:3px 0 0;font-size:17px;letter-spacing:-.02em}.analysis-chart>p{min-height:32px;margin:8px 0 0;color:#6e8175;font-size:12px;line-height:1.4}.chart-unit{background:#eef5ec;color:#69816f;border-radius:8px;padding:5px 8px;font-size:10px;font-weight:bold;white-space:nowrap}.analysis-chart canvas{display:block;width:100%;height:auto;max-width:100%;margin-top:8px}.analysis-chart .chart-legend{font-size:11px;line-height:1.4;gap:6px 13px;margin-top:8px}.focus-legend span:first-child{color:#946200}.focus-legend span:last-child{color:#b33c2e}.attack-analysis{grid-column:1/-1}.attack-analysis canvas{max-width:800px;margin:8px auto 0}.analysis-footnote{margin:14px 2px 0;color:#73887a;font-size:11px;line-height:1.5}@media(max-width:850px){.results-section{padding:18px}.results-section .results:has(.result-card){grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-charts{grid-template-columns:1fr}.attack-analysis{grid-column:auto}.analysis-chart>p{min-height:0}}@media(max-width:480px){.results-section{padding:14px}.analysis-header{align-items:start}.analysis-header h2{font-size:21px}.results-section .result-card{padding:12px;min-height:96px}.analysis-chart{padding:13px}.analysis-chart h3{font-size:15px}}
/* Wide, low network and graph, with the current event at the point of attention. */
.live-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.network-scene{padding:7px 10px}.network-scene .map-heading{align-items:start}.network-scene .map-heading p{max-width:none}.network-scene .branches{grid-template-columns:repeat(20,minmax(0,1fr));grid-template-rows:repeat(5,12px);min-height:0;gap:4px 5px;padding:8px 7px 4px;flex:none}.network-scene .branch{min-height:0}.network-scene .legend{margin:4px 0}.network-scene .state-counts>*{padding:2px 5px}.network-reactions{margin-top:3px}.main-chart-card{padding:10px 12px}.main-chart-card canvas{width:100%;height:auto;max-height:none;margin:3px 0}.chart-current{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:7px 0 0;padding:8px 10px;border-radius:9px;background:#e8f5e9;color:#275b43}.chart-current strong,.chart-current span{display:block}.chart-current strong{font-size:13px}.chart-current span{font-size:11px;line-height:1.35;margin-top:2px}.chart-current .button{padding:8px 10px;white-space:nowrap}.chart-event{margin:5px 0 0;font-size:11px;line-height:1.3;font-weight:700;color:#79602b}.chart-event:empty,.chart-goals:empty{display:none}.chart-goals{margin-top:4px;padding:6px 8px;background:#f1f6ed;border-radius:8px;color:#526b5a;font-size:11px;line-height:1.35}body[data-service=slow] .chart-current{background:#fff0c9;color:#765212}body[data-service=down] .chart-current{background:#ffe4df;color:#8c2e2d}body[data-external=on] .chart-current{box-shadow:inset 0 0 0 2px #a85ba8}body[data-service=down] .chart-event{color:#a03531}@media(max-width:640px){.network-scene .branches{grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,11px);min-height:0}.chart-current{align-items:start}.chart-current strong{font-size:12px}.chart-current span{font-size:10px}}@media(min-width:1001px) and (max-height:800px){.main-chart-card canvas{max-height:none}.network-scene .branches{grid-template-rows:repeat(5,10px)}.chart-current{padding:6px 8px}.main-chart-card{padding:7px 10px}}
/* Keep the process visible before the compact network and graph. */
.topbar{flex-wrap:nowrap;gap:12px}.topbar .brand{flex:none}.top-title{flex:none}.missions{flex:none}.mission{white-space:nowrap}.mission-heading{flex:0 0 auto;min-width:0;margin-left:auto;padding:0}.mission-heading>div:first-child{display:none}.mission-heading .objective{white-space:nowrap;background:#e5f1e2}.objective br{display:none}.objective strong+br+strong:before{content:' · ';color:#76917d}.mission-brief{margin:5px 0;color:#61776a;font-size:12px;line-height:1.35}.live-panel>.cause-chain{margin:8px 0 3px}.live-panel>.chain-caption{margin:0 0 4px}.live-panel>.measure-impact:not(:empty){margin:4px 0 6px;padding:6px 8px}.main-chart-card canvas{width:100%;height:auto;max-height:none}.main-chart-legend{font-size:10px;line-height:1.35;overflow-wrap:anywhere}.chart-current{margin-top:4px;padding:6px 8px}.chart-goals{padding:4px 7px}.network-scene .branches{grid-template-rows:repeat(5,9px)}.network-scene .map-heading p{line-height:1.15}.network-reactions{font-size:9px}@media(max-width:1050px){.topbar{flex-wrap:wrap}.topbar .mission-heading{flex:0 0 auto;margin-left:auto}.mission-brief{font-size:12px}}@media(max-width:640px){.topbar{gap:7px}.topbar .top-title{width:auto;flex:1}.topbar .missions{width:100%;order:3}.topbar .mission-heading{order:2;margin-left:auto}.topbar .objective{font-size:10px}.network-scene .branches{grid-template-rows:repeat(10,10px)}.main-chart-legend{font-size:10px}}
/* The live network and the stopped-at-failure graph share one row. */
.live-overview{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}.network-scene{height:100%}.chart-range{margin:4px 1px 0;color:#6d8174;font-size:10px;line-height:1.3}.live-panel>.timeline-head{margin-top:8px}.live-panel>.playback{margin-top:5px}.live-panel>.time-ends{height:11px}.full-traffic{grid-column:1/-1}.full-traffic canvas{max-width:850px;margin:8px auto 0}@media(max-width:640px){.live-overview{grid-template-columns:1fr}.network-scene{height:auto}.full-traffic{grid-column:auto}}
/* Review: balance the network and readable chart; stack only when the panel is narrow. */
.live-panel{container-type:inline-size}.live-overview{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start}.network-scene{height:auto}.network-scene .branches{width:100%;max-width:340px;align-self:center;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,minmax(12px,1fr));min-height:158px;gap:4px 6px}.network-scene .branch{min-height:12px}.network-scene .state-counts{gap:4px 6px;margin-top:6px;line-height:1.3}.network-scene .state-counts>*{font-size:10px}.network-scene .state-counts>span:nth-child(2):before{content:none}.network-scene .state-counts>span:nth-child(2){background:#ffebe5;color:#873a34;box-shadow:inset 0 0 0 1px #e8a499}.main-chart-card canvas{width:100%;height:auto;max-height:none}.chart-help{margin-top:5px;color:#597166;font-size:10px}.chart-help summary{display:inline-block;cursor:pointer;font-weight:700;color:#267456}.chart-help summary:focus-visible{outline:3px solid #efaa3d;outline-offset:2px}.chart-range{margin:5px 0 0}.chart-full-link{text-decoration:none;white-space:nowrap;flex:none}.time-marker-label[hidden]{display:none}@container (max-width:720px){.live-overview{grid-template-columns:1fr}.network-scene .branches{max-width:340px}.main-chart-card canvas{max-width:600px;margin-left:auto;margin-right:auto}}@media(max-width:640px){.network-scene .branches{grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,12px);min-height:158px}}
/* Clear assignment, compact independent details, optional technical explanation. */
.task-steps{background:#e7f3e6;border:1px solid #cbdcca;border-left:4px solid #158061;padding:10px 12px;margin:9px 0 10px;font-size:12px;color:#345d47}.task-steps>strong{display:block;font-size:12px;color:#075846}.task-steps ol{margin:6px 0 0;padding-left:20px}.task-steps li+li{margin-top:4px}.hint:empty{display:none}.measure-choice{padding-right:36px;padding-bottom:8px;min-height:52px}.measure-details{padding:0}.measure-details summary{position:absolute;right:3px;top:3px;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#edf5ed;color:#226d4e;font-size:20px;line-height:1;list-style:none}.measure-details summary:hover{background:#d9ecda}.measure-details summary span{display:none}.measure-details summary:after{content:'+';font-size:20px;font-weight:400}.measure-details[open] summary:after{content:'−'}.measure-details p{margin:0;padding:0 10px 10px 32px;font-size:11px}.load-details{margin:10px 0;padding:10px 12px;border:1px solid #dce8dc;border-radius:11px;background:#f7faf5;color:#536e5d;font-size:12px}.load-details>summary{cursor:pointer;font-weight:700;color:#246d4d}.load-details>summary:focus-visible{outline:3px solid #efaa3d;outline-offset:3px}.load-details>p{line-height:1.45}.load-details .mission-quick{padding:0}.load-details .service-bar{padding:7px 0}.load-details .event-note{font-size:11px}body[data-mission="1"] .scenario-only{display:none}.external-control{margin:8px 0}[hidden]{display:none!important}@media(pointer:coarse){.measure-details summary{width:40px;height:40px}.measure-choice{padding-right:44px;min-height:55px}}
/* The line keys show comparison directly, including when curves coincide. */
.plot-keys,.plot-thresholds{display:flex;flex-wrap:wrap;gap:4px 15px;align-items:center}.plot-keys{margin:3px 0;color:#40574b;font-weight:700}.plot-thresholds{color:#657b6c;font-size:10px}.plot-key{display:inline-block;width:24px;height:0;vertical-align:3px;margin-right:5px;border-top:3px solid #c13f35}.plot-key.reference-key{border-top:3px dashed #265a83}.plot-note{color:#6b7d6e;margin-top:3px;font-size:10px}

/* Подготовка и наблюдение занимают последовательные строки. */
.workspace { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.controls-panel, .live-panel { padding: 14px 18px; min-width: 0; }
.controls-panel { grid-row: 1; }
.live-panel { grid-row: 2; }

.assignment { overflow: hidden; border-radius: 12px; background: #eaf3ec; }
.assignment summary {
  list-style: none;
  padding: 10px 14px;
  background: #124d40;
  color: white;
  cursor: pointer;
}
.assignment summary::-webkit-details-marker { display: none; }
.assignment summary:focus-visible { outline: 3px solid #ffbf50; outline-offset: -3px; }
.assignment h2 {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  font-size: 21px;
  line-height: 1.25;
}
#measures-title { white-space: nowrap; }
.assignment-goal { font-size: 14px; font-weight: 500; color: #f1fff5; }
.assignment-toggle { margin-left: auto; white-space: nowrap; font-size: 13px; font-weight: 600; }
.assignment-toggle::after { display: inline-block; margin-left: 7px; content: '▾'; }
.assignment[open] .assignment-toggle::after { transform: rotate(180deg); }
.assignment-body { padding: 10px 14px; color: #263e31; }
.assignment-body .mission-brief { margin: 0 0 4px; color: inherit; }
.assignment .task-steps {
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  font-size: 14px;
  color: inherit;
}
.assignment .task-steps strong { font-size: inherit; }
.assignment .task-steps ol { margin: 4px 0 0; }
.controls-panel .measures {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: start;
  gap: 6px;
  margin: 9px 0;
}
.controls-panel .measure { border-color: #c7d6ca; }
.controls-panel .measure:has(input:checked) {
  border-color: #247357;
  background: #e5f4e9;
  box-shadow: inset 0 0 0 1px #247357;
}
.controls-panel .measure-choice {
  grid-template-columns: 16px minmax(0, 1fr);
  grid-template-rows: minmax(2.4em, auto) 20px;
  align-items: start;
  gap: 3px;
  padding: 7px 9px 8px;
  font-size: 13px;
}
.measure-choice input { grid-column: 1; grid-row: 1; align-self: center; width: 16px; height: 16px; margin: 0; }
.measure-choice .measure-name { grid-column: 2; grid-row: 1; align-self: center; overflow-wrap: anywhere; font-size: inherit; line-height: 1.2; }
.measure-choice .price { grid-column: 1 / -1; margin: 0; align-self: center; font-size: 12px; }
.measure-details summary { width: 24px; height: 24px; right: 4px; top: 40px; }
.measure-details p { padding: 2px 8px 9px; font-size: 12px; color: #354d41; }
.forecast-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-bottom: 9px;
}
.forecast-controls .budget-box {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 3px 12px;
  margin: 0;
  padding: 6px 10px;
}
.budget-box > div { display: flex; align-items: baseline; gap: 6px; }
.forecast-controls .budget-box small { font-size: 12px; color: #384e40; letter-spacing: 0; }
.forecast-controls .budget-box strong { font-size: 15px; white-space: nowrap; }
.forecast-controls .budget-box > span { font-size: 12px; color: #405b49; }
.forecast-controls .action-row { margin: 0; gap: 6px; }
.forecast-controls .button { flex: none; padding: 7px 12px; }
.controls-panel .hint:not(:empty) { margin: 4px 0 7px; padding: 5px 9px; }
.chain-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; }
.chain-heading strong { color: #254f3d; font-size: 13px; }
.chain-heading span, .controls-panel .chain-caption { color: #52675b; font-size: 11px; }
.controls-panel .cause-chain { margin: 4px 0; }
.controls-panel .cause-chain > div { padding: 3px 4px; }
.controls-panel .chain-caption { margin: 0; }
.controls-panel .cause-chain small, .controls-panel .impact-chip { color: #4a6353; }
.live-overview { gap: 12px; align-items: start; }
@media (min-width: 1001px) {
  .live-panel > .section-heading > div,
  .main-chart-heading > div,
  .chart-current > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; }
}
.network-scene .map-heading p { font-size: 11px; line-height: 1.3; }
.main-chart-legend, .chart-help { font-size: 11px; }

@media (max-width: 1130px) {
  .controls-panel .measures { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 840px) {
  .assignment h2 { display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; }
  .assignment-goal { grid-column: 1 / -1; grid-row: 2; }
  .assignment-toggle { grid-column: 2; grid-row: 1; }
}
@media (max-width: 640px) {
  .controls-panel, .live-panel { padding: 10px; }
  .controls-panel .measures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assignment h2 { font-size: 19px; }
  .assignment summary { padding: 9px 10px; }
  .forecast-controls { gap: 6px; }
  .forecast-controls .button { padding: 8px; }
  .forecast-controls .budget-box { gap: 2px 8px; }
  .topbar .mission-heading { max-width: 100%; }
  .topbar .objective { white-space: normal; }
}

/* Все меры в одном ряду; прокрутка доступна на узком экране. */
.controls-panel .measures{display:grid;grid-template-columns:repeat(8,minmax(145px,1fr));overflow-x:auto;align-items:stretch;gap:6px;padding:2px 2px 8px}
.controls-panel .measure{min-width:145px;border:1px solid #94b4a0;background:#fff}
.controls-panel .measure-choice{min-height:75px;grid-template-columns:18px minmax(0,1fr);grid-template-rows:minmax(34px,auto) 23px;gap:3px 5px;padding:7px 31px 7px 7px}
.controls-panel .measure-name{font-size:13px;line-height:1.15;overflow-wrap:normal}
.controls-panel .measure .price{font-size:14px;font-weight:800;color:#064c37;white-space:nowrap}
.controls-panel .measure-details summary{top:7px;right:5px;bottom:auto;width:25px;height:25px;background:#d3e9d9;color:#064c37;font-size:20px}
.forecast-controls .budget-box{background:#d4ead9;border:2px solid #347b58;padding:7px 12px}
.forecast-controls .budget-box small{font-size:13px;font-weight:800;color:#143c2b}
.forecast-controls .budget-box strong{font-size:20px;font-weight:900;color:#073c2b}
.forecast-controls .budget-box>span{font-size:13px;font-weight:700;color:#214d36}
.forecast-controls #run{background:#00633f;color:#fff;border:2px solid #00452d;font-size:14px;font-weight:800;padding:10px 18px;opacity:1}
.forecast-controls #run:hover{background:#004e32}
.controls-panel .measure-choice{padding-right:7px}
.controls-panel .measure .price{padding-right:28px}
.controls-panel .measure-details summary{top:44px;right:5px}

/* Компактный ряд мер и игровой индикатор бюджета. */
.controls-panel .measures{grid-template-columns:repeat(8,minmax(0,1fr));overflow-x:visible;gap:5px}
.controls-panel .measure{min-width:0}
.controls-panel .measure-choice{min-height:70px;padding:6px;grid-template-columns:15px minmax(0,1fr);grid-template-rows:minmax(30px,auto) 20px;gap:2px 4px}
.controls-panel .measure-name{font-size:10px;line-height:1.12;overflow-wrap:normal}
.controls-panel .measure .price{font-size:12px;padding-right:23px;letter-spacing:-.03em}
.controls-panel .measure-details summary{top:39px;right:4px;width:22px;height:22px}
.forecast-controls{display:flex;align-items:center;gap:8px 12px}
.forecast-controls .budget-box{display:flex;align-items:center;flex:0 1 400px;min-width:300px;gap:9px;background:#e5f3df;border:1px solid #82b38e;border-radius:12px;padding:7px 10px}
.budget-icon{display:grid;place-items:center;flex:none;width:35px;height:35px;border-radius:50%;background:#f8d06c;border:2px solid #bb841b;color:#6b4810;font-weight:900;font-size:21px}
.budget-info{flex:1;min-width:0;display:block!important}
.budget-values{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:12px;color:#28503a}
.budget-values strong{font-size:13px!important;color:#0a4e34!important;white-space:nowrap}
#budget-meter{display:block;width:100%;height:9px;margin-top:4px;appearance:none;border:0;border-radius:8px;overflow:hidden;background:#c7ddc9}
#budget-meter::-webkit-progress-bar{background:#c7ddc9;border-radius:8px} #budget-meter::-webkit-progress-value{background:#19965f;border-radius:8px;transition:width .2s}
#budget-meter::-moz-progress-bar{background:#19965f;border-radius:8px}
.budget-box.over-budget{background:#fff0e9;border-color:#c15335}.budget-box.over-budget .budget-values strong{color:#a22f20!important}
.forecast-time{flex:1 1 220px;min-width:180px;max-width:300px}
.forecast-time .timeline-head{margin:0;font-size:11px}.forecast-time .timeline-wrap input{display:block;margin:2px 0}.forecast-time .time-ends{font-size:10px}.forecast-time .playback{margin:0}.forecast-time .playback label{font-size:11px}.forecast-time .playback select{padding:2px}
@media(max-width:1000px){.controls-panel .measures{grid-template-columns:repeat(8,minmax(115px,1fr));overflow-x:auto}}

/* Панель прогноза */
.controls-panel .forecast-controls {
  display: grid;
  grid-template-columns: minmax(240px, .9fr) auto minmax(230px, 1.2fr);
  align-items: center;
  gap: 12px 20px;
  margin: 8px 0 12px;
  padding: 10px 14px;
  background: #ecf4f1;
  border: 1px solid #bcd6ce;
  border-radius: 12px;
}
.forecast-controls .budget-box {
  min-width: 0;
  flex-wrap: nowrap;
  margin: 0;
  padding: 4px 0;
  border: none;
  background: transparent;
}
.forecast-controls .budget-box.over-budget { background: #fff0e9; }
.forecast-controls .budget-icon {
  width: 30px;
  height: 30px;
  background: #fce2aa;
  border: 1px solid #d4ac5e;
  color: #76521a;
  font-size: 16px;
}
.forecast-controls .budget-values { flex-wrap: wrap; gap: 2px 8px; }
.forecast-controls .budget-values strong { display: inline; }
.forecast-controls #budget-meter { height: 5px; margin-top: 6px; }
.forecast-controls #budget-meter::-webkit-progress-value { background: #448c79; }
.forecast-controls #budget-meter::-moz-progress-bar { background: #448c79; }
.forecast-controls #run {
  padding: 10px 16px;
  border: 1px solid #19574f;
  background: #21675d;
}
.forecast-controls #run:hover { background: #154e47; }
.forecast-controls .forecast-time {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  max-width: none;
  border-left: 1px solid #c1d8d0;
  padding-left: 18px;
}
.forecast-track { flex: 1; min-width: 0; }
.forecast-track .timeline-head { color: #264e47; font-size: 12px; }
.forecast-track .timeline-wrap input { accent-color: #267469; height: 17px; }
.forecast-track .time-ends, .forecast-controls .playback label { color: #4c6861; }
.forecast-controls .playback label { font-weight: 600; }
.forecast-controls .playback select { padding: 4px; border-color: #adc9bf; }
.controls-panel .cause-chain .chain-icon { display: block; margin: 2px auto 4px; }
@media (max-width: 900px) {
  .controls-panel .forecast-controls { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; }
  .forecast-controls .forecast-time { grid-column: 1 / -1; border: 0; border-top: 1px solid #c1d8d0; padding: 6px 0 0; }
}
@media (max-width: 520px) {
  .controls-panel .forecast-controls { grid-template-columns: minmax(0, 1fr); }
  .forecast-controls #run { width: 100%; }
}
.forecast-controls .bonus { display:flex; align-items:center; gap:7px; margin-top:5px; color:#27574b; font-size:11px; font-weight:700; line-height:1.2; }
.developer-avatar { flex:none; width:31px; height:31px; }
.bonus-worry { display:none; }
.bonus[data-mood="worried"] { color:#a13d30; }
.bonus[data-mood="worried"] .bonus-smile { display:none; }
.bonus[data-mood="worried"] .bonus-worry { display:block; }
.bonus[data-mood="happy"] { color:#09623e; }
.assignment-goal .goal-protect { color:#f3fff7; }
.assignment-goal .goal-bonus { color:#ffdc88; font-weight:700; }
.forecast-controls .bonus { position:relative; min-height:56px; padding:5px 8px 5px 70px; background:#e0efe8; border-radius:10px; }
.forecast-controls .developer-avatar { position:absolute; left:5px; bottom:0; width:59px; height:59px; }
.forecast-controls .bonus[data-mood="worried"] { background:#fae9df; }
.forecast-controls .bonus[data-mood="happy"] { background:#d9efdd; }
.seed-control { display:flex; align-items:center; gap:5px; }
.forecast-controls .seed-control input { width:68px; padding:4px 5px; border:1px solid #adc9bf; border-radius:7px; color:#203634; background:#fff; }
.seed-comparison { margin:6px 0; padding:8px 10px; border-radius:8px; background:#e7f0f5; color:#284b61; font-size:12px; }
.bonus-joy,.bonus-tears { display:none; }
.bonus[data-mood="happy"] .bonus-smile { display:none; }
.bonus[data-mood="happy"] .bonus-joy,.bonus[data-mood="worried"] .bonus-tears { display:block; }
.forecast-controls .forecast-time .playback { flex-wrap:wrap; justify-content:flex-end; }
/* Бюджет и управление прогнозом */
.controls-panel .forecast-controls {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 20px;
  padding: 12px 16px;
  background: #f1f7f4;
}
.forecast-controls .budget-box { display:block; padding:0; }
.forecast-controls .budget-icon { display:none; }
.forecast-controls .budget-info { display:grid !important; grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr); column-gap:20px; align-items:center; }
.forecast-controls .budget-values { grid-column:1; grid-row:1; font-size:12px; }
.forecast-controls .budget-values strong { font-size:14px !important; }
.forecast-controls #budget-meter { grid-column:1; grid-row:2; align-self:start; margin:5px 0 0; height:6px; }
.forecast-controls .bonus { grid-column:2; grid-row:1 / 3; min-height:56px; margin:0; padding-left:68px; font-size:12px; }
.forecast-controls #run { min-height:46px; padding:10px 18px; white-space:nowrap; }
.forecast-controls .forecast-time { grid-column:1 / -1; display:flex; border-left:0; border-top:1px solid #c6ddd4; padding:10px 0 0; gap:18px; }
.forecast-controls .forecast-track { flex:1; }
.forecast-controls .playback { flex:none; gap:12px; }
.forecast-controls .playback label { font-size:12px; }
@media (max-width: 900px) {
  .forecast-controls .budget-info { grid-template-columns:minmax(160px,1fr) minmax(200px,1fr); }
}
@media (max-width: 640px) {
  .controls-panel .forecast-controls { grid-template-columns:minmax(0,1fr); }
  .forecast-controls .budget-info { grid-template-columns:minmax(0,1fr); gap:6px; }
  .forecast-controls .budget-values,.forecast-controls #budget-meter,.forecast-controls .bonus { grid-column:1; grid-row:auto; }
  .forecast-controls .forecast-time { grid-column:1; flex-wrap:wrap; }
  .forecast-controls .forecast-track { flex-basis:100%; }
  .forecast-controls .playback { width:100%; justify-content:space-between; }
  .forecast-controls #run { width:100%; }
}
/* Компактная панель прогноза */
@media (min-width: 1001px) {
  .controls-panel .forecast-controls { grid-template-columns: minmax(290px, 1fr) auto minmax(320px, 1.15fr); gap: 10px; padding: 6px 10px; }
  .forecast-controls .budget-info { grid-template-columns: minmax(145px, 1fr) minmax(150px, .9fr); gap: 8px; }
  .forecast-controls .bonus { min-height: 39px; padding: 4px 5px 4px 46px; font-size: 10px; }
  .forecast-controls .developer-avatar { width: 40px; height: 40px; left: 3px; }
  .forecast-controls .budget-values { font-size: 11px; }
  .forecast-controls .budget-values strong { font-size: 12px !important; }
  .forecast-controls #run { min-height: 38px; padding: 7px 10px; font-size: 12px; }
  .forecast-controls .forecast-time { grid-column: auto; border-top: 0; border-left: 1px solid #c6ddd4; padding: 0 0 0 10px; gap: 8px; }
  .forecast-controls .playback { gap: 6px; }
  .forecast-controls .playback label { font-size: 10px; }
  .forecast-controls .seed-control input { width: 54px; }
}
.bonus-money { display:none; position:absolute; left:3px; top:-5px; width:42px; height:50px; overflow:hidden; pointer-events:none; }
.bonus[data-mood="happy"] .bonus-money { display:block; }
.bonus-money i { position:absolute; top:-14px; color:#b47c0f; font-size:13px; font-style:normal; font-weight:900; animation:bonus-fall 1.5s linear infinite; }
.bonus-money i:nth-child(1) { left:2px; animation-delay:-.3s; }
.bonus-money i:nth-child(2) { left:12px; animation-delay:-1.1s; }
.bonus-money i:nth-child(3) { left:25px; animation-delay:-.7s; }
.bonus-money i:nth-child(4) { left:34px; animation-delay:-1.4s; }
@keyframes bonus-fall { 0% { transform:translateY(0) rotate(-20deg); opacity:0; } 15% { opacity:1; } 85% { opacity:1; } 100% { transform:translateY(60px) rotate(35deg); opacity:0; } }
@media (prefers-reduced-motion: reduce) { .bonus-money i { animation:none; top:0; } .bonus-money i:nth-child(2) { top:13px; } .bonus-money i:nth-child(3) { top:25px; } .bonus-money i:nth-child(4) { top:8px; } }
.forecast-controls .seed-control input { width:85px; padding:0; accent-color:#267469; }
.seed-control output { min-width:31px; white-space:nowrap; }
.budget-values span, .budget-values strong, #bonus-text { white-space:nowrap; }
.bonus-money i:nth-child(5) { left:7px; animation-delay:-.85s; }
.bonus-money i:nth-child(6) { left:17px; animation-delay:-.15s; }
.bonus-money i:nth-child(7) { left:29px; animation-delay:-1.25s; }
.bonus-money i:nth-child(8) { left:37px; animation-delay:-.55s; }
.bonus[data-rain="light"] .bonus-money i:nth-child(n+2),
.bonus[data-rain="medium"] .bonus-money i:nth-child(n+5) { display:none; }
@media (prefers-reduced-motion: reduce) {
  .bonus-money i:nth-child(5) { top:19px; }
  .bonus-money i:nth-child(6) { top:31px; }
  .bonus-money i:nth-child(7) { top:4px; }
  .bonus-money i:nth-child(8) { top:18px; }
}
.forecast-controls #bonus-text { display:block; min-width:0; white-space:normal; overflow-wrap:anywhere; line-height:1.2; }
.forecast-controls .bonus { min-width:0; }
.forecast-controls .seed-control input[type="range"] { width:65px; padding:0; border:0; background:transparent; }
.forecast-controls .seed-control input[type="number"] { width:52px; padding:3px 4px; border:1px solid #adc9bf; border-radius:7px; background:#fff; }
.seed-control { flex-wrap:wrap; }
.forecast-controls .seed-control { font-size:10px; font-weight:600; gap:4px; }
.forecast-controls .seed-control input[type="number"] { font-size:11px; width:44px; height:23px; padding:2px 3px; }
.forecast-controls .seed-control { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.forecast-controls .control-label { display:block; font-size:11px; font-weight:700; line-height:1.2; color:#264e47; white-space:nowrap; }
.seed-inputs { display:flex; align-items:center; gap:4px; }
.forecast-controls .speed-control { display:flex; flex-direction:column; align-items:flex-start; gap:2px; margin:0; }
.forecast-controls .playback { align-items:flex-start; }
/* Заголовки и ширина элементов прогнозирования */
@media (min-width:1001px) {
  .forecast-controls .forecast-time { display:grid; grid-template-columns:minmax(100px,1fr) minmax(155px,1fr) 56px; align-items:start; gap:10px; }
  .forecast-controls .playback { display:contents; }
  .forecast-controls .forecast-track, .forecast-controls .seed-control, .forecast-controls .speed-control { min-width:0; }
  .forecast-controls .timeline-head, .forecast-controls .control-label { height:14px; font-size:11px; font-weight:700; line-height:14px; }
  .forecast-controls .seed-inputs { width:100%; height:23px; }
  .forecast-controls .seed-control input[type="range"] { flex:1; width:0; min-width:40px; }
  .forecast-controls .speed-control select { height:23px; padding:1px 3px; }
}
.topbar .mission-heading > .objective { display:flex; }
/* Разделитель между бюджетом и управлением прогнозом */
@media (min-width:1001px) {
  .forecast-controls .action-row { border-left:1px solid #c6ddd4; padding-left:10px; }
  .forecast-controls .forecast-time { border-left:0; padding-left:0; }
}
.forecast-controls #bonus-text { white-space:normal; overflow-wrap:normal; word-break:normal; }
.forecast-controls .bonus-amount { display:inline-block; white-space:nowrap; }
.forecast-controls #budget-meter { display:none; }

.research-table { overflow-x:auto; }


.research-notes { margin: 10px 0; }
.research-notes summary { cursor:pointer; font-weight:700; }
.research-notes table { min-width:720px; width:100%; }
.research-notes textarea { width:100%; min-width:120px; resize:vertical; font:inherit; }

.controls-panel .measure.enhanced { border-color:#b56b12; background:#fff3da; }
.measure-level { display:flex; align-items:center; gap:3px; padding:0 6px 6px; color:#31594a; font-size:10px; }
.measure-level select { width:100%; min-width:0; padding:2px; border:1px solid #a4bfae; border-radius:5px; background:#f2f8f2; color:#24513e; font-size:11px; }
.measure.enhanced .measure-level, .measure.enhanced .price { color:#8d4b00; }
.measure.enhanced .measure-level select { border-color:#d18d31; background:#ffe4a9; color:#713c00; font-weight:700; }

.measure-level { display:block; min-width:0; margin:0 4px 5px; padding:0; border:0; }
.measure-level legend { padding:0; font-size:10px; color:#426555; }
.measure-level label { display:flex; align-items:flex-start; gap:3px; padding:3px; border-radius:5px; font-size:10px; line-height:1.15; }
.measure-level input { width:13px; height:13px; margin:0; flex:none; }
.measure-level span, .measure-level b { display:block; }
.measure-level b { white-space:nowrap; }
.measure-level .enhanced-option { background:#fff0d0; color:#7b4600; }
.controls-panel .measure:has(.measure-level) .measure-choice { min-height:38px; grid-template-rows:auto; }

/* Два уровня одной меры: одинаковая структура и видимые цены. */
.measure-level { margin:2px 6px 7px; }
.measure-level legend { margin-bottom:3px; color:#597164; font-size:10px; }
.measure-level label { display:flex; align-items:center; gap:5px; min-height:39px; padding:5px; border:1px solid #dbe8dc; border-radius:7px; background:#f7faf6; color:#284c3c; }
.measure-level label + label { margin-top:4px; }
.measure-level label:has(input:checked) { border-color:#46946c; background:#e8f5e9; }
.measure-level label.enhanced-option { border-color:#efd7a9; background:#fff7e8; color:#754d17; }
.measure-level label.enhanced-option:has(input:checked) { border-color:#c4872a; background:#ffedca; }
.measure-level input { accent-color:#197b57; }
.measure-level span { display:block; min-width:0; }
.measure-level strong, .measure-level b { display:block; font-size:10px; line-height:1.2; }
.measure-level b { margin-top:2px; font-weight:700; }

/* Карточки защиты */
.controls-panel .measures {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  overflow:visible;
  padding:3px 1px 8px;
}
.controls-panel .measure {
  min-width:0;
  position:relative;
  border:1px solid #d3e3d8;
  border-radius:14px;
  background:#fbfdfb;
  box-shadow:0 2px 6px rgba(25,76,50,.04);
  transition:border-color .18s, box-shadow .18s, background .18s;
}
.controls-panel .measure:hover { border-color:#8ab9a0; box-shadow:0 4px 12px rgba(25,76,50,.09); }
.controls-panel .measure:has(.measure-choice input:checked) { border-color:#57a67b; background:#f1faf3; }
.controls-panel .measure.enhanced { border-color:#d5a352; background:#fffaf0; }
.controls-panel .measure-choice,
.controls-panel .measure:has(.measure-level) .measure-choice {
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:start;
  min-height:78px;
  gap:7px 8px;
  padding:14px 39px 12px 13px;
}
.controls-panel .measure-choice input { grid-column:1; grid-row:1; width:17px; height:17px; margin:0; accent-color:#14805d; }
.controls-panel .measure-name { grid-column:2; grid-row:1; color:#203f31; font-size:13px; line-height:1.25; font-weight:700; overflow-wrap:anywhere; }
.controls-panel .measure .price { grid-column:2; grid-row:2; padding:0; color:#08734f; font-size:14px; letter-spacing:0; white-space:nowrap; }
.controls-panel .has-levels .measure-choice { min-height:55px !important; padding-bottom:7px; }
.controls-panel .measure-details summary {
  top:10px; right:10px; display:grid; place-items:center;
  width:25px; height:25px; border-radius:50%; background:#e8f3eb;
  color:#35775a; font-size:18px;
}
.controls-panel .measure-details summary:hover { background:#d8ebde; }
.controls-panel .measure-details p { padding:7px 13px 13px; color:#536c5e; font-size:12px; line-height:1.4; }
.controls-panel .measure-level { margin:0 9px 10px; padding:0; border:0; }
.controls-panel .measure-level legend { padding:0 0 5px 3px; color:#789083; font-size:10px; font-weight:700; }
.controls-panel .measure-level label {
  display:grid; grid-template-columns:15px minmax(0,1fr); align-items:center;
  gap:6px; min-height:0; margin:0; padding:7px 8px;
  border:1px solid #e0ebe2; border-radius:8px; background:#fff; color:#365747;
  cursor:pointer;
}
.controls-panel .measure-level label + label { margin-top:5px; }
.controls-panel .measure-level label:has(input:checked) { border-color:#62a981; background:#e9f6ec; }
.controls-panel .measure-level label.enhanced-option { border-color:#eee2cb; background:#fffdf8; color:#75582b; }
.controls-panel .measure-level label.enhanced-option:has(input:checked) { border-color:#d5a352; background:#fff1d5; }
.controls-panel .measure-level input { width:14px; height:14px; margin:0; accent-color:#16805c; }
.controls-panel .measure-level span { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:2px 5px; }
.controls-panel .measure-level strong { font-size:11px; line-height:1.2; }
.controls-panel .measure-level b { margin:0; font-size:11px; line-height:1.2; white-space:nowrap; }
@media(max-width:1000px) { .controls-panel .measures { grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; } }
@media(max-width:420px) { .controls-panel .measures { grid-template-columns:1fr; } }

/* Компактные карточки: все восемь мер видны одновременно на широком экране. */
.controls-panel .measures { grid-template-columns:repeat(8,minmax(0,1fr)); gap:5px; padding:2px 0 5px; }
.controls-panel .measure { border-radius:9px; box-shadow:none; }
.controls-panel .measure-choice,
.controls-panel .measure:has(.measure-level) .measure-choice {
  grid-template-columns:15px minmax(0,1fr); gap:3px 4px;
  min-height:65px; padding:7px 24px 5px 6px;
}
.controls-panel .measure-choice input { width:14px; height:14px; }
.controls-panel .measure-name { font-size:11px; line-height:1.15; }
.controls-panel .measure .price { font-size:11px; }
.controls-panel .has-levels .measure-choice { min-height:43px !important; padding-bottom:3px; }
.controls-panel .measure-details summary { top:6px; right:5px; width:19px; height:19px; }
.controls-panel .measure-details summary:after { font-size:16px; }
.controls-panel .measure-details p { padding:5px 7px 8px; font-size:11px; }
.controls-panel .measure-level { margin:0 5px 5px; }
.controls-panel .measure-level legend { padding:0 0 2px; font-size:9px; }
.controls-panel .measure-level label { grid-template-columns:12px minmax(0,1fr); gap:3px; padding:3px; border-radius:5px; }
.controls-panel .measure-level label + label { margin-top:3px; }
.controls-panel .measure-level input { width:12px; height:12px; }
.controls-panel .measure-level span { display:block; }
.controls-panel .measure-level strong, .controls-panel .measure-level b { display:block; font-size:10px; line-height:1.1; }
.controls-panel .measure-level b { margin-top:1px; }
.seed-slider { width:115px; max-width:100%; }
.forecast-controls .seed-control .seed-slider input[type="range"] { display:block; width:100%; min-width:0; margin:0; }
.seed-scale { display:flex; justify-content:space-between; align-items:center; color:#6b8277; font-size:10px; line-height:1.2; }
.seed-scale output { min-width:0; color:#075846; font-size:11px; font-weight:700; }
@media(max-width:1100px) { .controls-panel .measures { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:600px) { .controls-panel .measures { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.scenario-guide { margin-top:14px; overflow:hidden; }
.scenario-guide > summary { display:flex; align-items:center; gap:12px; padding:10px 15px; cursor:pointer; color:#075846; font-weight:800; list-style:none; }
.scenario-guide > summary::before { content:'▸'; color:#16805c; }
.scenario-guide[open] > summary::before { content:'▾'; }
.scenario-guide summary small { color:#668277; font-size:11px; font-weight:400; }
.scenario-guide-body { padding:0 16px 12px; font-size:12px; color:#345346; }
.scenario-guide-body p { margin:7px 0; }
.scenario-guide-body ol { margin:8px 0; padding-left:20px; }
.scenario-guide-body li { margin:6px 0; }
@media(min-width:1101px) {
  .controls-panel .measures { grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,auto)); grid-auto-flow:row dense; align-items:stretch; }
  .controls-panel .measure:nth-child(2) { grid-column:1; grid-row:1 / span 2; }
  .controls-panel .measure:nth-child(4) { grid-column:2; grid-row:1 / span 2; }
  .controls-panel .measure:not(.has-levels) .measure-choice { min-height:58px; }
}

/* Значок справки остаётся вопросительным и в открытом состоянии. */
.controls-panel .measure-details summary:after,
.controls-panel .measure-details[open] summary:after { content:"?"; font-size:14px; font-weight:700; }

/* Сценарии открываются из шапки, не занимая отдельную строку. */
.topbar .scenario-guide { position:relative; flex:none; margin:0; overflow:visible; }
.topbar .scenario-guide > summary { display:flex; align-items:center; padding:9px 13px; border:1px solid #b9d4c0; border-radius:9px; background:#f3f9f1; color:#075846; font-size:12px; white-space:nowrap; }
.topbar .scenario-guide > summary:hover { background:#e3f2e5; }
.topbar .scenario-guide-body { position:absolute; z-index:20; top:calc(100% + 7px); right:0; width:min(600px,90vw); max-height:70vh; overflow:auto; padding:12px 17px; border:1px solid #c9ddce; border-radius:12px; background:#fff; box-shadow:0 12px 32px #173b2b2b; }
@media(max-width:640px) { .topbar .scenario-guide { order:2; } .topbar .scenario-guide > summary { font-size:11px; padding:7px 9px; } .topbar .scenario-guide-body { position:fixed; top:70px; left:5vw; right:5vw; width:auto; } }

/* Компактные строки названия и цены; справка закреплена в углу. */
.controls-panel .measure:not(.has-levels) .measure-choice {
  display:flex; align-items:center; gap:4px; min-height:50px;
  padding:7px 25px 7px 6px;
}
.controls-panel .measure:not(.has-levels) .measure-choice input { flex:0 0 14px; }
.controls-panel .measure:not(.has-levels) .measure-name {
  flex:1 1 auto; min-width:0; font-size:10px; line-height:1.1; overflow-wrap:normal;
}
.controls-panel .measure:not(.has-levels) .price {
  flex:0 0 auto; font-size:10px; white-space:nowrap;
}
.controls-panel .measure-level span { display:flex; flex-wrap:nowrap; align-items:baseline; justify-content:space-between; min-width:0; gap:3px; }
.controls-panel .measure-level strong, .controls-panel .measure-level b { display:inline; margin:0; font-size:9px; white-space:nowrap; }
.controls-panel .measure-details summary { position:absolute; top:6px; right:5px; }

/* Закладка примыкает к белой панели; фон верхней шапки исходный. */
.controls-panel { position:relative; }
.controls-panel .scenario-guide { position:absolute; z-index:25; top:0; right:0; margin:0; overflow:visible; }
.controls-panel .scenario-guide > summary {
  display:block; padding:9px 14px 9px 22px; border:0; border-radius:0 19px 0 0;
  background:#edf7ed; color:#075846; font-size:11px; font-weight:700; line-height:1.2;
  white-space:nowrap; clip-path:polygon(12px 0,100% 0,100% 100%,0 100%,0 12px); cursor:pointer;
}
.controls-panel .scenario-guide > summary::before { content:none; }
.controls-panel .scenario-guide > summary:hover, .controls-panel .scenario-guide[open] > summary { background:#dcefe0; }
.controls-panel .scenario-guide-body {
  position:absolute; z-index:26; top:calc(100% + 4px); right:0;
  width:min(600px,90vw); max-height:70vh; overflow:auto; padding:12px 17px;
  border:1px solid #c9ddce; border-radius:12px; background:#fff; box-shadow:0 12px 32px #173b2b2b;
}
.controls-panel .assignment { margin-top:23px; }
.controls-panel .assignment h2 { display:flex; align-items:baseline; gap:8px; font-size:13px; line-height:1.3; }
.controls-panel .assignment h2 > span { font-size:13px; line-height:1.3; }
.controls-panel .assignment-goal { flex:1; }
.controls-panel .assignment-toggle { flex:none; }
@media(max-width:700px) { .controls-panel .assignment h2 { flex-wrap:wrap; } .controls-panel .assignment-goal { flex:1 1 100%; order:3; } .controls-panel .assignment-toggle { margin-left:auto; } .controls-panel .scenario-guide-body { width:min(600px,90vw); } }

.top-title .game-subtitle { display:block; color:#4b7662; font-size:11px; font-weight:600; line-height:1.2; }

/* Закладка выступает над панелью и примыкает к её верхнему краю. */
.controls-panel { margin-top:30px; }
.controls-panel .scenario-guide { top:-30px; right:18px; }
.controls-panel .scenario-guide > summary {
  height:31px; padding:8px 15px 7px 23px;
  border:1px solid #e6ece4; border-bottom:0;
  border-radius:0 8px 0 0; background:#fff; color:#075846;
  clip-path:polygon(13px 0,100% 0,100% 100%,0 100%,0 13px);
  box-shadow:none;
}
.controls-panel .scenario-guide > summary:hover,
.controls-panel .scenario-guide[open] > summary { background:#f1f8f1; }
.controls-panel .assignment { margin-top:0; }

/* Сценарии в овале заголовка наблюдения. */
.controls-panel { margin-top:0; }
.live-panel .scenario-guide { position:relative; flex:none; margin:0; overflow:visible; }
.live-panel .scenario-guide > summary {
  display:block; padding:9px 13px; border:0; border-radius:30px;
  background:#e1f3e4; color:#087d60; font-size:10px; font-weight:800;
  letter-spacing:.06em; line-height:1.2; text-transform:uppercase;
  white-space:nowrap; cursor:pointer; list-style:none;
}
.live-panel .scenario-guide > summary::before { content:none; }
.live-panel .scenario-guide > summary::-webkit-details-marker { display:none; }
.live-panel .scenario-guide > summary:hover,
.live-panel .scenario-guide[open] > summary { background:#ccebd3; }
.live-panel .scenario-guide-body {
  position:absolute; z-index:30; top:calc(100% + 6px); right:0;
  width:min(600px,90vw); max-height:70vh; overflow:auto; padding:12px 17px;
  border:1px solid #c9ddce; border-radius:12px; background:#fff;
  box-shadow:0 12px 32px #173b2b2b;
}
@media(max-width:600px) {
  .live-panel .scenario-guide > summary { padding:8px 9px; font-size:9px; letter-spacing:0; }
  .live-panel .scenario-guide-body { position:fixed; top:10vh; right:5vw; width:90vw; }
}

/* Бюджет: длинные значения переносятся, не заходя на соседний блок. */
.forecast-controls .budget-info { min-width:0; column-gap:12px; }
.forecast-controls .budget-values { min-width:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; }
.forecast-controls .budget-values span, .forecast-controls .budget-values strong {
  max-width:100%; white-space:normal; overflow-wrap:anywhere; line-height:1.2;
}
.forecast-controls .bonus { min-width:0; }
.forecast-controls .action-row { align-items:stretch; }
/* Ползунки времени и начального очага занимают одинаковые колонки. */
.forecast-controls .forecast-time { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:start; gap:10px; }
.forecast-controls .playback { display:contents; }
.forecast-controls .forecast-track, .forecast-controls .seed-control { min-width:0; width:100%; }
.forecast-controls .seed-slider { width:100%; max-width:none; }
.forecast-controls .timeline-wrap input[type="range"],
.forecast-controls .seed-slider input[type="range"] { display:block; width:100%; min-width:0; height:17px; margin:2px 0; padding:0; }
@media(max-width:520px) {
  .forecast-controls .budget-info { grid-template-columns:minmax(0,1fr) !important; }
  .forecast-controls .budget-values, .forecast-controls .bonus { grid-column:1; grid-row:auto; }
  .forecast-controls .forecast-time { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .forecast-controls .speed-control { grid-column:1 / -1; }
}

/* Кнопка не меняет ширину при смене надписи. */
.forecast-controls .action-row { width:190px; min-width:190px; }
.forecast-controls #run { width:100%; min-width:0; }
@media(max-width:520px) { .forecast-controls .action-row { width:100%; min-width:0; } }
/* Грусть без слёз: цель достигнута, но премия равна нулю. */
.bonus[data-mood="sad"] { color:#806237; }
.bonus[data-mood="sad"] .bonus-smile { display:none; }
.bonus[data-mood="sad"] .bonus-worry { display:block; }
.forecast-controls .bonus[data-mood="sad"] { background:#f6efdf; }
