/* ── MODALS ── */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(5px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
.ov.show{opacity:1;pointer-events:all}
.mdl{background:var(--s1);border:1px solid var(--b2);border-radius:12px;padding:26px;width:500px;max-width:94vw;max-height:88vh;overflow-y:auto;box-shadow:var(--shad);transform:translateY(10px);transition:transform .18s}
.ov.show .mdl{transform:none}
.mdl h2{font-family:'DM Serif Display',serif;font-size:20px;margin-bottom:5px}
.mdl p{font-size:12.5px;color:var(--txt2);margin-bottom:16px;line-height:1.5}
.mdlbtns{display:flex;gap:7px;justify-content:flex-end;margin-top:16px}

.tplgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tplcard{border:2px solid var(--b1);border-radius:9px;padding:11px 7px;cursor:pointer;text-align:center;background:var(--s2);transition:.14s}
.tplcard:hover{border-color:var(--blue)}
.tplcard.on{border-color:var(--gold);background:rgba(232,200,74,.06)}
.tplthumb{width:100%;aspect-ratio:.72;background:var(--s3);border-radius:5px;margin-bottom:6px;display:flex;flex-direction:column;gap:4px;padding:7px 5px;overflow:hidden}
.tplbar{height:5px;border-radius:2px;background:var(--b2)}
.tplbar.g{background:var(--gold)}
.tplbar.b{background:var(--blue)}
.tplbar.d{background:#484850}
.tplcard span{font-size:10.5px;color:var(--txt2);font-weight:500}
.tplcard.on span{color:var(--gold)}

.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fg{display:flex;flex-direction:column;gap:3px}
.fg.full{grid-column:1/-1}
.fg label{font-size:9.5px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.5px}

.hctrl{display:flex;gap:8px;margin-bottom:10px}
.hctrl .fi{flex:1}
.hctrl select.fi,.hctrl input.fi[type=date]{max-width:150px}
.hkpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:10px}
.hkpi{padding:10px 12px;border:1px solid var(--b2);border-radius:8px;background:linear-gradient(180deg,var(--s2),rgba(26,26,30,.84))}
.hkpi strong{display:block;font-size:18px;line-height:1.1;color:var(--txt)}
.hkpi span{display:block;margin-top:4px;font-size:10px;color:var(--txt3);text-transform:uppercase;letter-spacing:.7px}
.htablewrap{border:1px solid var(--b2);border-radius:8px;max-height:52vh;overflow:auto;background:var(--s2)}
.htable{width:100%;border-collapse:collapse;font-size:12px}
.htable th,.htable td{padding:8px 10px;border-bottom:1px solid var(--b1);text-align:left;vertical-align:middle}
.htable th{position:sticky;top:0;background:var(--s1);z-index:1;font-size:10px;color:var(--txt3);text-transform:uppercase;letter-spacing:.6px}
.htable tr:last-child td{border-bottom:none}
.hstatus{display:inline-block;padding:2px 7px;border-radius:999px;border:1px solid var(--b2);font-size:10.5px;font-weight:600}
.hstatus.draft{color:var(--blue);border-color:rgba(88,126,244,.45);background:rgba(88,126,244,.08)}
.hstatus.issued{color:var(--gold);border-color:rgba(232,200,74,.55);background:rgba(232,200,74,.1)}
.hstatus.paid{color:var(--green);border-color:rgba(62,201,138,.45);background:rgba(62,201,138,.1)}
.hstatus.cancelled{color:var(--red);border-color:rgba(223,84,84,.5);background:rgba(223,84,84,.1)}
.hactions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.hsel{height:24px;background:var(--s1);border:1px solid var(--b2);border-radius:4px;color:var(--txt);font-size:11px;padding:0 6px;font-family:inherit;outline:none;cursor:pointer}
.hempty{padding:16px;color:var(--txt3);font-size:12px;text-align:center}

@media (max-width: 860px){
	.hctrl{flex-wrap:wrap}
	.hctrl .fi{min-width:160px}
	.hkpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── TOAST ── */
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(5px);background:var(--s2);border:1px solid var(--b2);border-radius:7px;padding:7px 14px;font-size:12px;color:var(--txt);box-shadow:var(--shad);opacity:0;transition:.2s;pointer-events:none;z-index:9999;display:flex;align-items:center;gap:6px}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.ticon{width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;flex-shrink:0}
.ticon.ok{background:var(--green);color:#fff}
.ticon.err{background:var(--red);color:#fff}
.ticon.inf{background:var(--blue);color:#fff}

/* ── EXPORT LOADER ── */
#loader{position:fixed;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);z-index:5000;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px}
#loader.show{display:flex}
.spinner{width:40px;height:40px;border:3px solid var(--b2);border-top-color:var(--gold);border-radius:50%;animation:spin .65s linear infinite}
#loadtxt{font-size:13px;color:var(--txt2)}
#progbar{width:200px;height:2px;background:var(--b2);border-radius:1px;overflow:hidden}
#prog{height:100%;background:var(--gold);border-radius:1px;transition:width .3s;width:0%}
