:root{color-scheme:dark;--bg:#070b18;--panel:#0f1830;--line:rgba(121,177,255,.22);--text:#f1f5ff;--muted:#9aa9c8;--cyan:#42e8e0;--good:#5ee39a;--warn:#f5c26b;--bad:#ff778f;font-family:-apple-system,system-ui,Inter,sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}
body{min-height:100dvh;overflow-x:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.op-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(7,11,24,.96);z-index:3}
.op-top h1{margin:0;font-size:1.3rem;flex:1}.op-back{color:var(--cyan);text-decoration:none}
.op-month{display:flex;align-items:center;gap:8px;color:var(--muted)}
select,input{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:16px;max-width:100%}
.op-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--cyan);border-radius:10px;background:transparent;color:var(--cyan);text-decoration:none;cursor:pointer}
main{padding:8px 16px 48px;max-width:1200px;margin:auto}
section{margin:22px 0}h2{font-size:1.05rem;margin:0 0 10px}h3{font-size:.95rem;margin:0 0 8px;grid-column:1/-1}
.op-state,.op-stamp{color:var(--muted);margin:8px 0}.op-stamp{font-size:.85rem}
.op-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.op-kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.op-kpi b{display:block;font-size:1.35rem;margin:4px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.op-kpi small{color:var(--muted);display:block;line-height:1.35}
.op-kpi.good b{color:var(--good)}.op-kpi.bad b{color:var(--bad)}
.op-forecast{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.op-bar{grid-column:1/-1;height:12px;border-radius:6px;background:#1b2747;overflow:hidden}.op-bar i{display:block;height:100%;background:var(--cyan)}
.op-chart svg{width:100%;height:auto;display:block}
table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.82rem}
th,td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:right;overflow-wrap:anywhere;vertical-align:top}
th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:600}
tr.op-ago td{color:var(--warn)}tr.op-sel td{background:rgba(66,232,224,.08)}
td.neg{color:var(--bad)}td.pos{color:var(--good)}
.op-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.op-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.op-card h3{margin:0 0 6px}.op-card dl{display:grid;grid-template-columns:1fr auto;gap:3px 10px;margin:0;font-size:.86rem}
.op-card dt{color:var(--muted)}.op-card dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.op-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px}
.op-form label{display:grid;gap:4px;font-size:.8rem;color:var(--muted);min-width:0}.op-form .op-wide{grid-column:span 2}
.op-check{display:flex!important;align-items:center;gap:8px;min-height:44px}
.op-history,.op-signals{list-style:none;padding:0;margin:0}.op-history li,.op-signals li{padding:8px 0;border-bottom:1px solid var(--line);font-size:.88rem}
.op-signals li b{color:var(--warn)}.op-muted{color:var(--muted);font-size:.85rem}
.op-list{display:grid;gap:4px;font-size:.86rem}.op-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:5px 0}
.op-list span:first-child{min-width:0;overflow-wrap:anywhere}
.op-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.op-del{border:0;background:transparent;color:var(--bad);cursor:pointer;min-height:32px}
.op-notes{color:var(--muted);font-size:.85rem}
@media(max-width:820px){.op-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.op-forecast{grid-template-columns:repeat(2,minmax(0,1fr))}.op-form{grid-template-columns:1fr 1fr}.op-grid2{grid-template-columns:1fr}
 table.op-wide th:nth-child(n+6),table.op-wide td:nth-child(n+6){display:none}}
@media(max-width:560px){.op-cards{grid-template-columns:1fr}.op-form{grid-template-columns:1fr}.op-form .op-wide{grid-column:auto}table.op-wide th:nth-child(n+5),table.op-wide td:nth-child(n+5){display:none}}
.op-alarm{margin:0 0 10px;padding:12px;border:1px solid var(--bad);border-radius:12px;background:rgba(255,119,143,.12);color:var(--bad);font-weight:600}
.op-card .op-sub{color:var(--muted);font-size:.78rem;margin:-4px 0 6px}
.op-card details{margin-top:8px;font-size:.84rem}.op-card summary{cursor:pointer;color:var(--cyan);min-height:32px}
.op-rename{display:flex;gap:6px;margin:6px 0}.op-rename input{flex:1;min-width:0;min-height:36px}.op-rename button{min-height:36px}

.op-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:.4rem 0}
table.op-report{table-layout:auto;min-width:1100px}
table.op-report th,table.op-report td{white-space:nowrap;text-align:right}
table.op-report th:first-child{text-align:left;position:sticky;left:0;background:var(--bg)}
table.op-report tr.op-total th,table.op-report tr.op-total td{font-weight:700;border-bottom:2px solid currentColor}
.op-mark{display:flex;flex-wrap:wrap;gap:.6rem;align-items:baseline}
.op-warn{color:var(--warn)}.op-ok{color:var(--good)}
.op-more summary{cursor:pointer;text-decoration:underline}
.op-more p{max-width:60rem}
