:root{--teal:#42b9bc;--navy:#1e425e;--deep:#114b5f;--peach:#f5d8c8;--mint:#abedc6;--violet:#576ca8;--bg:#f2f5f7;--line:#dce5ec;--text:#1e425e;--muted:#5e7286;--neg:#b3543c;color:var(--text);background:var(--bg);font-family:Bai Jamjuree,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{min-width:960px;margin:0}#root{max-width:1400px;margin:0 auto;padding:16px 24px 48px}h1{margin:0;font-size:21px;font-weight:600}h2{color:var(--navy);margin:0 0 12px;font-size:16px;font-weight:600}h3{margin:0 0 8px;font-size:14px;font-weight:600}button{font:inherit;border:1px solid var(--line);cursor:pointer;color:var(--navy);background:#fff;border-radius:6px;padding:5px 12px;font-weight:500}button:hover{background:#e9f0f4}button.primary{background:var(--teal);border-color:var(--teal);color:var(--navy);font-weight:600}button.primary:hover{background:#38a6a9}button.primary:disabled{opacity:.45;cursor:default}button.danger{color:var(--neg);border-color:#e3c0b4}button.danger:hover{background:#fbf1ed}input,select{font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:5px;padding:4px 8px}input:focus,select:focus{outline:2px solid var(--teal);outline-offset:0;border-color:var(--teal)}input[type=number]{text-align:right;width:110px}.hero{background:linear-gradient(90deg, var(--navy) 0%, #1e425eeb 42%, #1e425e73 100%), url(/hero-bg.jpg) right center / cover no-repeat;background-color:var(--navy);color:#fff;border-radius:12px;align-items:center;gap:24px;margin-bottom:14px;padding:26px 0 26px 24px;display:flex;position:relative;overflow:hidden}.hero .titles{flex:1;min-width:0}.hero h1{color:#fff}.hero .subtitle{color:var(--teal);margin-top:3px;font-size:13.5px;font-weight:500}.hero .kn-pattern{flex-shrink:0;margin-left:auto;display:block}.kn-logo{flex-shrink:0;align-items:center;gap:12px;display:flex}.kn-wordmark{color:var(--teal);letter-spacing:.02em;flex-direction:column;font-size:17px;font-weight:700;line-height:1.08;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.demo-banner{background:var(--peach);border:none;border-left:4px solid var(--navy);color:var(--deep);border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.howto{border:1px solid var(--line);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:flex-start;gap:22px;margin-bottom:16px;padding:12px 18px;display:flex}.howto .step{color:var(--text);flex:240px;gap:10px;font-size:13px;display:flex}.howto .step b{color:var(--navy)}.howto .num{background:var(--teal);width:24px;height:24px;color:var(--navy);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.howto .close{align-self:center;margin-left:auto}.card{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:16px 18px}.cards-row{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.tabs{border-bottom:2px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:8px 14px;font-weight:500}.tabs button:hover{color:var(--navy);background:#e9f0f4}.tabs button.active{color:var(--navy);border-bottom-color:var(--teal);background:0 0;font-weight:600}.resource-card{border:1px solid var(--line);background:#fff;border-radius:10px;flex:180px;padding:14px 16px;position:relative}.resource-card.binding{background:linear-gradient(#1e425e8c,#1e425e8c),url(/wave-bg.jpg) 50%/cover no-repeat;background-color:var(--navy);border-color:var(--navy);color:#fff}.resource-card.binding .res-detail{color:#b9cbd9}.resource-card .res-name{justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:4px;font-weight:600;display:flex}.resource-card .res-util{color:var(--navy);margin:2px 0 6px;font-size:27px;font-weight:700}.resource-card.binding .res-util{color:var(--teal)}.resource-card .res-detail{color:var(--muted);font-size:12px}.resource-card .res-risk{color:var(--neg);margin-top:4px;font-size:12px}.resource-card.binding .res-risk{color:var(--peach)}.badge{vertical-align:middle;letter-spacing:.02em;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.badge.binding{background:var(--peach);color:var(--navy)}.badge.risk{background:var(--peach);color:var(--deep)}.badge.ok{background:var(--mint);color:var(--deep)}.util-bar{background:#e4ebf1;border-radius:4px;height:8px;margin:4px 0 8px;overflow:hidden}.resource-card.binding .util-bar{background:#17344b}.util-bar>div{background:var(--teal);border-radius:4px;height:100%}.util-bar>div.warn{background:#e8b48e}.util-bar>div.over{background:var(--violet)}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{text-align:right;white-space:nowrap;border-bottom:1px solid #ebf0f4;padding:6px 10px}table.data th:first-child,table.data td:first-child{text-align:left}table.data th{color:var(--navy);cursor:pointer;-webkit-user-select:none;user-select:none;background:#edf3f6;font-weight:600;position:sticky;top:0}table.data tr:hover td{background:#f5f9fa}table.data td.neg{color:var(--neg)}.table-scroll{overflow-x:auto}.prov{cursor:help;border-radius:4px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.prov.viesas{background:var(--mint);color:var(--deep)}.prov.ivertinta{background:var(--peach);color:var(--deep)}.hist{align-items:flex-end;gap:24px;height:260px;padding:12px 8px 0;display:flex}.hist .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.hist .bars{flex:1;justify-content:center;align-items:flex-end;gap:6px;width:100%;display:flex}.hist .barwrap{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex}.hist .bar{border-radius:4px 4px 0 0;width:42px;min-height:2px}.hist .bar.free{background:var(--teal)}.hist .bar.stranded{background:var(--violet)}.hist .col-label{color:var(--muted);text-align:center;margin-top:8px;font-size:12px}.hist .bar-value{color:var(--navy);text-align:center;margin-bottom:3px;font-size:11px}.legend{color:var(--navy);gap:18px;margin-top:10px;font-size:12px;display:flex}.legend .sw{vertical-align:-2px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.sw-free{background:var(--teal)}.sw-stranded{background:var(--violet)}.form-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 18px;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.muted{color:var(--muted);font-size:12px}.note-box{border-left:3px solid var(--teal);color:var(--deep);background:#42b9bc1f;border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px}.warn-text{color:var(--neg);font-size:12px}.pill-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pill{color:var(--navy);background:#e4eef2;border-radius:12px;padding:2px 10px;font-size:12px}.pill.dirty{background:var(--peach);color:var(--deep);cursor:help;font-weight:600}.scenario-desc{color:var(--muted);margin:-6px 0 12px 2px;font-size:12.5px}.compare-grid{gap:14px;display:grid}.delta-pos{color:#1e7a4c;font-weight:600}.delta-neg{color:var(--neg);font-weight:600}.kpi-bar{z-index:60;border:1px solid var(--line);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;display:flex;position:sticky;top:8px;box-shadow:0 4px 16px #112b3f1a}.kpi-scenario{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--line);max-width:170px;padding-right:10px;font-size:12px;overflow:hidden}.kpi-chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:4px 9px;display:flex}.kpi-chip:hover{background:#e9f0f4}.kpi-chip.risk{background:#fbefe6;border-color:#ebcdb6}.kpi-chip.risk:hover{background:#f6e3d4}.kpi-chip.binding{background:var(--navy);border-color:var(--navy)}.kpi-chip.binding:hover{background:#17344b}.kpi-chip.binding .kpi-name{color:var(--peach)}.kpi-chip.binding .kpi-val{color:var(--teal)}.kpi-name{color:var(--muted);font-size:11px;font-weight:500}.kpi-val{color:var(--navy);font-size:13px;font-weight:700}.kpi-track{background:#e4ebf1;border-radius:3px;width:44px;height:6px;display:inline-block;overflow:hidden}.kpi-chip.binding .kpi-track{background:#17344b}.kpi-track>span{background:var(--teal);border-radius:3px;height:100%;display:block}.kpi-track>span.warn{background:#e8b48e}.kpi-track>span.over{background:var(--violet)}.kpi-total{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12.5px}.kpi-total b{color:var(--navy);font-size:13px}.tour-layer{z-index:1000;position:fixed;inset:0}.tour-backdrop{z-index:1000;background:#112b3f9e;position:fixed;inset:0}.tour-spotlight{outline:2px solid var(--teal);outline-offset:2px;pointer-events:none;border-radius:10px;transition:top .5s cubic-bezier(.4,0,.2,1),left .5s cubic-bezier(.4,0,.2,1),width .5s cubic-bezier(.4,0,.2,1),height .5s cubic-bezier(.4,0,.2,1);animation:1.8s ease-in-out infinite tour-pulse;position:fixed;box-shadow:0 0 0 9999px #112b3f9e}@keyframes tour-pulse{0%,to{outline-color:var(--teal);outline-offset:2px}50%{outline-offset:6px;outline-color:#42b9bc59}}.tour-card{border-top:4px solid var(--teal);background:#fff;border-radius:12px;width:380px;max-width:calc(100vw - 24px);padding:16px 18px 14px;transition:top .5s cubic-bezier(.4,0,.2,1),left .5s cubic-bezier(.4,0,.2,1);animation:.4s tour-card-in;position:fixed;box-shadow:0 12px 40px #112b3f59}@keyframes tour-card-in{0%{opacity:0}to{opacity:1}}.tour-card h3{color:var(--navy);margin:2px 0 6px;font-size:15px}.tour-card p{color:var(--text);margin:0 0 12px;font-size:13px;line-height:1.55}.tour-step-label{color:var(--teal);letter-spacing:.04em;font-size:11px;font-weight:600}.tour-controls{justify-content:space-between;align-items:center;gap:10px;display:flex}.tour-dots{gap:5px;display:flex}.tour-dot{cursor:pointer;background:var(--line);border:none;border-radius:50%;width:8px;height:8px;padding:0}.tour-dot.active{background:var(--teal)}.tour-dot:hover{background:var(--violet)}.tour-buttons{gap:6px;display:flex}.tour-buttons button{padding:4px 10px;font-size:13px}.tour-skip{color:var(--muted);background:0 0;border:none}.tour-skip:hover{color:var(--navy);background:0 0;text-decoration:underline}
