/* ════════════════════════════════════════════════════════════
   Kodeflow Client Portal — styles (light premium, matches site)
   ════════════════════════════════════════════════════════════ */
:root{
  --em:#10b981; --em-bright:#34d399; --em-deep:#047857;
  --bronze:#a9742f; --bronze-bright:#c79150;
  --e-out:cubic-bezier(.16,1,.3,1);
  --cp-shadow:0 24px 60px -32px rgba(22,46,34,0.22);
  --cp-shadow-sm:0 14px 36px -24px rgba(22,46,34,0.18);
}

/* shared buttons (portal-scoped, mirror the site) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:14px;border-radius:999px;padding:12px 22px;transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),background .2s;white-space:nowrap}
.btn-primary{color:#042016;background:linear-gradient(165deg,var(--em-bright),var(--em-deep));box-shadow:0 12px 28px -12px rgba(16,120,80,0.5)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(16,120,80,0.6)}
.btn-ghost{background:var(--bg-1);color:var(--ink-soft);border:1px solid var(--brd-soft)}
.btn-ghost:hover{border-color:var(--em);color:var(--ink)}
.grad-em{background:linear-gradient(100deg,var(--em-deep),var(--em) 60%,var(--bronze));-webkit-background-clip:text;background-clip:text;color:transparent}
.serif-it{font-family:var(--serif);font-style:italic}

/* ── layout shell ── */
.cp{display:grid;grid-template-columns:264px 1fr;min-height:100vh;position:relative;z-index:1}
.cp-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 16px;background:rgba(255,255,255,0.72);border-right:1px solid var(--brd-soft);backdrop-filter:blur(16px);overflow-y:auto}
.cp-brand a{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;letter-spacing:-.02em;padding:6px 8px 18px}
.cp-mk{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:18px;color:#042016;background:linear-gradient(150deg,var(--em-bright),var(--bronze-bright))}
.cp-nav{flex:1;display:flex;flex-direction:column;gap:16px}
.cp-navgrp{display:flex;flex-direction:column;gap:2px}
.cp-navlabel{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-faint);padding:4px 12px 6px}
.cp-navitem{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;border:0;background:transparent;color:var(--ink-mute);font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;transition:.2s;text-align:left;width:100%}
.cp-navitem svg{flex:none}
.cp-navitem:hover{background:rgba(16,50,36,0.05);color:var(--ink)}
.cp-navitem.on{background:linear-gradient(150deg,rgba(16,185,129,0.14),rgba(16,185,129,0.05));color:var(--em-deep);font-weight:600}
.cp-navitem.on svg{color:var(--em-deep)}
.cp-navbadge{margin-left:auto;font-size:10px;font-weight:700;color:#fff;background:var(--em-deep);border-radius:999px;padding:1px 7px}
.cp-side-foot{border-top:1px solid var(--brd-soft);padding-top:14px;margin-top:14px}
.cp-userchip{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cp-ava{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;font-weight:700;color:#042016;background:linear-gradient(135deg,var(--em-bright),var(--bronze));box-shadow:0 4px 14px -6px rgba(16,120,80,0.5)}
.cp-ava-sm{width:34px;height:34px;border-radius:10px;font-size:14px}
.cp-ava-lg{width:64px;height:64px;border-radius:18px;font-size:26px}
.cp-usermeta{min-width:0}
.cp-username{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-useremail{font-size:11.5px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-logout{width:100%;padding:10px;border-radius:10px;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-mute);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:.2s}
.cp-logout:hover{border-color:var(--em);color:var(--ink)}

.cp-main{min-width:0;display:flex;flex-direction:column}
.cp-top{position:sticky;top:0;z-index:18;display:flex;align-items:center;gap:14px;padding:14px 30px;background:rgba(255,255,255,0.78);border-bottom:1px solid var(--brd-soft);backdrop-filter:blur(16px) saturate(160%)}
.cp-top-title{font-size:18px;font-weight:600}
.cp-top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}
.cp-iconbtn{position:relative;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-mute);cursor:pointer;transition:.2s}
.cp-iconbtn:hover{color:var(--ink);border-color:var(--em)}
.cp-dot{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;font-size:10px;font-weight:700;color:#fff;background:var(--em-deep);display:grid;place-items:center;border:2px solid var(--bg-1)}
.cp-burger{display:none;flex-direction:column;gap:4px;width:40px;height:40px;border-radius:11px;border:1px solid var(--brd-soft);background:var(--bg-1);cursor:pointer;align-items:center;justify-content:center}
.cp-burger span{width:18px;height:2px;background:var(--ink);border-radius:2px}
.cp-content{padding:30px;max-width:1180px;width:100%;margin:0 auto}
.cp-backdrop{position:fixed;inset:0;z-index:25;background:rgba(10,22,16,0.4);backdrop-filter:blur(3px)}

/* page chrome */
.cp-page{animation:cpFade .45s var(--e-out)}
@keyframes cpFade{from{opacity:0;transform:translateY(10px)}}
.cp-fade{animation:cpFade .45s var(--e-out)}
.cp-h1{font-family:var(--serif);font-size:clamp(1.8rem,3.6vw,2.5rem);line-height:1.05;letter-spacing:-.01em}
.cp-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--em-deep);text-transform:uppercase;margin-bottom:10px}
.cp-sub{color:var(--ink-mute);font-size:15px;margin-top:8px}
.cp-subhead{font-family:var(--serif);font-size:1.4rem;margin:26px 0 14px}
.cp-muted{color:var(--ink-mute);font-size:13px;line-height:1.5}
.cp-link{background:none;border:0;color:var(--em-deep);font-family:var(--sans);font-weight:600;font-size:13.5px;cursor:pointer}
.cp-link:hover{text-decoration:underline}
.cp-back{display:inline-block;margin-bottom:16px}
.cp-welcome{margin-bottom:26px}
.cp-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}

