/* Aakaar calculators and small media tools — designed by Aarsh Kandra. Built on the Aakaar theme tokens. */
.calc,.media-app{position:relative;min-height:320px}
.calc-skel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s3)}
.calc-skel span{display:block;height:300px;border-radius:var(--r-lg,18px);background:linear-gradient(90deg,var(--paper2),var(--paper),var(--paper2));background-size:200% 100%;animation:calc-sk 1.4s ease infinite}
.calc-skel span:nth-child(3){display:none}
@keyframes calc-sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.calc-skel span{animation:none}}
.calc.is-ready .calc-skel,.media-app.is-ready .calc-skel{display:none}

.calc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s3);align-items:start}
.calc-in,.calc-out,.media-pane{background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--r-lg,18px);padding:clamp(1rem,2vw,1.5rem)}
.calc-out{position:sticky;top:calc(var(--hh) + 12px);min-height:220px}
.calc-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:.3rem 1rem;align-items:center;padding:.45rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.calc-row:last-of-type{border-bottom:0}
.calc-row.calc-row-list,.calc-row.calc-row-text,.calc-row.is-wide{grid-template-columns:1fr}
.calc-row.calc-row-seg{grid-template-columns:1fr}
.calc-row.calc-row-check{grid-template-columns:1fr}
.calc-row-sys{border-bottom:0;padding-top:0}
.calc-row-sys .seg{justify-self:end;width:max-content;max-width:100%}
.seg.calc-seg{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));width:100%;border-radius:12px;gap:3px}
.seg.calc-seg button{border-radius:9px;padding:.45rem .6rem;line-height:1.25;text-align:center;white-space:normal;min-height:40px}
.calc-lbl{font-size:.93rem;font-weight:500;color:var(--ink);line-height:1.3}
.calc-lbl-u{color:var(--grey);font-weight:400}
.calc-hint{grid-column:1/-1;font-size:.8rem;color:var(--grey);line-height:1.35}
.calc-err{grid-column:1/-1;font-size:.82rem;color:var(--bad,#a1271a);font-weight:500}
.calc-err:empty{display:none}
.calc-in input[type=text],.calc-in input[type=date],.calc-in input[type=time],.calc-in select,.calc-in textarea{width:100%;font:inherit;font-size:16px;min-height:44px;padding:.45rem .7rem;border:1px solid #c7bbb1;border-radius:var(--r-sm,8px);background:#fff;color:var(--ink);transition:border-color var(--t-fast,160ms),box-shadow var(--t-fast,160ms)}
.calc-in textarea{font-family:var(--font-mono);font-size:.9rem;line-height:1.5;min-height:120px}
.calc-in input:hover,.calc-in select:hover,.calc-in textarea:hover{border-color:var(--ink)}
.calc-in input:focus,.calc-in select:focus,.calc-in textarea:focus{outline:none;border-color:var(--rust);box-shadow:0 0 0 3px color-mix(in srgb,var(--rust) 24%,transparent)}
.calc-in [aria-invalid=true]{border-color:var(--bad,#a1271a);background:#fff6f5}
.calc-num{position:relative;display:block}
.calc-num.has-u input{padding-right:3.6rem;font-variant-numeric:tabular-nums;text-align:right}
.calc-u{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:.78rem;color:var(--grey);pointer-events:none}
.calc-check{display:flex;align-items:center;gap:.6rem;font-size:.93rem;cursor:pointer;min-height:40px}
.calc-check input{width:20px;height:20px;accent-color:var(--rust)}
.calc-group{margin:.6rem 0 0;border-top:1px solid var(--line)}
.calc-group summary{cursor:pointer;font-size:.88rem;font-weight:600;color:var(--char);padding:.7rem 0;list-style:none;display:flex;align-items:center;gap:.5rem}
.calc-group summary::-webkit-details-marker{display:none}
.calc-group summary::before{content:"";flex:0 0 18px;width:18px;height:18px;box-sizing:border-box;border:1px solid var(--grey);border-radius:4px;background:linear-gradient(currentColor,currentColor) center/8px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 8px no-repeat}
.calc-group[open] summary::before{background:linear-gradient(currentColor,currentColor) center/8px 1.5px no-repeat}
.calc-group summary{line-height:18px}
.calc-actions{display:flex;gap:.5rem;margin-top:.9rem}
.calc-btn{font:inherit;font-size:.9rem;font-weight:500;min-height:40px;padding:.4rem 1rem;border-radius:var(--r-pill,999px);border:1px solid var(--rust);background:var(--rust);color:var(--on-rust);cursor:pointer;transition:background var(--t-fast,160ms),border-color var(--t-fast,160ms),color var(--t-fast,160ms)}
.calc-btn:hover{background:var(--rust-d)}
.calc-btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.calc-btn.ghost:hover{border-color:var(--ink);background:var(--paper)}
.calc-btn:focus-visible{outline:3px solid var(--rust);outline-offset:2px}

/* lists (rooms, layers, facades, stages) */
.calc-list{display:flex;flex-direction:column;gap:.5rem}
.calc-lrows{display:flex;flex-direction:column;gap:.35rem}
.calc-lrow{display:grid;grid-template-columns:var(--lcols,minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) 34px);gap:.35rem;align-items:center}
.calc-lhead span{font-size:.74rem;color:var(--grey);font-weight:500;line-height:1.2}
.calc-lrow .calc-num.has-u input{padding-right:.6rem}
.calc-lrow .calc-u{display:none}
.calc-x{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--grey);cursor:pointer;font-size:1.1rem;line-height:1}
.calc-x:hover:not([disabled]){border-color:var(--bad,#a1271a);color:var(--bad,#a1271a)}
.calc-x[disabled]{opacity:.35;cursor:default}
.calc-add{align-self:flex-start;font:inherit;font-size:.88rem;font-weight:500;background:none;border:1px dashed var(--grey);border-radius:var(--r-pill,999px);padding:.35rem .9rem;cursor:pointer;color:var(--ink)}
.calc-add:hover{border-color:var(--rust);color:var(--rust)}

/* results */
.calc-main{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.9rem;margin-bottom:.4rem;border-bottom:2px solid var(--ink)}
.calc-main-l{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey)}
.calc-main-v{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:500;letter-spacing:-.035em;line-height:1.05;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.calc-main-x{color:var(--char);font-size:.98rem}
.calc-rows{margin:0;display:grid}
.calc-rows>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.55rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.calc-rows dt{color:var(--char);font-size:.93rem}
.calc-rows dd{margin:0;text-align:right;font-weight:550;font-variant-numeric:tabular-nums}
.calc-rows dd small{display:block;font-weight:400;color:var(--grey);font-size:.8rem}
.calc-rows .is-hl dd{color:var(--rust)}
.calc-flag{font-size:.88rem;line-height:1.45;margin:.7rem 0 0;padding:.6rem .8rem;border-radius:var(--r-sm,8px)}
.calc-flag.warn{background:#fdf1d8;color:#4a3300}
.calc-flag.ok{background:#e8f3ea;color:#1e4a26}
.calc-flag.info{background:var(--paper);color:var(--char)}
.calc-tbl{margin-top:.9rem;overflow-x:auto}
.calc-tbl table{width:100%;border-collapse:collapse;font-size:.86rem;font-variant-numeric:tabular-nums}
.calc-tbl caption{text-align:left;font-weight:600;padding:0 0 .4rem;font-size:.86rem}
.calc-tbl th{text-align:left;font-weight:600;color:var(--grey);font-size:.76rem;border-bottom:1px solid var(--line);padding:.4rem .5rem .4rem 0}
.calc-tbl td{border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);padding:.42rem .5rem .42rem 0}
.calc-tbl tr.is-hl td{color:var(--rust);font-weight:600}
.calc-fig{margin:1rem 0 0;color:var(--ink)}
.calc-fig svg{width:100%;max-width:420px;height:auto;display:block;margin:0 auto}
.calc-tools{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line)}
.calc-wait{display:flex;flex-direction:column;gap:.3rem;padding:1.4rem;border:1px dashed var(--line);border-radius:var(--r-md,12px);color:var(--char)}
.calc-wait.bad{border-color:var(--bad,#a1271a);color:var(--bad,#a1271a)}
.calc-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (max-width:900px){
	.calc-grid,.calc-skel{grid-template-columns:1fr}
	.calc-out{position:static}
	.calc-skel span:nth-child(2){height:180px}
}
@media (max-width:520px){
	.calc-row{grid-template-columns:1fr}
	.calc-tools .calc-btn{flex:1 1 calc(50% - .4rem)}
	.calc-lrow{gap:.25rem}
}

/* print sheet (calculation record) */
.calc-print{display:none}
@media print{
	html.calc-printing body>*:not(.calc-print){display:none!important}
	html.calc-printing .calc-print{display:block;color:#000;font:11pt/1.4 Helvetica,Arial,sans-serif}
	.calc-print h2{font-size:18pt;margin:0 0 4pt}
	.calc-print h3{font-size:12pt;margin:14pt 0 4pt}
	.calc-print table{width:100%;border-collapse:collapse}
	.calc-print th,.calc-print td{text-align:left;border-bottom:.5pt solid #999;padding:3pt 6pt 3pt 0;vertical-align:top}
	.calc-print th{width:45%;font-weight:normal;color:#444}
	.calc-print-meta,.calc-print-f{color:#444;font-size:9pt}
	.calc-print .calc-fig svg{max-width:300px}
}

/* image tools */
.media-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s3);align-items:start}
.media-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;min-height:200px;padding:1.5rem;border:1.5px dashed var(--ink);border-radius:var(--r-md,12px);background:var(--paper);cursor:pointer;position:relative;transition:background var(--t-fast,160ms),border-color var(--t-fast,160ms)}
.media-drop:hover,.media-drop.over{background:var(--paper2);border-color:var(--rust)}
.media-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.media-drop strong{font-weight:500;font-size:1.05rem}
.media-drop span{color:var(--grey);font-size:.88rem}
.media-list{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:420px;overflow:auto}
.media-list{overflow-x:hidden}
.media-list li>span{min-width:0;display:flex;flex-direction:column;gap:.1rem;overflow:hidden}
.media-list li>:last-child{justify-self:end}
.media-list .nm{display:block;max-width:100%}
.media-list .sz.big b{color:var(--grey)}
.media-list li{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.45rem;border:1px solid var(--line);border-radius:var(--r-sm,8px);background:#fff;font-size:.86rem}
.media-list img{width:52px;height:40px;object-fit:cover;border-radius:4px;background:var(--paper2)}
.media-list .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.media-list .sz{color:var(--grey);font-family:var(--font-mono);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-list .sz b{color:var(--ok,#2f6b3a);font-weight:500}
.media-sw{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.8rem}
.media-sw button{display:flex;flex-direction:column;align-items:stretch;padding:0;border:1px solid var(--line);border-radius:var(--r-sm,8px);overflow:hidden;background:#fff;cursor:pointer;font:inherit;text-align:left}
.media-sw button span:first-child{height:70px}
.media-sw button span:last-child{padding:.4rem .5rem;font-family:var(--font-mono);font-size:.76rem}
.media-sw button small{display:block;color:var(--grey);font-size:.7rem}
.media-prev{max-width:100%;max-height:320px;border-radius:var(--r-sm,8px);display:block;margin:0 auto;background:var(--paper2)}
@media (max-width:900px){.media-grid{grid-template-columns:1fr}}
