/* Chaipeedika Control: a calm, clean admin console. */
:root{
 --bg:#f5f6f8;--card:#fff;--ink:#141b2d;--ink2:#3d4863;--mute:#6b7690;--line:#e5e8ef;--line2:#eef0f5;
 --brand:#0e7a4d;--brand-d:#0a5a39;--brand-l:#e6f5ee;--brand-ink:#fff;
 --blue:#2563eb;--blue-l:#e8f0fe;--amber:#c27803;--amber-l:#fdf3dc;--red:#d92d20;--red-l:#fdecea;--violet:#6d3df2;--violet-l:#efe9ff;--teal:#0d9488;--teal-l:#def6f3;
 --side:#0f1729;--side2:#1a2440;--side-ink:#cdd5e6;
 --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);--shadow-lg:0 20px 50px -18px rgba(16,24,40,.35);
 --r:12px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:1.45rem}h2{font-size:1.1rem}h3{font-size:.98rem}
a{color:var(--brand);text-decoration:none;cursor:pointer}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.mute{color:var(--mute)}.small{font-size:.82rem}.right{text-align:right}.nowrap{white-space:nowrap}
.ic{display:inline-flex;vertical-align:middle;flex:none}.ic svg{display:block}

/* buttons & inputs */
.btn{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .95rem;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:550;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s;white-space:nowrap}
.btn:hover{background:#f7f8fb;border-color:#d6dae4}.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px rgba(14,122,77,.35)}.btn.primary:hover{background:var(--brand-d);border-color:var(--brand-d)}
.btn.danger{color:var(--red)}.btn.danger:hover{background:var(--red-l);border-color:#f3c3be}
.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:#eef0f5}
.btn.sm{padding:.28rem .65rem;font-size:.82rem;border-radius:8px}.btn[disabled]{opacity:.5;pointer-events:none}
input,select,textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--line);border-radius:9px;background:#fff;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,122,77,.14)}
textarea{resize:vertical;min-height:72px}
label{display:block;font-size:.78rem;font-weight:600;color:var(--ink2);margin:0 0 .3rem}
.fld{margin-bottom:.9rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}.fld.wide{grid-column:1/-1}.hint{font-size:.76rem;color:var(--mute);margin-top:.25rem}
.chk{display:flex;gap:.5rem;align-items:center;font-weight:500;margin:0}.chk input{width:auto}

/* shell */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.logo{display:flex;align-items:center;gap:.7rem;padding:1.15rem 1.2rem 1rem;color:#fff}
.logo .mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#16a36a,#0a5a39);display:grid;place-items:center;font-weight:800;font-size:1rem;box-shadow:0 4px 12px rgba(22,163,106,.4)}
.logo b{display:block;font-size:.98rem;letter-spacing:-.01em}.logo small{display:block;color:#8e9bb8;font-size:.72rem;margin-top:-2px}
.nav{padding:.3rem .7rem 1rem;flex:1}
.nav .sec{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#7482a3;margin:1.1rem .6rem .35rem;font-weight:650}
.nav a{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:9px;color:var(--side-ink);font-weight:520;margin:1px 0;text-decoration:none}
.nav a:hover{background:var(--side2);color:#fff}.nav a.on{background:var(--brand);color:#fff;box-shadow:0 4px 14px -4px rgba(14,122,77,.6)}
.nav a .bd{margin-left:auto;min-width:20px;padding:0 .4rem;border-radius:99px;background:#e5484d;color:#fff;font-size:.7rem;font-weight:700;text-align:center;line-height:20px}
.nav a.on .bd{background:#fff;color:var(--brand)}
.who{padding:.9rem 1rem;border-top:1px solid #ffffff14;display:flex;align-items:center;gap:.7rem}
.avatar{width:34px;height:34px;border-radius:50%;background:#2d3a5c;color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.who .nm{font-weight:600;color:#fff;font-size:.88rem;line-height:1.2}.who .rl{font-size:.74rem;color:#8e9bb8;text-transform:capitalize}.who button{margin-left:auto;background:none;border:0;color:#8e9bb8;cursor:pointer;padding:.3rem;border-radius:8px}.who button:hover{background:var(--side2);color:#fff}
.main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:1rem;padding:.9rem 2rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.85);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.top h1{font-size:1.15rem}.top .grow{flex:1}
.search{position:relative;width:300px}.search input{padding-left:2.3rem;background:#f1f3f8;border-color:transparent}.search .ic{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--mute)}
.search .results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:.35rem;z-index:40}
.search .results a{display:block;padding:.5rem .7rem;border-radius:8px;color:var(--ink);text-decoration:none}.search .results a:hover{background:#f3f5fa}
.page{padding:1.6rem 2rem 4rem;max-width:1500px;width:100%}
.head{display:flex;align-items:flex-end;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap}.head .grow{flex:1}.head p{margin:.2rem 0 0;color:var(--mute)}
.actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.card .ch{display:flex;align-items:center;gap:.6rem;padding:1rem 1.2rem .4rem}.card .ch .grow{flex:1}.card .cb{padding:.6rem 1.2rem 1.2rem}.card.pad{padding:1.1rem 1.2rem}
.grid{display:grid;gap:1rem}.kpis{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));margin-bottom:1rem}
.kpi{padding:1rem 1.15rem}.kpi .l{display:flex;align-items:center;gap:.5rem;color:var(--mute);font-size:.8rem;font-weight:600}.kpi .l .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center}
.kpi .v{font-size:1.65rem;font-weight:720;letter-spacing:-.02em;margin-top:.45rem}.kpi .s{font-size:.78rem;color:var(--mute);margin-top:.1rem}
.up{color:var(--brand)}.down{color:var(--red)}
.cols2{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols21{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
@media(max-width:1180px){.cols2,.cols3,.cols21{grid-template-columns:1fr}}

/* tables */
.tbl{width:100%;border-collapse:collapse}.tbl th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:650;text-align:left;padding:.65rem .9rem;border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfc}
.tbl td{padding:.75rem .9rem;border-bottom:1px solid var(--line2);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr.click{cursor:pointer}.tbl tbody tr.click:hover{background:#f8f9fc}
.tbl .r{text-align:right}.tbl .nm{font-weight:600}.tbl .sub{color:var(--mute);font-size:.8rem}
.scroll{overflow-x:auto}.empty{padding:2.2rem 1rem;text-align:center;color:var(--mute)}

/* badges & chips */
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .6rem;border-radius:99px;font-size:.74rem;font-weight:650;background:#eef0f5;color:var(--ink2);white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.b-active,.b-paid,.b-won,.b-closed{background:var(--brand-l);color:var(--brand-d)}.b-trial,.b-open,.b-contacted,.b-pending,.b-new{background:var(--blue-l);color:#1d4ed8}
.b-past_due,.b-overdue,.b-high,.b-lost,.b-urgent{background:var(--red-l);color:#b42318}.b-suspended,.b-proposal,.b-draft,.b-normal{background:var(--amber-l);color:#92580a}
.b-churned,.b-void,.b-low,.b-cancelled{background:#eceef3;color:#586178}.b-demo{background:var(--violet-l);color:#5b2fd1}
.b-tag::before{display:none}.pill{display:inline-block;padding:.12rem .55rem;border-radius:7px;background:#eef0f5;font-size:.76rem;font-weight:550;color:var(--ink2)}
.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{padding:.32rem .8rem;border-radius:99px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:550;font-size:.82rem;color:var(--ink2)}
.chip:hover{border-color:#cdd3e0}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip .n{opacity:.6;margin-left:.3rem}
.tabs{display:flex;gap:.2rem;border-bottom:1px solid var(--line);margin-bottom:1.1rem;overflow-x:auto}.tab{padding:.65rem 1rem;color:var(--mute);font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:var(--ink)}.tab.on{color:var(--brand);border-color:var(--brand)}

/* charts */
.chart{width:100%;height:auto;display:block}.legend{display:flex;gap:1rem;font-size:.78rem;color:var(--mute)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.hbar{display:grid;grid-template-columns:96px 1fr auto;gap:.7rem;align-items:center;margin:.5rem 0;font-size:.85rem}.hbar .t{height:10px;background:#eef0f5;border-radius:6px;overflow:hidden}.hbar .t i{display:block;height:100%;border-radius:6px;background:var(--brand)}
.donutwrap{display:flex;gap:1.4rem;align-items:center}.donut{width:132px;height:132px;border-radius:50%;position:relative;flex:none}.donut::after{content:"";position:absolute;inset:22px;background:#fff;border-radius:50%}.donut .c{position:absolute;inset:0;display:grid;place-items:center;z-index:1;text-align:center;font-weight:700;font-size:1.3rem;line-height:1.1}.donut .c small{display:block;font-weight:500;font-size:.7rem;color:var(--mute)}
.dleg div{display:flex;align-items:center;gap:.5rem;margin:.28rem 0;font-size:.85rem}.dleg i{width:10px;height:10px;border-radius:3px;flex:none}.dleg b{margin-left:auto;padding-left:1rem}

/* lists */
.alist .it{display:flex;gap:.8rem;align-items:flex-start;padding:.7rem 0;border-bottom:1px solid var(--line2);color:var(--ink);text-decoration:none;cursor:pointer}.alist .it:last-child{border:0}.alist .it:hover .tt{color:var(--brand)}
.alist .dot{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none}.alist .tt{font-weight:600}.alist .dd{color:var(--mute);font-size:.82rem}
.feed .ev{display:flex;gap:.7rem;padding:.55rem 0;border-bottom:1px solid var(--line2);font-size:.85rem}.feed .ev:last-child{border:0}.feed .ev b{font-weight:600}.feed .ev .w{color:var(--mute);font-size:.76rem;white-space:nowrap;margin-left:auto}
.kv{display:grid;grid-template-columns:130px 1fr;gap:.5rem 1rem;font-size:.88rem}.kv dt{color:var(--mute)}.kv dd{margin:0;font-weight:520}

/* board */
.board{display:grid;grid-template-columns:repeat(6,minmax(196px,1fr));gap:.8rem;overflow-x:auto;padding-bottom:.6rem}
.col{background:#eceef3;border-radius:var(--r);padding:.6rem;min-height:320px;display:flex;flex-direction:column;gap:.55rem}.col.over{background:#dcefe6;outline:2px dashed var(--brand)}
.col .cap{display:flex;align-items:center;gap:.5rem;padding:.2rem .35rem .3rem;font-weight:650}.col .cap small{margin-left:auto;color:var(--mute);font-weight:550}
.lc{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;box-shadow:var(--shadow);cursor:grab}.lc:active{cursor:grabbing}.lc:hover{border-color:#cdd3e0}.lc .b{font-weight:650}.lc .m{color:var(--mute);font-size:.8rem}
.lc .ft{display:flex;gap:.4rem;align-items:center;margin-top:.5rem;flex-wrap:wrap}

/* overlays */
.ov{position:fixed;inset:0;background:rgba(15,23,41,.45);backdrop-filter:blur(2px);z-index:100;display:grid;place-items:center;padding:1rem;animation:fade .15s}
.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:92vh;display:flex;flex-direction:column;animation:pop .18s}
.modal.wide{width:min(760px,100%)}.modal header{display:flex;align-items:center;padding:1.1rem 1.3rem .6rem}.modal header h2{flex:1}.modal .body{padding:.4rem 1.3rem 1rem;overflow:auto}.modal footer{display:flex;gap:.6rem;justify-content:flex-end;padding:.9rem 1.3rem;border-top:1px solid var(--line);background:#fafbfc;border-radius:0 0 16px 16px}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:#fff;box-shadow:var(--shadow-lg);z-index:101;display:flex;flex-direction:column;animation:slide .2s}.drawer header{display:flex;align-items:flex-start;gap:.8rem;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line)}.drawer header .grow{flex:1}.drawer .body{padding:1.1rem 1.4rem 2rem;overflow:auto;flex:1}
.err{color:var(--red);font-size:.84rem;min-height:1.2em;margin-top:.3rem}
#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:.65rem 1.1rem;border-radius:10px;opacity:0;transition:all .25s;pointer-events:none;z-index:200;box-shadow:var(--shadow-lg);font-weight:550}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes fade{from{opacity:0}}@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes slide{from{transform:translateX(30px);opacity:0}}
.page>*{animation:rise .3s both}@keyframes rise{from{opacity:0;transform:translateY(6px)}}

/* login */
.loginbg{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 15% 10%,#d9f1e6,transparent 45%),radial-gradient(circle at 90% 90%,#dfe6fb,transparent 45%),var(--bg)}
.logincard{width:min(400px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:2rem;box-shadow:var(--shadow-lg)}.logincard .mark{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#16a36a,#0a5a39);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.3rem;margin-bottom:1rem}
.logincard h1{font-size:1.4rem}.logincard p{color:var(--mute);margin:.2rem 0 1.4rem}
.pw{display:flex;align-items:center;gap:.6rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.keybox{background:#0f1729;color:#d9e2f8;border-radius:10px;padding:.8rem 1rem;word-break:break-all}
.plan{padding:1.2rem}.plan h3{font-size:1.05rem}.plan .price{font-size:1.7rem;font-weight:720;letter-spacing:-.02em;margin:.4rem 0 .1rem}.plan .price small{font-size:.8rem;font-weight:500;color:var(--mute)}
.plan ul{list-style:none;padding:0;margin:.8rem 0;display:grid;gap:.3rem;font-size:.85rem}.plan li{display:flex;gap:.45rem;align-items:center}.plan li .ic{color:var(--brand)}
.tog{position:relative;width:38px;height:22px;border-radius:99px;background:#cfd5e2;border:0;cursor:pointer;transition:.15s;flex:none}.tog::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}.tog.on{background:var(--brand)}.tog.on::after{left:19px}.tog[disabled]{opacity:.55;cursor:not-allowed}
.modrow{display:flex;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid var(--line2)}.modrow:last-child{border:0}.modrow .g{flex:1}.modrow b{font-weight:600}
.thread .nt{background:#f5f6f9;border-radius:10px;padding:.65rem .8rem;margin:.5rem 0}.thread .nt .w{font-size:.76rem;color:var(--mute);margin-bottom:.15rem}
@media(max-width:900px){.shell{grid-template-columns:1fr}.side{position:static;height:auto}.nav{display:flex;flex-wrap:wrap}.nav .sec{display:none}.top{padding:.7rem 1rem}.page{padding:1rem}.search{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.kvg{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem}.kvg .mono{font-weight:560;margin-top:.15rem;word-break:break-all}