/* cards */
.cp-card{background:var(--bg-1);border:1px solid var(--brd-soft);border-radius:20px;padding:22px;box-shadow:var(--cp-shadow-sm);margin-bottom:16px}
.cp-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.cp-card-h h4{font-size:1.05rem;font-weight:600}

/* stats */
.cp-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.cp-grid3{grid-template-columns:repeat(3,1fr)}
.cp-stat{background:var(--bg-1);border:1px solid var(--brd-soft);border-radius:18px;padding:20px;box-shadow:var(--cp-shadow-sm)}
.cp-stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cp-stat-l{font-size:12.5px;color:var(--ink-mute)}
.cp-stat-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--ink-mute);background:rgba(16,50,36,0.05)}
.cp-stat-ic.t-em{color:var(--em-deep);background:rgba(16,185,129,0.1)}
.cp-stat-ic.t-warn{color:var(--bronze);background:rgba(169,116,47,0.12)}
.cp-stat-v{font-family:var(--serif);font-size:2rem;line-height:1}
.cp-stat-sub{font-size:12px;color:var(--ink-faint);margin-top:6px}

/* dashboard grid */
.cp-dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}
.cp-dash-main,.cp-dash-side{display:flex;flex-direction:column;gap:0}
.cp-dash-side .cp-card,.cp-dash-main .cp-card{margin-bottom:16px}

/* project rows / cards */
.cp-proj-list{display:flex;flex-direction:column;gap:10px}
.cp-proj-row{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:14px;border-radius:15px;border:1px solid var(--brd-soft);background:var(--bg-1);cursor:pointer;transition:.25s}
.cp-proj-row:hover{border-color:var(--em);transform:translateX(3px);box-shadow:var(--cp-shadow-sm)}
.cp-proj-row>svg{color:var(--ink-faint)}
.cp-proj-info{flex:1;min-width:0}
.cp-proj-t{font-size:15px;font-weight:600;margin-bottom:5px}
.cp-proj-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-faint);flex-wrap:wrap}
.cp-phase{color:var(--em-deep);font-weight:600}
.cp-proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.cp-projcard{text-align:left;padding:20px;border-radius:18px;border:1px solid var(--brd-soft);background:var(--bg-1);cursor:pointer;transition:.25s;box-shadow:var(--cp-shadow-sm)}
.cp-projcard:hover{transform:translateY(-3px);border-color:var(--em);box-shadow:var(--cp-shadow)}
.cp-projcard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cp-projcard-amt{font-family:var(--serif);font-size:1.5rem;color:var(--em-deep)}
.cp-projcard-t{font-size:16px;font-weight:600;margin-bottom:8px}
.cp-chiprow{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.cp-chip-xs{font-size:11px;padding:4px 9px;border-radius:999px;background:rgba(16,50,36,0.05);color:var(--ink-soft)}
.cp-projcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;font-size:12px}

