:root{--bg:#F3F8F5;--card:#fff;--ink:#12281F;--mut:#5F776B;--line:#DCE9E2;--g:#0F7B5F;--on:#fff;--gs:#E2F4EC;--red:#C8382E;--rs:#FCE9E7;--amb:#B97800;--as:#FFF3D6;--b2:#E7A33E;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root{--bg:#0C1713;--card:#13241D;--ink:#E6F2EC;--mut:#8DA89B;--line:#21392E;--g:#35C595;--on:#06231A;--gs:#14382C;--red:#FF8A80;--rs:#3A1B19;--amb:#F5B94B;--as:#3A2E12}}
*{box-sizing:border-box}
body{margin:0;font-family:'Hind Siliguri',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
a{color:var(--g);text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}
:focus-visible{outline:3px solid var(--b2);outline-offset:2px}
.w{max-width:1100px;margin:0 auto;padding:0 16px}
.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;gap:10px;min-height:58px;flex-wrap:wrap}
.brand{font-size:1.2rem;font-weight:700}.bname{color:var(--mut);font-size:.9rem}.sp{flex:1}
.chip{display:inline-block;padding:6px 14px;border-radius:99px;border:1px solid var(--line);background:var(--card);font-weight:600;font-size:.88rem;color:var(--ink)}
form.inline{display:inline}
nav.menu{display:flex;gap:6px;overflow-x:auto;padding:0 16px 10px;max-width:1100px;margin:0 auto}
nav.menu a{padding:8px 16px;border-radius:12px;background:var(--bg);color:var(--ink);font-weight:600;white-space:nowrap}
nav.menu a.on{background:var(--g);color:var(--on)}
main.w{padding-top:18px;padding-bottom:50px}
h1{font-size:1.5rem;margin:6px 0 14px}h2{font-size:1.1rem;margin:22px 0 10px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}
.grid .card{margin-bottom:0}
.stat small{color:var(--mut)}.stat b{display:block;font-size:1.6rem;line-height:1.25}.stat span{font-size:.82rem;color:var(--mut)}
.hero{background:linear-gradient(135deg,var(--g),#0A5A46);color:var(--on);border:0}.hero small,.hero span{color:inherit;opacity:.85}
.red{color:var(--red)}.mut{color:var(--mut)}.ok{color:var(--g)}
.btn{display:inline-block;background:var(--g);color:var(--on);border:0;border-radius:12px;padding:10px 18px;font-weight:700}
.btn.s{padding:6px 12px;font-size:.84rem}.btn.o{background:var(--card);color:var(--g);border:1.5px solid var(--g)}.btn.r{background:var(--rs);color:var(--red)}
.tag{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:700}.tg{background:var(--gs);color:var(--g)}.tr{background:var(--rs);color:var(--red)}.ta{background:var(--as);color:var(--amb)}
.f{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}
label{display:block;font-size:.8rem;font-weight:600;color:var(--mut);margin-bottom:3px}
input,select{width:100%;height:42px;border:1.5px solid var(--line);border-radius:10px;padding:0 12px;background:var(--bg)}
input:focus,select:focus{outline:0;border-color:var(--g)}input[type=checkbox]{width:auto;height:auto}
.err{color:var(--red);font-size:.84rem;margin-top:3px}
.flash{padding:11px 16px;border-radius:12px;margin-bottom:12px;font-weight:600}.flash.ok{background:var(--gs);color:var(--g)}.flash.bad{background:var(--rs);color:var(--red)}
.tblw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;color:var(--mut);font-weight:600;font-size:.8rem;padding:8px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border:0}
td.n,th.n{text-align:right}
.ch{display:flex;align-items:end;gap:10px;height:150px;padding-top:8px}
.ch div.c{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:end}
.ch .p{display:flex;align-items:end;gap:3px;height:calc(100% - 22px);width:100%;justify-content:center}
.ch i{display:block;width:42%;max-width:26px;border-radius:5px 5px 0 0;background:var(--g)}.ch i+i{background:var(--b2)}
.ch small{color:var(--mut);font-size:.74rem}
.lg{display:flex;gap:14px;font-size:.8rem;color:var(--mut);margin-top:6px}.lg b{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--g);margin-right:5px}.lg span+span b{background:var(--b2)}
.login{max-width:420px;margin:30px auto}
.login input[name=code]{font-size:1.6rem;letter-spacing:.4em;text-align:center}
details summary{cursor:pointer;color:var(--g);font-weight:600;margin-top:14px}
.row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line)}.row:last-child{border:0}
/* row context menu (⋮): only the actions that apply to that row */
.ctx{position:relative;display:inline-block}
.ctx>summary{list-style:none;margin:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:1.15rem;line-height:1}
.ctx>summary::-webkit-details-marker{display:none}
.ctx[open]>summary,.ctx>summary:hover{border-color:var(--g);color:var(--g)}
.ctx-menu{position:fixed;z-index:50;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:6px;text-align:left}
.ctx-menu form{margin:0}
.ctx-item{display:block;width:100%;padding:9px 12px;border:0;border-radius:8px;background:none;color:var(--ink);font-weight:600;font-size:.88rem;text-align:left;white-space:nowrap}
.ctx-item:hover,.ctx-item:focus-visible{background:var(--gs);color:var(--g)}
.ctx-item.danger{color:var(--red)}.ctx-item.danger:hover{background:var(--rs);color:var(--red)}
.ctx-sep{height:1px;background:var(--line);margin:4px 2px}
@media(max-width:600px){main.w{padding-top:12px}.stat b{font-size:1.35rem}}
/* printable pages */
.sheet{max-width:720px;margin:20px auto;background:#fff;color:#111;padding:28px;border:1px solid #ddd;border-radius:6px;font-family:'Hind Siliguri',system-ui,sans-serif}
.sheet h1{margin:0 0 4px}.sheet table{margin:14px 0}.sheet th{color:#555}.sheet .tot td{font-weight:700;border-top:2px solid #111}
.noprint{text-align:center;margin:14px}
@media print{body{background:#fff}.noprint{display:none}.sheet{border:0;margin:0;padding:0}}
/* smart & interactive pagination */
.pagination-box,.pagination-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:8px 14px;margin-top:14px;box-shadow:0 1px 3px rgba(0,0,0,0.03);width:100%}
.pg-left{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;flex-shrink:0}
.pg-summary{font-size:.86rem;color:var(--mut);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;flex-shrink:0}
.pg-summary b{color:var(--ink);font-weight:700}
.pg-per-page-wrap{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;color:var(--mut);border-left:1px solid var(--line);padding-left:12px}
.pg-select{height:32px;padding:0 8px;font-size:.82rem;font-weight:600;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);cursor:pointer;width:auto}
.pg-center{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;color:var(--mut);white-space:nowrap;flex-shrink:0}
.pg-jump-input{width:48px;height:32px;text-align:center;padding:0 4px;font-size:.84rem;font-weight:700;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.pg-jump-btn{height:32px;padding:0 10px;font-size:.8rem;font-weight:700;border-radius:8px;background:var(--gs);color:var(--g);border:1px solid transparent;cursor:pointer;transition:all .15s ease}
.pg-jump-btn:hover{background:var(--g);color:var(--on)}
.pg-nav{display:inline-flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0;white-space:nowrap;flex-shrink:0}
.pg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 9px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-weight:600;font-size:.84rem;text-decoration:none;transition:all .15s ease;cursor:pointer;line-height:1;user-select:none}
.pg-btn:hover:not(.disabled):not(.active){background:var(--gs);border-color:var(--g);color:var(--g);transform:translateY(-1px)}
.pg-btn:active:not(.disabled){transform:scale(0.96)}
.pg-btn.active{background:var(--g);color:var(--on);border-color:var(--g);font-weight:700;pointer-events:none;box-shadow:0 2px 5px rgba(15,123,95,0.25)}
.pg-btn.disabled{opacity:.35;cursor:not-allowed;pointer-events:none;background:transparent;border-color:transparent}
.pg-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:32px;color:var(--mut);font-size:.84rem}
.pg-per-page{display:inline-flex;align-items:center;gap:6px}
.pg-per-page select{height:34px;padding:0 8px;font-size:.84rem;border-radius:8px;width:auto}
@media(max-width:768px){.pagination-box,.pagination-bar{flex-wrap:wrap;justify-content:center;gap:10px}.pg-per-page-wrap{border-left:0;padding-left:0}}
