@import "https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=Space+Mono:wght@400;700&family=DM+Sans:wght@300;400;500;700&display=swap";*,:before,:after{box-sizing:border-box}:root{--bg:#100d1e;--s1:#191631;--s2:#1d1938;--s3:#2b2451;--border:#9788cf3b;--acc:#563b98;--acc-soft:#7c5ed4;--blue:#51b8df;--amber:#ffc43d;--success:#00b889;--red:#ef4444;--text:#f6f3ff;--muted:#9a94ba;--topbar:#3f3b20;--grid-line:#7c5ed406;--button-text:#fff;--primary-shadow:#563b9861;--primary-shadow-soft:#563b9857;--primary-shadow-strong:#563b987a;--focus-ring:#563b9833;--hover-row:#563b981f;--table-line:#9788cf29;--table-header-bg:#342c56;--table-row-alt:#563b981a;--adaptive-row:#563b983d;--battery-bg:#0f172ac2;--battery-border:#e2e8f0d1}body[data-theme=light]{--bg:#fff;--s1:#fff;--s2:#fbfafc;--s3:#f2edfb;--border:#2f284c21;--acc:#563b98;--acc-soft:#7557c8;--blue:#51b8df;--amber:#ffc43d;--success:#009f78;--red:#dc2626;--text:#141827;--muted:#6f7486;--topbar:transparent;--grid-line:#563b9805;--button-text:#fff;--primary-shadow:#563b9833;--primary-shadow-soft:#563b9829;--primary-shadow-strong:#563b9842;--focus-ring:#563b9829;--hover-row:#563b980f;--table-line:#2f284c14;--table-header-bg:#f8f7fa;--table-row-alt:#563b9809;--adaptive-row:#563b9817;--battery-bg:#fff;--battery-border:#563b9857}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0;font-family:DM Sans,sans-serif;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:40px 40px;position:fixed;inset:0}button,input,select{font:inherit}.app{z-index:1;width:min(1140px,100% - 40px);margin:0 auto;padding:24px 0 80px;position:relative}.header{align-items:center;gap:16px;margin-bottom:36px;animation:.6s both fadeDown;display:flex}.logo{background:linear-gradient(135deg, var(--acc), var(--acc-soft));width:48px;height:48px;color:var(--button-text);box-shadow:0 0 30px var(--primary-shadow);border-radius:12px;flex:none;place-items:center;display:grid}.header h1{margin:0;font-family:Syne,sans-serif;font-size:26px;font-weight:800}.header h1 span{color:var(--acc)}.header p{color:var(--muted);margin:2px 0 0;font-size:13px}.themeToggle{border:1px solid var(--border);background:var(--s1);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:8px;margin-left:auto;padding:7px 10px;display:inline-flex}.themeTrack{background:var(--s3);border-radius:999px;width:42px;height:22px;position:relative}body[data-theme=dark] .themeTrack{background:var(--acc)}.themeThumb{background:var(--button-text);border-radius:999px;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}body[data-theme=dark] .themeThumb{transform:translate(20px)}.sectionLabel{color:var(--muted);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:18px;font-size:11px;font-weight:700;display:flex}.sectionLabel:before,.sectionLabel:after{content:"";background:var(--border);flex:1;height:1px}.card,.profileBox{border:1px solid var(--border);background:var(--s1);border-radius:16px;margin-bottom:14px;padding:24px;animation:.4s both slideUp}.profileBox{background:var(--s2)}.cardHeader{align-items:center;gap:12px;margin-bottom:20px;display:flex}.cardIcon{border:1px solid var(--border);background:var(--s3);width:36px;height:36px;color:var(--acc);border-radius:10px;flex:none;place-items:center;display:grid}.cardTitle,.panelTitle{align-items:center;gap:7px;font-family:Syne,sans-serif;font-size:15px;font-weight:700;display:flex}.cardSub,.panelSub{color:var(--muted);margin-top:2px;font-size:12px}.pill{white-space:nowrap;border-radius:20px;margin-left:auto;padding:3px 10px;font-family:Space Mono,monospace;font-size:11px}.pill.blue{color:#c7b9ff;background:#563b9838;border:1px solid #7c5ed44d}.siteForm{grid-template-columns:1.5fr repeat(3,minmax(130px,1fr)) auto;align-items:end;gap:12px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field span{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;font-size:11px;font-weight:600}.input{border:1px solid var(--border);background:var(--s2);width:100%;min-height:40px;color:var(--text);border-radius:10px;outline:none;padding:10px 13px;font-size:13px;transition:border-color .2s,box-shadow .2s,background .2s}.input:focus{border-color:var(--acc);background:var(--s3);box-shadow:0 0 0 3px var(--focus-ring)}.dateField{cursor:pointer}.dateInputShell{cursor:pointer;min-width:0;display:flex;position:relative}.dateInputShell .dateInput{cursor:pointer;padding-right:42px}.dateInputShell .dateInput::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0;width:auto;height:auto;position:absolute;inset:0}.datePickerButton{border:1px solid var(--border);background:var(--s3);width:30px;height:30px;color:var(--muted);cursor:pointer;pointer-events:none;border-radius:8px;place-items:center;display:grid;position:absolute;top:5px;right:6px}.dateInputShell:focus-within .datePickerButton,.dateInputShell:hover .datePickerButton{border-color:var(--acc);color:var(--acc)}select.input option{background:var(--s3)}.fetchButton{background:linear-gradient(135deg, var(--acc), var(--acc-soft));min-height:40px;color:var(--button-text);cursor:pointer;white-space:nowrap;box-shadow:0 4px 14px var(--primary-shadow-soft);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-family:Syne,sans-serif;font-size:13px;font-weight:800;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex}.saveButton{background:linear-gradient(135deg, var(--acc), var(--acc-soft));width:100%;min-height:44px;color:var(--button-text);cursor:pointer;box-shadow:0 6px 24px var(--primary-shadow);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-top:18px;font-family:Syne,sans-serif;font-size:14px;font-weight:800;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex}.addButton,.ghostButton,.backToTable,.rowButton{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:9px 14px;font-family:Syne,sans-serif;font-size:13px;font-weight:800;transition:transform .15s,box-shadow .15s,border-color .15s,color .15s;display:inline-flex}.addButton{background:linear-gradient(135deg, var(--acc), var(--acc-soft));color:var(--button-text);box-shadow:0 4px 14px var(--primary-shadow-soft);border:none}.ghostButton,.backToTable,.rowButton{border:1px solid var(--border);color:var(--muted);background:0 0}.addButton:hover,.ghostButton:hover,.backToTable:hover,.rowButton:hover{transform:translateY(-1px)}.ghostButton:hover,.backToTable:hover,.rowButton:hover{color:var(--text);border-color:#7c5ed480}.ghostButton:disabled{cursor:not-allowed;opacity:.55}.backToTable{margin-bottom:14px}.tableHeader{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.tableActions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.siteTableWrap{border:1px solid var(--border);background:var(--s2);border-radius:12px;overflow-x:auto}.siteTable{border-collapse:collapse;width:100%;min-width:980px}.siteTable th,.siteTable td{border-bottom:1px solid var(--table-line);text-align:left;vertical-align:top;padding:11px 12px}.siteTable th{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:700}.siteTable td{color:var(--text);font-size:12px}.siteTable tr:last-child td{border-bottom:none}.siteTable tbody tr:hover td{background:var(--hover-row)}.emptyCell{height:96px;color:var(--muted)!important;text-align:center!important;vertical-align:middle!important}.saveButton:hover:not(:disabled){box-shadow:0 9px 28px var(--primary-shadow-strong);transform:translateY(-1px)}.saveButton:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.fetchButton:hover:not(:disabled){box-shadow:0 6px 20px var(--primary-shadow-strong);transform:translateY(-1px)}.fetchButton:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.notice{color:var(--amber);background:#ffc43d12;border:1px solid #ffc43d38;border-radius:10px;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 14px;font-size:12px;line-height:1.5;display:flex}.blueNotice{color:#c7b9ff;background:#563b9829;border-color:#7c5ed442}.greenNotice{color:var(--success);background:#00b88914;border-color:#00b8893d}.errorNotice{color:#f87171;background:#ef444412;border-color:#ef44443d}.profileTop{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px;display:flex}.stats{gap:20px;display:flex}.statValue{font-family:Space Mono,monospace;font-size:15px;font-weight:700}.statValue.green{color:var(--success)}.statValue.blue{color:var(--blue)}.statValue.amber{color:#fbbf24}.statLabel{color:var(--muted);font-size:10px}.barArea{align-items:flex-end;gap:1.5px;height:130px;margin-top:18px;display:flex}.bar{border-radius:2px 2px 0 0;flex:1;min-width:3px;transition:opacity .2s}.bar:hover{opacity:.72}.bar.normal{background:#7c5ed494}.bar.peak{background:#ef4444a6}.bar.shoulder{background:#ffc43d9e}.chartFoot{color:var(--muted);justify-content:space-between;margin-top:6px;font-family:Space Mono,monospace;font-size:10px;display:flex}.tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tag{border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;display:inline-flex}.tag.green{color:#c7b9ff;background:#563b9833;border:1px solid #563b9847}.tag.amber{color:var(--amber);background:#ffc43d1a;border:1px solid #ffc43d38}.detailGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.detailGrid.compact{margin-bottom:18px}.detailItem{background:var(--s2);border-radius:10px;min-width:0;padding:12px 14px}.detailItem span{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;margin-bottom:5px;font-size:11px;display:block}.detailItem strong{overflow-wrap:anywhere;color:var(--text);font-size:13px;font-weight:600;display:block}.ratesPanel{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.ratesGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.simulationForm{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px;display:grid}.simulationSubmit{grid-column:1/-1}.simulationResults{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.resultActions{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.resultGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.detailedResultWrap{border:1px solid var(--border);border-radius:12px;margin-top:16px;overflow-x:auto}.detailedResultTable{border-collapse:collapse;width:100%;min-width:760px}.detailedResultTable th,.detailedResultTable td{text-align:left;border-right:1px solid var(--border);padding:14px 16px}.detailedResultTable th:last-child,.detailedResultTable td:last-child{border-right:none}.detailedResultTable th{background:var(--table-header-bg);color:var(--text);font-size:13px;font-weight:800}.detailedResultTable td{background:var(--s2);color:var(--text);font-size:13px;font-weight:500}.detailedResultTable tbody tr:nth-child(2n) td{background:var(--table-row-alt)}.detailedResultTable .adaptiveResultRow td{background:var(--adaptive-row);font-weight:800}.batteryRun{background:linear-gradient(135deg,#563b982e,#ffc43d14);border:1px solid #7c5ed452;border-radius:14px;align-items:center;gap:18px;margin-top:18px;padding:18px;display:flex}.batteryFlow{align-items:center;gap:10px;min-width:250px;display:flex}.batteryShell{border:2px solid var(--battery-border);background:var(--battery-bg);width:112px;height:52px;box-shadow:inset 0 0 0 1px var(--table-line), 0 10px 30px #00000024;border-radius:8px;position:relative;overflow:visible}.batteryShell:after{content:"";background:var(--battery-border);border-radius:0 4px 4px 0;width:7px;height:18px;position:absolute;top:15px;right:-9px}.batteryLevel{background:linear-gradient(90deg, var(--acc), var(--amber));border-radius:5px;width:30%;animation:2.4s ease-in-out infinite batteryPulse;position:absolute;inset:5px}.batteryCells{grid-template-columns:repeat(4,1fr);gap:4px;display:grid;position:absolute;inset:5px}.batteryCells span{border-right:1px solid var(--table-line)}.batteryCells span:last-child{border-right:none}.flowLine{background:#94a3b83d;border-radius:999px;width:58px;height:2px;position:relative;overflow:hidden}.flowLine span{background:var(--acc-soft);border-radius:999px;width:8px;height:8px;animation:1.35s linear infinite flowDot;position:absolute;top:-3px}.flowLine span:nth-child(2){animation-delay:.42s}.flowLine span:nth-child(3){animation-delay:.84s}.rightFlow span{background:var(--amber);animation-name:flowDotReverse}.batteryRunText strong,.batteryRunText span{display:block}.batteryRunText strong{color:var(--text);font-size:14px}.batteryRunText span{color:var(--muted);margin-top:4px;font-size:12px}.inputWrap{position:relative}.inputWrap .input{padding-right:72px}.suffix{color:var(--muted);pointer-events:none;font-family:Space Mono,monospace;font-size:11px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.spin{animation:.9s linear infinite spin}@keyframes fadeDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes batteryPulse{0%,to{width:24%}50%{width:calc(100% - 10px)}}@keyframes flowDot{0%{left:-10px}to{left:62px}}@keyframes flowDotReverse{0%{right:-10px}to{right:62px}}@media (width<=900px){.siteForm{grid-template-columns:1fr 1fr}.mpanField,.fetchButton{grid-column:span 2}.detailGrid{grid-template-columns:1fr 1fr}}@media (width<=700px){.app{width:min(100% - 28px,1140px)}.siteForm,.detailGrid,.ratesGrid,.simulationForm,.resultGrid{grid-template-columns:1fr}.mpanField,.fetchButton{grid-column:auto}.profileTop,.stats,.tableHeader,.batteryRun,.resultActions{flex-direction:column;align-items:stretch}.tableActions{justify-content:stretch}.tableActions button{flex:1}}