/* detail */
.cp-detail-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px;flex-wrap:wrap}
.cp-detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}
.cp-kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--brd-soft);font-size:13.5px}
.cp-kv:last-child{border-bottom:0}
.cp-kv span{color:var(--ink-mute)}
.cp-chip{font-size:12.5px;padding:6px 13px;border-radius:999px;background:var(--bg-2,#faf7f0);border:1px solid var(--brd-soft);color:var(--ink-soft);cursor:pointer;transition:.2s}
.cp-chip.on{background:linear-gradient(150deg,var(--em-bright),var(--em-deep));color:#042016;border-color:transparent;font-weight:600}
.cp-miles{display:flex;flex-direction:column;gap:10px}
.cp-mile{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-mute)}
.cp-mile.done{color:var(--ink)}
.cp-mile-check{width:20px;height:20px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;border:1px solid var(--brd-soft);color:#042016}
.cp-mile.done .cp-mile-check{background:var(--em);border-color:transparent}

/* phase timeline */
.cp-tl{display:flex;flex-wrap:wrap;gap:4px}
.cp-tl-step{flex:1;min-width:88px;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;padding-top:6px}
.cp-tl-step::before{content:"";position:absolute;top:16px;left:-50%;width:100%;height:2px;background:var(--brd-soft);z-index:0}
.cp-tl-step:first-child::before{display:none}
.cp-tl-step.done::before,.cp-tl-step.current::before{background:var(--em)}
.cp-tl-marker{position:relative;z-index:1;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:var(--bg-1);border:2px solid var(--brd-soft);color:var(--ink-faint)}
.cp-tl-step.done .cp-tl-marker{background:var(--em);border-color:var(--em);color:#042016}
.cp-tl-step.current .cp-tl-marker{border-color:var(--em);color:var(--em-deep);box-shadow:0 0 0 4px rgba(16,185,129,0.15)}
.cp-tl-name{font-size:11.5px;text-align:center;color:var(--ink-mute)}
.cp-tl-step.done .cp-tl-name,.cp-tl-step.current .cp-tl-name{color:var(--ink);font-weight:600}
.cp-tl-card{overflow-x:auto}

/* deadlines / feed / quick actions */
.cp-deadlines,.cp-feed,.cp-log{display:flex;flex-direction:column;gap:12px}
.cp-deadline{display:flex;align-items:center;gap:14px}
.cp-deadline-d{width:54px;height:54px;border-radius:14px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(16,185,129,0.08);color:var(--em-deep)}
.cp-deadline-d b{font-family:var(--serif);font-size:20px;line-height:1}
.cp-deadline-d span{font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.cp-deadline-t{font-size:14px;font-weight:600}
.cp-qa{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cp-qa button{display:flex;align-items:center;gap:9px;padding:12px;border-radius:12px;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-soft);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:.2s;text-align:left}
.cp-qa button:hover{border-color:var(--em);color:var(--ink);transform:translateY(-2px)}
.cp-qa svg{color:var(--em-deep);flex:none}
.cp-feed-i{display:flex;gap:11px}
.cp-feed-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none;background:var(--em)}
.cp-feed-dot.t-invoice{background:var(--bronze)}.cp-feed-dot.t-message{background:#3b82f6}.cp-feed-dot.t-launch{background:var(--em-deep)}.cp-feed-dot.t-approval{background:var(--bronze-bright)}.cp-feed-dot.t-support{background:#d9534f}.cp-feed-dot.t-file{background:#8b5cf6}
.cp-feed-t{font-size:13.5px;color:var(--ink);line-height:1.45}

/* approvals */
.cp-approve-list{display:flex;flex-direction:column;gap:14px}
.cp-approve{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:20px;border-radius:18px;border:1px solid var(--brd-soft);background:var(--bg-1);box-shadow:var(--cp-shadow-sm);flex-wrap:wrap}
.cp-badge-warn{display:inline-block;font-size:11px;font-weight:600;color:var(--bronze);background:rgba(169,116,47,0.12);padding:4px 11px;border-radius:999px;margin-bottom:10px}
.cp-approve-body h4{font-size:1.1rem;margin-bottom:4px}
.cp-approve-prev{font-size:13.5px;color:var(--ink-soft);margin-top:10px;max-width:520px}
.cp-approve-act{display:flex;gap:10px;flex-wrap:wrap}
.cp-approve-hist{display:flex;flex-direction:column;gap:10px}
.cp-approve-h{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;border:1px solid var(--brd-soft);background:var(--bg-1)}
.cp-pill{font-size:11.5px;font-weight:600;padding:4px 11px;border-radius:999px;white-space:nowrap}
.cp-pill.ok{color:var(--em-deep);background:rgba(16,185,129,0.12)}
.cp-pill.warn{color:var(--bronze);background:rgba(169,116,47,0.12)}

/* files */
.cp-drop{border:2px dashed var(--brd);border-radius:20px;padding:40px;text-align:center;cursor:pointer;transition:.25s;background:var(--bg-1);margin-bottom:18px}
.cp-drop:hover,.cp-drop.over{border-color:var(--em);background:rgba(16,185,129,0.04)}
.cp-drop-ic{width:60px;height:60px;border-radius:16px;margin:0 auto 14px;display:grid;place-items:center;color:var(--em-deep);background:rgba(16,185,129,0.1)}
.cp-drop-t{font-size:16px;font-weight:600;margin-bottom:5px}
.cp-file-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.cp-folders{display:flex;gap:8px;flex-wrap:wrap}
.cp-search{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-faint)}
.cp-search input{border:0;background:none;outline:none;font-family:var(--sans);font-size:13.5px;color:var(--ink);width:160px}
.cp-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cp-file{display:flex;align-items:center;gap:13px;padding:14px;border-radius:15px;border:1px solid var(--brd-soft);background:var(--bg-1);transition:.2s}
.cp-file:hover{border-color:var(--em);box-shadow:var(--cp-shadow-sm)}
.cp-file-ic{width:44px;height:44px;border-radius:11px;flex:none;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--em-deep);background:rgba(16,185,129,0.1)}
.cp-file-info{flex:1;min-width:0}
.cp-file-n{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-file-act{display:flex;gap:6px}
.cp-file-act button{width:30px;height:30px;border-radius:9px;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-mute);cursor:pointer;display:grid;place-items:center;font-size:13px;transition:.2s}
.cp-file-act button:hover{border-color:var(--em);color:var(--ink)}

/* chat */
.cp-chat{display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:480px;border:1px solid var(--brd-soft);border-radius:20px;background:var(--bg-1);overflow:hidden;box-shadow:var(--cp-shadow-sm)}
.cp-chat-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--brd-soft)}
.cp-chat-name{font-size:15px;font-weight:600}
.cp-online{font-size:11px;color:var(--em-deep);font-weight:500}
.cp-chat-search{margin-left:auto}
.cp-chat-search input{width:120px}
.cp-chat-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,rgba(16,50,36,0.015),transparent)}
.cp-bubble-wrap{display:flex;flex-direction:column;max-width:74%}
.cp-bubble-wrap.me{align-self:flex-end;align-items:flex-end}
.cp-bubble-wrap.them{align-self:flex-start}
.cp-bubble{padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.5}
.cp-bubble.me{color:#042016;background:linear-gradient(100deg,var(--em-bright),var(--em-deep));border-bottom-right-radius:5px}
.cp-bubble.them{color:var(--ink-soft);background:var(--bg-2,#faf7f0);border:1px solid var(--brd-soft);border-bottom-left-radius:5px}
.cp-bubble-meta{font-size:10.5px;color:var(--ink-faint);margin-top:4px}
.cp-read{color:var(--em-deep)}
.cp-typing{display:flex;gap:4px;align-items:center}
.cp-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);animation:cpType 1.2s ease-in-out infinite}
.cp-typing span:nth-child(2){animation-delay:.15s}.cp-typing span:nth-child(3){animation-delay:.3s}
@keyframes cpType{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.cp-chat-input{border-top:1px solid var(--brd-soft);padding:12px 16px;background:var(--bg-1)}
.cp-emoji{display:flex;gap:4px;margin-bottom:8px}
.cp-emoji button{width:30px;height:30px;border-radius:8px;border:0;background:transparent;cursor:pointer;font-size:16px;transition:.15s}
.cp-emoji button:hover{background:rgba(16,50,36,0.06)}
.cp-chat-row{display:flex;gap:10px;align-items:center}
.cp-chat-row input{flex:1;padding:12px 15px;border-radius:12px;border:1px solid var(--brd-soft);background:var(--bg-2,#faf7f0);font-family:var(--sans);font-size:14px;color:var(--ink);outline:none}
.cp-chat-row input:focus{border-color:var(--em)}
.cp-attach{width:40px;height:40px;flex:none;border-radius:11px;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-mute);font-size:20px;cursor:pointer}

/* invoices */
.cp-inv{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--brd-soft);flex-wrap:wrap}
.cp-inv:last-child{border-bottom:0}
.cp-inv-ic{width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;font-family:var(--mono);color:var(--em-deep);background:rgba(16,185,129,0.1)}
.cp-inv-info{flex:1;min-width:160px}
.cp-inv-d{font-size:14px;font-weight:600}
.cp-inv-amt{font-family:var(--serif);font-size:1.4rem;color:var(--em-deep)}
.cp-iconbtn-sm{width:34px;height:34px;border-radius:10px;border:1px solid var(--brd-soft);background:var(--bg-1);color:var(--ink-mute);cursor:pointer}

/* support */
.cp-ticket-list{display:flex;flex-direction:column;gap:10px}
.cp-ticket{display:flex;align-items:center;gap:13px;padding:16px;border-radius:15px;border:1px solid var(--brd-soft);background:var(--bg-1);cursor:pointer;transition:.2s;text-align:left;width:100%}
.cp-ticket:hover{border-color:var(--em);transform:translateX(3px)}
.cp-ticket-dot{width:9px;height:9px;border-radius:50%;flex:none}
.cp-ticket-info{flex:1;min-width:0}
.cp-ticket-thread{display:flex;flex-direction:column;gap:10px}
.cp-form,.cp-form2{display:flex;flex-direction:column;gap:14px}
.cp-form2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cp-f{display:flex;flex-direction:column;gap:7px}
.cp-f>span{font-size:13px;color:var(--ink-soft);font-weight:500}
.cp-f input,.cp-f select,.cp-f textarea{padding:12px 14px;border-radius:12px;border:1px solid var(--brd-soft);background:var(--bg-2,#faf7f0);font-family:var(--sans);font-size:14px;color:var(--ink);outline:none;resize:vertical}
.cp-f input:focus,.cp-f select:focus,.cp-f textarea:focus{border-color:var(--em)}
.cp-chips{display:flex;flex-wrap:wrap;gap:8px}

/* notifications */
.cp-notif-list{display:flex;flex-direction:column;gap:8px}
.cp-notif{display:flex;align-items:center;gap:13px;padding:15px;border-radius:14px;border:1px solid var(--brd-soft);background:var(--bg-1);transition:.2s}
.cp-notif.unread{background:rgba(16,185,129,0.04);border-color:rgba(16,185,129,0.2)}
.cp-notif-ic{width:36px;height:36px;border-radius:10px;flex:none;display:grid;place-items:center;color:var(--em-deep);background:rgba(16,185,129,0.1)}
.cp-notif-ic.t-invoice{color:var(--bronze);background:rgba(169,116,47,0.12)}.cp-notif-ic.t-support{color:#d9534f;background:rgba(217,83,79,0.1)}.cp-notif-ic.t-message{color:#3b82f6;background:rgba(59,130,246,0.1)}
.cp-notif-body{flex:1;min-width:0}
.cp-unread-dot{width:9px;height:9px;border-radius:50%;background:var(--em);flex:none}

/* analytics */
.cp-bars{display:flex;flex-direction:column;gap:14px}
.cp-bar-row{display:flex;align-items:center;gap:12px}
.cp-bar-l{width:90px;font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-bar-track{flex:1;height:10px;border-radius:999px;background:rgba(16,50,36,0.06);overflow:hidden}
.cp-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--em),var(--bronze));animation:cpGrow 1s var(--e-out)}
@keyframes cpGrow{from{width:0 !important}}
.cp-bar-v{font-family:var(--mono);font-size:12px;color:var(--ink-mute);width:40px;text-align:right}

/* downloads */
.cp-dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:13px}
.cp-dl{display:flex;align-items:center;gap:13px;padding:18px;border-radius:16px;border:1px solid var(--brd-soft);background:var(--bg-1);cursor:pointer;transition:.2s;text-align:left}
.cp-dl:hover{border-color:var(--em);transform:translateY(-2px);box-shadow:var(--cp-shadow-sm)}
.cp-dl-ic{width:44px;height:44px;border-radius:12px;flex:none;display:grid;place-items:center;color:var(--em-deep);background:rgba(16,185,129,0.1)}
.cp-dl>div{flex:1;min-width:0}
.cp-dl>svg{color:var(--ink-faint)}

/* activity log */
.cp-log-i{display:flex;gap:14px}
.cp-log-line{display:flex;flex-direction:column;align-items:center}
.cp-log-line .cp-feed-dot{margin-top:5px}
.cp-log-i:not(:last-child) .cp-log-line::after{content:"";width:2px;flex:1;background:var(--brd-soft);margin-top:4px}
.cp-log-body{padding-bottom:16px}

/* profile / security */
.cp-prof-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.cp-sec,.cp-pref{display:flex;flex-direction:column;gap:0}
.cp-sec-row,.cp-pref{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--brd-soft)}
.cp-sec-row:last-child{border-bottom:0}
.cp-pref{border-bottom:1px solid var(--brd-soft)}
.cp-pref:last-child{border-bottom:0}
.cp-toggle{width:46px;height:26px;border-radius:999px;border:0;background:var(--brd);cursor:pointer;position:relative;transition:.25s;flex:none}
.cp-toggle.on{background:var(--em)}
.cp-toggle span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.25s;box-shadow:0 1px 4px rgba(0,0,0,0.2)}
.cp-toggle.on span{left:23px}

