@font-face{font-family:tactic;src:url(TacticRound-Regular-BFuLRKbF.woff2)}@font-face{font-family:title;src:url(TacticRoundExtended-BlackItalic-D3QLnf7a.woff2)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(at 75% 5%,#19334555,transparent 50%),#0b141e;color:#edf5fc;font:16px tactic,Arial,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:220px;padding:32px 20px;background:#101e2b;border-right:1px solid #314557}aside strong{font:27px title;vertical-align:top;margin-left:8px}small,label,header,footer{color:#92acbf;letter-spacing:1.3px;font-size:12px}aside small,aside label{display:block}hr{border:0;border-top:1px solid #304352;margin:25px 0}nav a{display:block;text-decoration:none;color:#afc2d4;padding:13px;border-radius:8px;margin:6px 0}nav a.active{color:#c9ecff;background:#24415b;border-left:3px solid #80caff}footer{position:absolute;bottom:24px}main{margin-left:220px;padding:24px clamp(18px,3vw,52px);max-width:1800px}header{padding-bottom:20px;border-bottom:1px solid #293d4e}h1,strong,.value{font-family:title,Arial}h1{font-size:clamp(32px,4vw,66px);margin:8px 0}h2{font-size:22px;margin:0 0 12px}p{color:#9cb3c7}.hero{padding:36px;border-radius:16px;background:linear-gradient(90deg,#101d2a 12%,#101d2add 48%,transparent),url(brand-banner.png) right center/cover;margin:22px 0;min-height:180px}.pill{color:#9ee7cf;background:#173739;padding:5px 10px;border-radius:30px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px}.card{background:linear-gradient(145deg,#192c3c,#101c29);border:1px solid #304557;border-radius:14px;padding:20px;margin-bottom:15px;overflow:auto}.value{font-size:32px;color:#9bd4ff}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tools{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}button,input,select{background:#14283a;color:#dbedfb;border:1px solid #395772;border-radius:8px;padding:9px 12px;font:inherit}button{cursor:pointer}button:hover,button.on{background:#285478}input{min-width:0}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid #2b4050;padding:12px;white-space:nowrap}th{font-size:13px;color:#9fc9e7}.plot{width:100%;height:150px;background:repeating-linear-gradient(0deg,transparent 0 35px,#34516a66 36px)}.bar{height:5px;background:#76c7fc;border-radius:5px;margin:4px 0 14px}.entry{border-top:1px solid #294152;padding:12px 0}.entry select{margin-left:auto}@media(max-width:820px){aside{position:static;width:auto;padding:12px 16px}aside img{width:32px}aside label,aside hr,aside footer,aside small{display:none}nav{display:flex;flex-wrap:wrap}nav a{padding:6px}main{margin:0;padding:16px}.hero{padding:18px}}
:root{--green:#31c72c;--line:#29362d}body{background:radial-gradient(ellipse at 80% 0%,#152c18,transparent 48%),#0c110f;color:#edf5ec;font-size:14px}aside{width:182px;padding:22px 14px;background:#101712;border-color:var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand img{width:38px;height:38px;border-radius:9px;border:1px solid #467044}.brand strong{font-size:21px;line-height:1;margin:0}.brand small{color:#9cc598;font:10px tactic;letter-spacing:2px;margin-top:4px}main{margin-left:182px;padding:15px clamp(14px,2vw,34px)}header{padding-bottom:12px;border-color:var(--line)}small,label,header,footer,p{color:#a6b7aa}hr{margin:17px 0;border-color:var(--line)}nav a{color:#bccdbf;padding:10px}nav a.active{color:#d9ffd7;background:#203a23;border-color:var(--green)}.hero{margin:14px 0;padding:19px 23px;min-height:108px;background-image:linear-gradient(90deg,#142318 15%,#142318d9 58%,#0a100aa8),url(brand-banner.png)}h1{font-size:clamp(26px,3vw,45px);margin:4px 0}.pill{background:#203d23;color:#aaff95;font-size:12px}.card{background:linear-gradient(125deg,#18251d,#111a15);border-color:var(--line);padding:14px;margin-bottom:10px}.value{font-size:25px;color:var(--green)}h2{font-size:19px;margin-bottom:8px}.tools{margin:9px 0}.grid{gap:10px}.plot{height:108px;background:repeating-linear-gradient(0deg,transparent 0 26px,#35543b66 27px)}button,input,select{background:#17251c;border-color:#37533b;color:#e5f6e4;padding:7px 9px}button:hover,button.on{background:#264b29}.bar{background:var(--green);margin-bottom:8px}.entry,td,th,header{border-color:var(--line)}th{color:#add5a9}.tools input{flex:1}.brand+hr{margin-top:20px}@media(max-width:820px){aside{width:auto;padding:10px 15px}.brand small{display:block}main{margin:0}.hero{min-height:85px}.brand img{width:30px;height:30px}}
html { min-height: 100%; background: #0c110f; }
body { min-height: 100vh; min-height: 100dvh; background-repeat: no-repeat; background-size: 100% 100vh; }
@media (min-width: 821px) {
  .plot { height: clamp(108px, calc(100dvh - 750px), 215px); }
  .card { padding-block: clamp(14px, 1.7vh, 20px); }
  .grid { column-gap: 14px; }
}
@media (min-width: 821px) {
  body:has(nav a.active[href="#dashboard"]) main {
    height: 100dvh;
    display: flex;
    flex-direction: column;
  }
  body:has(nav a.active[href="#dashboard"]) #view {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  #view:has(.plot) > .card:has(.plot) {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  #view .plot { height: 0; min-height: 0; flex: 1; }
  #view:has(.plot) > .card:not(:has(.plot)),
  #view:has(.plot) > .grid:last-child { max-height: 19dvh; }
  #view:has(.plot) > .grid:last-child { min-height: 0; grid-template-rows: minmax(0,1fr); }
  #view:has(.plot) > .grid:last-child > .card { min-height: 0; margin-bottom: 0; }
}
@media (min-width: 821px) and (max-height: 800px) {
  #view:has(.plot) .hero { min-height: 0; padding-block: 9px; margin-block: 7px; }
  #view:has(.plot) .card { padding-block: 9px; margin-bottom: 6px; }
  #view:has(.plot) .tools { margin-block: 4px; }
}

.notices{position:fixed;bottom:18px;right:18px;z-index:20;display:grid;gap:8px;max-width:min(370px,calc(100vw - 36px));pointer-events:none}
.notice{background:#15251a;color:#ebf9ec;border:1px solid #37533b;border-left:3px solid var(--green);padding:12px 16px;border-radius:8px;box-shadow:0 6px 24px #0005}
.notice.error{border-left-color:#ff806c}

button.danger{border-color:#995156;color:#ffb7bc}button.danger:disabled{opacity:.45}
