:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#17333b;background:#edf4f3;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-height:100svh}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.login-screen{min-height:100svh;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at 70% 0,#187d83,#062b35 65%)}
.login-card{width:min(100%,420px);padding:30px;border-radius:24px;background:#fff;box-shadow:0 22px 70px #001e2a55}
.login-card img{object-fit:contain}
.login-card h1{margin:4px 0 10px;font-size:30px;color:#073d48}
.login-card p{line-height:1.5}
.eyebrow{margin:0;color:#0d9ca1;font-size:12px;font-weight:900;letter-spacing:.17em}
.login-card label,.form-panel label,.panel label,.page-head label{display:flex;flex-direction:column;gap:7px;color:#36535a;font-size:13px;font-weight:800}
input,select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #c9d9d9;border-radius:11px;background:#fff;color:#17333b;outline:none}
input:focus,select:focus{border-color:#0c9ca3;box-shadow:0 0 0 3px #0c9ca326}
input[type=file]{padding:10px}
.login-card form{display:grid;gap:13px;margin-top:22px}
.primary,.ghost,.danger{min-height:44px;padding:10px 16px;border-radius:11px;font-weight:850}
.primary{border:1px solid #00a7b2;background:#00a7b2;color:#fff}
.primary:hover{background:#078c96}
.ghost{border:1px solid #a8c5c7;background:#fff;color:#11505c}
.ghost:hover{background:#eaf7f5}
.danger{border:1px solid #db6868;background:#fff2f1;color:#a33d3d}
.form-error{min-height:22px;color:#b53b3b;font-weight:700}
.app-header{position:sticky;top:0;z-index:10;min-height:70px;padding:10px max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:12px;background:#063d48;color:#fff;box-shadow:0 2px 12px #062e3b2b}
.brand{display:flex;align-items:center;gap:10px}
.brand img{object-fit:contain}
.brand strong,.brand small{display:block}
.brand strong{font-size:19px}
.brand small{margin-top:2px;color:#b3dfe0;font-size:11px}
.app-header .ghost{min-height:36px;padding:7px 11px;border-color:#8cb8bb55;background:#ffffff16;color:#fff;font-size:12px}
.tabs{position:sticky;top:70px;z-index:9;padding:8px max(16px,calc((100vw - 1180px)/2));display:flex;gap:7px;overflow:auto;background:#fff;border-bottom:1px solid #d9e8e7;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:none;padding:9px 14px;border:0;border-radius:9px;background:transparent;color:#587278;font-size:13px;font-weight:800;white-space:nowrap}
.tabs button.active{background:#d9f4f1;color:#076c71}
.tabs button:hover{background:#e9f5f4}
.notice{position:fixed;z-index:20;right:16px;bottom:20px;max-width:min(420px,calc(100vw - 32px));padding:13px 17px;border-radius:12px;background:#064c58;color:#fff;font-weight:750;box-shadow:0 12px 40px #00374466}
.notice.error{background:#a33d3d}
main{width:min(100%,1212px);margin:auto;padding:24px 16px 60px}
.tab-page{display:none}
.tab-page.active{display:block}
.page-head{margin-bottom:20px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.page-head h2{margin:6px 0;font-size:clamp(27px,4vw,38px);color:#093f49}
.page-head p:not(.eyebrow){margin:0;color:#60767b;line-height:1.5}
.page-head label{width:155px;flex:none}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.metric{min-height:118px;padding:19px;border:1px solid #d8e7e6;border-radius:18px;background:#fff;box-shadow:0 5px 20px #0b45440b}
.metric .label{display:block;color:#607a7d;font-size:12px;font-weight:800}
.metric strong{display:block;margin-top:10px;color:#073e48;font-size:clamp(18px,2vw,25px);font-variant-numeric:tabular-nums}
.metric small{display:block;margin-top:7px;color:#789095;font-size:11px}
.metric.good strong{color:#00837f}
.metric.bad strong{color:#b04444}
.panel{margin:0 0 16px;padding:20px;border:1px solid #d8e7e6;border-radius:18px;background:#fff;box-shadow:0 5px 20px #0b45440b}
.panel h3{margin:0 0 15px;color:#103f47;font-size:17px}
.panel p{line-height:1.55}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-head span{color:#698188;font-size:12px}
.panel-head h3{margin:0 0 14px}
.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fineprint{color:#657a7e;font-size:13px}
.form-panel h3:not(:first-child){margin-top:24px;padding-top:22px;border-top:1px solid #e3eeee}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.form-grid .wide{grid-column:1/-1}
.form-panel button[type=submit]{margin-top:22px}
.form-actions{display:flex;gap:8px;flex-wrap:wrap}
.summary-strip{margin-top:18px;padding:14px;display:flex;flex-wrap:wrap;gap:12px;border-radius:11px;background:#eaf7f5;color:#0b5962;font-size:13px;font-weight:750}
.summary-strip span{flex:1 1 170px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}
th,td{padding:11px 12px;border-bottom:1px solid #e6eeee;text-align:right}
th:first-child,td:first-child{text-align:left}
th{color:#5e797c;font-weight:850}
td{font-variant-numeric:tabular-nums}
.record{padding:14px 0;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e5eeee}
.record:last-child{border-bottom:0}
.record strong{display:block;color:#153e46}
.record p{margin:4px 0;color:#678186;font-size:12px}
.record .right{text-align:right;white-space:nowrap}
.record .right strong{color:#087d7f}
.record .actions{display:flex;gap:7px;justify-content:flex-end;margin-top:7px}
.record button{padding:5px 8px;border:1px solid #c4d8d7;border-radius:7px;background:#fff;color:#355e65;font-size:12px}
.record button.delete{color:#ae4545}
.empty{padding:16px;color:#708689;font-size:13px}
.chart{min-height:185px;overflow:auto}
.chart-empty{min-height:150px;margin:0;display:grid;place-items:center;color:#789094;font-size:13px;text-align:center}
.chart svg{display:block;width:100%;min-width:450px;height:200px}
.legend{margin-top:8px;display:flex;gap:16px;color:#58747a;font-size:12px}
.legend i{display:inline-block;width:10px;height:10px;margin-right:4px;border-radius:2px}
.legend i.revenue{background:#00a7ad}
.legend i.cash{background:#f2bb3d}
.quote-result{margin-top:18px}
.quote-result .price{font-size:30px;font-weight:900;color:#058d92}
.stack{display:grid;gap:8px}
#import-data{margin-top:14px}
#print-area{display:none}
@media(max-width:750px){
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two-cols{grid-template-columns:1fr}
  main{padding-top:18px}
  .panel{padding:16px}
}
@media(max-width:470px){
  .brand strong{font-size:16px}
  .brand small{font-size:10px}
  .brand img{width:40px;height:40px}
  .page-head{align-items:flex-start;flex-direction:column}
  .page-head label{width:100%}
  .form-grid{grid-template-columns:1fr}
  .metric{padding:14px;min-height:104px}
  .metric strong{font-size:18px}
  .record{flex-direction:column}
  .record .right{text-align:left}
  .record .actions{justify-content:flex-start}
}
@media print{
  body{background:#fff;color:#000}
  #login-screen,#app{display:none!important}
  #print-area{display:block!important;padding:0}
  #print-area h1{font-size:22px}
  #print-area table{font-size:10px}
  #print-area th,#print-area td{padding:7px}
  @page{size:A4;margin:14mm}
}