/* skeletons */
.cp-skel{background:linear-gradient(90deg,rgba(16,50,36,0.05),rgba(16,50,36,0.1),rgba(16,50,36,0.05));background-size:200% 100%;animation:cpShimmer 1.3s infinite}
@keyframes cpShimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.cp-skel-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}

/* empty */
.cp-empty{text-align:center;padding:54px 24px;color:var(--ink-mute)}
.cp-empty-ic{width:70px;height:70px;border-radius:20px;margin:0 auto 18px;display:grid;place-items:center;color:var(--em-deep);background:rgba(16,185,129,0.08)}
.cp-empty h3{font-size:1.3rem;color:var(--ink);margin-bottom:8px}
.cp-empty p{font-size:14px;max-width:340px;margin:0 auto 18px}

/* responsive */
@media(max-width:1024px){.cp-stat-grid{grid-template-columns:1fr 1fr}.cp-dash-grid,.cp-detail-grid{grid-template-columns:1fr}.cp-skel-row{grid-template-columns:1fr 1fr}}
@media(max-width:860px){
  .cp{grid-template-columns:1fr}
  .cp-side{position:fixed;top:0;left:0;z-index:30;width:280px;transform:translateX(-100%);transition:transform .35s var(--e-out)}
  .cp-side.open{transform:none}
  .cp-burger{display:flex}
  .cp-content{padding:20px}
  .cp-grid3{grid-template-columns:1fr}
  .cp-newbtn{display:none}
}
@media(max-width:560px){.cp-stat-grid{grid-template-columns:1fr 1fr}.cp-qa{grid-template-columns:1fr}.cp-form2{grid-template-columns:1fr}.cp-top{padding:12px 18px}}
