
:root{
  --bg:#f3f5f7;--card:#fff;--text:#1f2937;--muted:#667085;--border:#d6dce2;
  --accent:#315b7c;--accent-soft:#eaf0f4;--ok:#2f6b4f;--bad:#a13b2b;--warn:#8a5a00;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,sans-serif}
.topbar{background:#fff;border-bottom:1px solid var(--border)}
.topinner{max-width:1220px;margin:auto;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px}
.brand{font-weight:700;font-size:18px}.brand small{font-weight:400;color:var(--muted)}
.nav{display:flex;gap:7px;flex-wrap:wrap}
.nav a{text-decoration:none;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 9px;font-size:12px;background:#fff}
.nav a.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.wrap{max-width:1220px;margin:22px auto;padding:0 18px 32px}
h1{font-size:25px;margin:0 0 5px} h2{font-size:18px;margin:0 0 12px} h3{font-size:15px;margin:14px 0 8px}
.lead{margin:0 0 18px;color:var(--muted);line-height:1.45}
.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}
.card+.card{margin-top:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.toolcard{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;min-height:150px;transition:.12s}
.toolcard:hover{transform:translateY(-1px);border-color:#aebbc6;box-shadow:0 4px 18px rgba(20,35,50,.06)}
.toolcard .icon{font-size:28px;margin-bottom:10px}.toolcard h2{margin-bottom:6px}.toolcard p{color:var(--muted);font-size:13px;line-height:1.5;margin:0}
label{font-size:13px;font-weight:700;display:block;line-height:1.2}
label input,label select{margin-top:6px}
input,select,button{font:inherit}
input,select{width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 10px;background:#fff;color:var(--text)}
input:disabled{background:#f1f3f5;color:#667085}
button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:9px 12px;cursor:pointer}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fields2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.metric{border:1px solid var(--border);border-radius:9px;padding:10px;background:#fafbfc}
.metric span{display:block;color:var(--muted);font-size:12px}.metric b{display:block;font-size:19px;margin-top:3px}
.label-title,.metric-title{display:inline-flex;align-items:flex-start;gap:3px;line-height:1.2;flex-wrap:nowrap}
.metric-title{display:flex}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.notice{border-left:4px solid #7892a7;padding:9px 11px;background:#f7f9fb;font-size:13px;line-height:1.48;margin-top:12px}
.notice.warn{border-left-color:var(--warn)}
.help,.source,.message{font-size:12px;color:var(--muted);line-height:1.5}
.message{margin-top:10px;min-height:18px}
.switchline{display:flex;align-items:flex-start;gap:8px;margin-top:10px}.switchline input{width:auto;margin-top:2px}.switchline label{font-weight:400}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:9px;margin-top:12px}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}
th,td{border-top:1px solid var(--border);padding:8px;text-align:left;vertical-align:middle}
thead th{border-top:none;background:#f8fafc}.num{text-align:right}.num input{max-width:100px;text-align:right}
.badge-ok{color:var(--ok);font-weight:700}.badge-bad{color:var(--bad);font-weight:700}.badge-info{color:var(--muted);font-weight:700}
details{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}summary{cursor:pointer;font-weight:700}
.calcbox{font-family:Consolas,'Courier New',monospace;font-size:12px;line-height:1.55;background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:10px;overflow:auto;margin-top:10px}
.resultbig{font-size:31px;font-weight:700;margin:3px 0}
.segment{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.segment button.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.schematic{border:1px solid var(--border);border-radius:10px;background:#fbfcfd;padding:8px;margin-top:10px}
.schematic svg{width:100%;height:auto;display:block}
footer{font-size:12px;color:var(--muted);margin-top:16px}
.hide{display:none!important}
@media(max-width:900px){.grid2,.cards{grid-template-columns:1fr}.fields,.grid3,.grid4,.metrics{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fields,.fields2,.grid3,.grid4,.metrics{grid-template-columns:1fr}.topinner{align-items:flex-start;flex-direction:column}}
@media print{
  body{background:#fff}.topbar,.print-hide{display:none!important}.wrap{max-width:none;margin:0;padding:0}
  .card{break-inside:avoid}.grid2{display:block}.card+.card{margin-top:12px}
  details{display:block} details>summary{display:none}
}

.nav a.external{background:#eef5f0;border-color:#b9d0bf;color:#24543a}.nav a.external:hover{background:#e4f0e8}
.rain-total{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.smalltable{min-width:520px}.smalltable th,.smalltable td{font-size:12px;padding:6px 8px}
@media(max-width:700px){.rain-total{grid-template-columns:1fr}}





.statebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 11px;margin:0 0 16px}
.statebar input[type="text"]{width:330px;max-width:100%;padding:8px 10px}
.statebar button{padding:8px 12px;font-size:13px}
.statebar .state-status{margin-left:auto;font-size:12px;color:var(--muted)}
.saved-section{margin-top:18px}
.saved-section h2{margin-bottom:4px}
.saved-help{font-size:12px;color:var(--muted);margin-bottom:10px}
.saved-empty{font-size:13px;color:var(--muted);padding:10px 0}
.saved-list{border:1px solid var(--border);border-radius:9px;overflow:hidden}
.saved-row{display:grid;grid-template-columns:minmax(0,1fr) 180px 44px;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--border);background:#fff}
.saved-row:first-child{border-top:none}
.saved-name{border:none;background:transparent;text-align:left;padding:3px 0;font-weight:700;color:var(--accent);cursor:pointer}
.saved-name:hover{text-decoration:underline}
.saved-date{font-size:12px;color:var(--muted);text-align:right}
.saved-delete{border:1px solid var(--border);background:#fff;border-radius:7px;width:32px;height:32px;padding:0;font-size:20px;line-height:28px;cursor:pointer}
.saved-delete:hover{background:#f7f7f7}
@media(max-width:700px){
  .statebar .state-status{width:100%;margin-left:0}
  .saved-row{grid-template-columns:minmax(0,1fr) 120px 40px}
}





/* Selgitusnupud ja hõljukvihjed */
.info-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:10px;
  height:10px;
  margin-left:1px;
  position:relative;
  top:-0.30em;
  border:1px solid #b7c1c9;
  border-radius:50%;
  background:#fbfcfd;
  color:#6b7b88;
  font-size:6px;
  font-weight:700;
  line-height:1;
  cursor:help;
  user-select:none;
  opacity:.72;
  flex:0 0 auto;
}
.info-btn:hover,.info-btn:focus{
  outline:none;
  opacity:1;
  background:#eef3f6;
  border-color:#8396a5;
  color:#315b7c;
}
th .info-btn{top:-0.22em;margin-left:1px}
.metric-title .info-btn,.label-title .info-btn,.metric span .info-btn{top:0;margin-left:0;transform:translateY(1px)}
.info-tooltip{
  position:fixed;
  z-index:10000;
  display:none;
  max-width:340px;
  padding:9px 11px;
  background:#1f2937;
  color:#fff;
  border-radius:8px;
  font-size:12px;
  line-height:1.45;
  font-weight:400;
  box-shadow:0 6px 22px rgba(0,0,0,.20);
  pointer-events:none;
}
.info-tooltip.show{display:block}
.saved-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.saved-actions button,.saved-actions .filelabel{font-size:12px;padding:7px 10px}
.nav a.active{background:#e9f0f5;border-color:#91a8b9;color:#244d69;font-weight:700}
@media print{.info-btn,.info-tooltip{display:none!important}}


/* Projekt ja koondaruanne */
.projectbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:9px 11px;margin:0 0 14px}
.projectbar .report-check{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#263746;white-space:nowrap}
.projectbar .report-check input{margin:0}
.projectbar .project-summary{font-size:12px;color:var(--muted);margin-right:auto}
.projectbar a{font-size:12px;text-decoration:none}
.project-card .fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-status{font-size:12px;color:var(--muted);margin-top:8px}
.report-value{display:inline-block;min-width:42px;padding:3px 6px;border:1px solid #d6dee5;border-radius:5px;background:#f8fafc;color:#1f2937;font-weight:600;white-space:pre-wrap}
.report-page{background:#eef2f5}
.report-toolbar{max-width:1100px;margin:16px auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.report-document{max-width:1000px;margin:0 auto 36px;background:#fff;padding:28px 34px;border:1px solid #d7dee4;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.report-head{border-bottom:2px solid #60798d;padding-bottom:14px;margin-bottom:20px}
.report-head h1{font-size:24px;margin:0 0 10px}
.report-project{width:100%;border-collapse:collapse;font-size:12px}
.report-project td{border:1px solid #d8e0e6;padding:6px 8px;vertical-align:top}
.report-project td:first-child{width:145px;font-weight:700;background:#f5f8fa}
.report-index{margin:12px 0 20px;padding:10px 12px;background:#f6f8fa;border:1px solid #d8e0e6;border-radius:8px;font-size:12px}
.report-module{margin-top:26px;padding-top:8px}
.report-module+.report-module{border-top:2px solid #9aabb9}
.report-module-title{font-size:20px;margin:0 0 4px}
.report-module-meta{font-size:11px;color:#667085;margin-bottom:12px}
.report-module .wrap{max-width:none;padding:0;margin:0}
.report-module .card{box-shadow:none}
.report-module .tablewrap{overflow:visible}
.report-module input,.report-module select,.report-module textarea{display:none!important}
.report-warning{padding:10px 12px;border:1px solid #e4b76a;background:#fff8e8;border-radius:8px;color:#7a4b00;font-size:12px}
@media(max-width:800px){.project-card .fields{grid-template-columns:1fr}.report-document{margin:0 8px;padding:18px}.projectbar{align-items:flex-start}}
@media print{
 @page{size:A4;margin:12mm}
 body.report-page{background:#fff}
 .topbar,.report-toolbar,.print-hide,.projectbar{display:none!important}
 .report-document{max-width:none;margin:0;padding:0;border:none;border-radius:0;box-shadow:none}
 .report-module{break-before:page;border-top:none!important;margin-top:0;padding-top:0}
 .report-module:first-of-type{break-before:auto}
 .report-module .card,.report-module table,.report-module .schematic{break-inside:avoid}
 .report-module .card{border-color:#cfd7dd}
 .report-head{break-after:avoid}
}

.buttonlike{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);text-decoration:none;font-size:13px}


/* v1.9 projektiruum */
.project-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;margin-top:14px}
.project-list{margin-top:8px;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.project-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border-top:1px solid var(--border);background:#fff}
.project-row:first-child{border-top:none}
.project-row.active{background:#eef4f7}
.project-row-meta{font-size:11px;color:var(--muted);margin-top:2px}
.project-row-actions{display:flex;gap:6px}
.project-row-actions button{padding:6px 9px;font-size:12px}
.project-calculations{margin-top:10px;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.project-calc-row{display:grid;grid-template-columns:105px minmax(160px,1fr) 210px 145px;gap:10px;align-items:center;padding:8px 10px;border-top:1px solid var(--border);background:#fff;font-size:12px}
.project-calc-row:first-child{border-top:none}
.project-report-toggle{display:flex;align-items:center;gap:6px;font-weight:400}
.project-report-toggle input{width:auto;margin:0}
.project-calc-name{font-weight:700;color:var(--accent);text-decoration:none}
.project-calc-name:hover{text-decoration:underline}
.project-calc-type,.project-calc-date{color:var(--muted)}
.state-report-check{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:400;white-space:nowrap}
.state-report-check input{width:auto;margin:0}
.saved-row{grid-template-columns:105px minmax(0,1fr) 180px 44px}
.saved-report{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:400;color:var(--muted)}
.saved-report input{width:auto;margin:0}

/* v1.9 koondaruanne */
.report-toolbar{max-width:920px}
.report-document{max-width:920px}
.report-brand{font-size:13px;font-weight:700;letter-spacing:.05em;color:#52697a;margin-bottom:4px}
.report-snapshot{width:100%}
.report-snapshot .grid2{display:block!important}
.report-snapshot .grid2>.card{margin-top:12px}
.report-snapshot .grid2>.card:first-child{margin-top:0}
.report-snapshot .card{width:100%;box-shadow:none;border-radius:7px;padding:12px 14px}
.report-snapshot .card+.card{margin-top:12px}
.report-snapshot .tablewrap{overflow:visible!important;width:100%}
.report-snapshot table{min-width:0!important;width:100%!important;font-size:11px}
.report-snapshot th,.report-snapshot td{padding:5px 6px}
.report-snapshot .schematic{width:100%;overflow:hidden}
.report-snapshot .schematic svg{max-width:100%;height:auto}
.report-snapshot .metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.report-module{width:100%}
.report-module-title{font-size:18px;color:#233947}
.report-module-meta{border-bottom:1px solid #dbe2e7;padding-bottom:7px;margin-bottom:10px}
.report-footer{max-width:920px;margin:0 auto 30px}

@media(max-width:850px){
 .project-workspace{grid-template-columns:1fr}
 .project-calc-row{grid-template-columns:100px minmax(0,1fr)}
 .project-calc-type,.project-calc-date{grid-column:2}
}
@media print{
 .report-snapshot .card{border:1px solid #d7dee4}
 .report-snapshot table{font-size:10px}
 .report-snapshot .metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

.project-status{margin-top:10px;padding:8px 10px;border-radius:8px;background:#f7f9fb;color:#52606d;font-size:12px}
.project-row.active{box-shadow:inset 3px 0 0 var(--accent)}

/* v1.9.4 aruande stabiilsus */
.report-snapshot table{table-layout:fixed;overflow-wrap:anywhere}
.report-snapshot th,.report-snapshot td{word-break:normal;overflow-wrap:anywhere}
.report-module+.report-module{break-before:page;page-break-before:always}
.report-snapshot .card,.report-snapshot .schematic{break-inside:avoid;page-break-inside:avoid}
@media print{
  .report-document{max-width:none;width:100%}
  .report-head,.report-index,.report-module{width:100%}
}
