/* ══════════════════════════════════════════════
   CRM System — Modern Redesign v8
   Aesthetic: Refined Dark Sidebar + Clean Light Canvas
   Font: DM Sans (body) + DM Mono (numbers)
   ══════════════════════════════════════════════ */

/* ── VARS ── */
:root {
  /* Canvas */
  --bg:        #F4F6FA;
  --surface:   #FFFFFF;
  --surface2:  #F8FAFC;
  --border:    #E8ECF2;
  --border2:   #D1D9E6;

  /* Sidebar — deep navy */
  --sb-bg:     #0F1729;
  --sb-bg2:    #161F36;
  --sb-item-hover: rgba(255,255,255,.06);
  --sb-item-on:    rgba(99,179,237,.12);
  --sb-text:   rgba(255,255,255,.55);
  --sb-text2:  rgba(255,255,255,.85);
  --sb-lbl:    rgba(255,255,255,.2);
  --sb-border: rgba(255,255,255,.06);

  /* Accent — electric blue */
  --accent:    #3B7FFF;
  --accent-g:  #2563EB;
  --accent-lt: #EEF4FF;
  --accent-glow: rgba(59,127,255,.25);

  /* Semantic */
  --teal:      #0D9488;
  --teal-lt:   #F0FDFA;
  --red:       #E53E3E;
  --red-lt:    #FFF5F5;
  --amber:     #D97706;
  --amber-lt:  #FFFBEB;
  --green:     #16A34A;
  --green-lt:  #F0FDF4;

  /* Text */
  --text:      #1A2035;
  --text2:     #4A5568;
  --text3:     #8896A9;
  --text4:     #B8C4D4;

  /* Misc */
  --r:         10px;
  --r-lg:      14px;
  --font:      'DM Sans', 'Inter', sans-serif;
  --mono:      'DM Mono', 'IBM Plex Mono', monospace;
  --sh:        0 1px 3px rgba(15,23,41,.06), 0 1px 2px rgba(15,23,41,.04);
  --sh-md:     0 4px 16px rgba(15,23,41,.08), 0 1px 4px rgba(15,23,41,.04);
  --sh-lg:     0 12px 40px rgba(15,23,41,.12), 0 4px 12px rgba(15,23,41,.06);
}

/* ── RESET ── */
.crm-app,.crm-app *{box-sizing:border-box;margin:0;padding:0}

/* ── APP SHELL ── */
.crm-app{display:flex;height:100vh;overflow:hidden;font-family:var(--font);font-size:14px;color:var(--text);line-height:1.5;background:var(--bg)}

/* ══════════════════════ LOGIN ══════════════════════ */
.crm-page-login{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;font-family:var(--font);background:var(--bg)}
.crm-login-box{width:100%;max-width:440px;background:var(--surface);border-radius:20px;padding:40px;box-shadow:var(--sh-lg);border:1px solid var(--border)}
.crm-login-head{text-align:center;margin-bottom:28px}
.crm-login-ico{font-size:40px;display:block;margin-bottom:12px;filter:drop-shadow(0 4px 8px rgba(59,127,255,.3))}
.crm-login-head h1{font-size:24px;font-weight:700;letter-spacing:-.6px;color:var(--text)}
.crm-login-head h1 span{color:var(--accent)}
.crm-login-head p{font-size:14px;color:var(--text3);margin-top:5px}
.crm-role-pick{display:flex;gap:10px;margin-bottom:22px}
.crm-rp{flex:1;padding:14px 10px;border:2px solid var(--border);border-radius:var(--r);cursor:pointer;text-align:center;transition:all .2s;background:var(--surface2)}
.crm-rp:hover,.crm-rp.on{border-color:var(--accent);background:var(--accent-lt);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}
.crm-rico{font-size:26px;display:block;margin-bottom:6px}
.crm-rnm{font-size:12px;font-weight:600;color:var(--text2)}
.crm-rp.on .crm-rnm{color:var(--accent)}

/* ══════════════════════ SIDEBAR ══════════════════════ */
.crm-sb{width:240px;flex-shrink:0;background:var(--sb-bg);display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--sb-border);position:relative}
.crm-sb::before{content:'';position:absolute;top:0;left:0;right:0;height:200px;background:linear-gradient(180deg,rgba(59,127,255,.06) 0%,transparent 100%);pointer-events:none}
.crm-sb-top{padding:20px 16px 16px;border-bottom:1px solid var(--sb-border)}
.crm-sb-brand{display:flex;align-items:center;gap:10px}
.crm-sb-logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent) 0%,#6366F1 100%);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;box-shadow:0 4px 12px rgba(59,127,255,.4)}
.crm-sb-name{font-size:15px;font-weight:700;color:rgba(255,255,255,.9);letter-spacing:-.3px}
.crm-sb-name em{color:#60A5FA;font-style:normal}
.crm-sb-nav{flex:1;padding:12px 10px;overflow-y:auto}
.crm-sb-nav::-webkit-scrollbar{width:3px}
.crm-sb-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:6px}
.crm-sb-sec{margin-bottom:4px}
.crm-sb-lbl{font-size:10px;font-weight:600;letter-spacing:1px;color:var(--sb-lbl);text-transform:uppercase;padding:12px 10px 5px}
.crm-sb-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--sb-text);transition:all .15s;margin-bottom:2px;border:none;background:transparent;font-family:var(--font);width:100%;text-align:left}
.crm-sb-item:hover{background:var(--sb-item-hover);color:var(--sb-text2)}
.crm-sb-item.on{background:var(--sb-item-on);color:#60A5FA}
.crm-si{font-size:15px;width:20px;text-align:center;flex-shrink:0;opacity:.75}
.crm-sb-item.on .crm-si{opacity:1}
.crm-sb-dot{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);padding:0 4px}
.crm-sb-dot:empty,.crm-sb-dot[data-val="0"]{display:none}
.crm-sb-foot{padding:10px;border-top:1px solid var(--sb-border)}
.crm-sb-user{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;cursor:default;background:rgba(255,255,255,.04)}
.crm-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--accent),#6366F1)}
.crm-uname{font-size:13px;font-weight:600;color:rgba(255,255,255,.88)}
.crm-urole{font-size:11px;color:var(--sb-text);margin-top:1px}
.crm-logout-btn{margin-left:auto;color:var(--sb-text);cursor:pointer;font-size:14px;transition:all .15s;padding:4px;border-radius:6px}
.crm-logout-btn:hover{color:var(--red);background:rgba(229,62,62,.12)}

/* ══════════════════════ MAIN ══════════════════════ */
.crm-main{flex:1;overflow-y:auto;display:flex;flex-direction:column;background:var(--bg)}
.crm-main::-webkit-scrollbar{width:5px}
.crm-main::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px}
.crm-tab-pane{display:none;flex-direction:column;flex:1}
.crm-tab-pane.on{display:flex;animation:crmFade .22s ease}
@keyframes crmFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ══════════════════════ TOPBAR ══════════════════════ */
.crm-tb{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;box-shadow:var(--sh)}
.crm-tb-l h2{font-size:17px;font-weight:700;letter-spacing:-.4px;color:var(--text)}
.crm-tb-l p{font-size:12.5px;color:var(--text3);margin-top:2px}
.crm-tb-r{display:flex;gap:8px;align-items:center}

/* ══════════════════════ BUTTONS ══════════════════════ */
.crm-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:8px;border:none;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:all .18s;white-space:nowrap}
.crm-btn:active{transform:scale(.97)}
.crm-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.crm-btn.loading{position:relative;color:transparent!important}
.crm-btn.loading::after{content:'';position:absolute;top:50%;left:50%;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .55s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.crm-btn-p{background:var(--accent);color:#fff;box-shadow:0 2px 8px var(--accent-glow)}
.crm-btn-p:hover{background:var(--accent-g);box-shadow:0 4px 14px var(--accent-glow);transform:translateY(-1px)}
.crm-btn-o{background:var(--surface);color:var(--text2);border:1px solid var(--border2);box-shadow:var(--sh)}
.crm-btn-o:hover{background:var(--surface2);color:var(--text)}
.crm-btn-g{background:var(--green-lt);color:var(--green);border:1px solid #BBF7D0}
.crm-btn-g:hover{background:#dcfce7}
.crm-btn-r{background:var(--red-lt);color:var(--red);border:1px solid #FED7D7}
.crm-btn-r:hover{background:#fee2e2}
.crm-btn-s{padding:7px 12px;font-size:12px;border-radius:7px}

/* ══════════════════════ CONTENT ══════════════════════ */
.crm-pg{padding:22px 24px;flex:1;overflow-y:auto}
.crm-pg::-webkit-scrollbar{width:5px}
.crm-pg::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px}

/* ══════════════════════ STATS ══════════════════════ */
.crm-sg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.crm-sc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 16px 16px;box-shadow:var(--sh);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.crm-sc:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
.crm-sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r-lg) var(--r-lg) 0 0}
.crm-sc.c-blue::before{background:linear-gradient(90deg,var(--accent),#6366F1)}
.crm-sc.c-teal::before{background:linear-gradient(90deg,var(--teal),#06B6D4)}
.crm-sc.c-red::before{background:linear-gradient(90deg,var(--red),#F97316)}
.crm-sc.c-green::before{background:linear-gradient(90deg,var(--green),#10B981)}
.crm-sc.c-amber::before{background:linear-gradient(90deg,var(--amber),#F59E0B)}
.crm-sc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.crm-sc-icon{font-size:22px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface2)}
.crm-sc.c-blue .crm-sc-icon{background:var(--accent-lt)}
.crm-sc.c-teal .crm-sc-icon{background:var(--teal-lt)}
.crm-sc.c-red  .crm-sc-icon{background:var(--red-lt)}
.crm-sc.c-green .crm-sc-icon{background:var(--green-lt)}
.crm-sc.c-amber .crm-sc-icon{background:var(--amber-lt)}
.crm-trend{font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;font-family:var(--mono)}
.t-up{background:var(--green-lt);color:var(--green)}
.t-dn{background:var(--red-lt);color:var(--red)}
.t-nt{background:var(--amber-lt);color:var(--amber)}
.crm-val{font-size:28px;font-weight:700;color:var(--text);font-family:var(--mono);letter-spacing:-1.5px;line-height:1}
.crm-lbl{font-size:12.5px;color:var(--text3);font-weight:500;margin-top:4px}

/* ══════════════════════ CARD ══════════════════════ */
.crm-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);margin-bottom:20px;transition:transform .2s,box-shadow .2s}
.crm-card:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
.crm-card-hd{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface2)}
.crm-card-title{font-size:13.5px;font-weight:700;color:var(--text)}

/* ══════════════════════ TABLE ══════════════════════ */
.crm-table{width:100%;border-collapse:collapse;font-size:13px}
.crm-table th{font-size:10.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;padding:11px 16px;text-align:left;background:var(--surface2);border-bottom:1px solid var(--border);white-space:nowrap}
.crm-table td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text2)}
.crm-table tr:last-child td{border-bottom:none}
.crm-table tbody tr{transition:background .12s}
.crm-table tbody tr:hover td{background:#F6F8FF;color:var(--text)}
.inline-reply-row td{padding:10px 16px;background:#F8FAFF;border-left:3px solid var(--accent)}

/* ══════════════════════ BADGES ══════════════════════ */
.crm-bd{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;font-family:var(--mono);letter-spacing:.2px}
.bd-new{background:#FEF2F2;color:#DC2626;border:1px solid #FECACA}
.bd-proc{background:#FFFBEB;color:#D97706;border:1px solid #FDE68A}
.bd-done{background:#F0FDF4;color:#16A34A;border:1px solid #BBF7D0}
.bd-close{background:var(--surface2);color:var(--text3);border:1px solid var(--border2)}
.bd-blue{background:var(--accent-lt);color:var(--accent);border:1px solid #BFDBFE}
.bd-teal{background:var(--teal-lt);color:var(--teal);border:1px solid #99F6E4}

/* ══════════════════════ PRIORITY ══════════════════════ */
.crm-pr{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
.crm-pr-d{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.pr-h .crm-pr-d{background:var(--red);box-shadow:0 0 6px rgba(229,62,62,.5)}
.pr-m .crm-pr-d{background:var(--amber)}
.pr-l .crm-pr-d{background:var(--green)}

/* ══════════════════════ AVATAR ══════════════════════ */
.crm-avs{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;margin-right:6px;vertical-align:middle;flex-shrink:0}

/* ══════════════════════ CHAT ══════════════════════ */
.crm-chat-wrap{display:flex;flex:1;overflow:hidden}
.crm-chat-left{width:276px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}
.crm-chat-search{padding:12px 14px;border-bottom:1px solid var(--border)}
.crm-chat-input-sm{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-family:var(--font);font-size:13px;outline:none;background:var(--surface2);color:var(--text);transition:border .15s}
.crm-chat-input-sm:focus{border-color:var(--accent);background:#fff}
.crm-chat-list{flex:1;overflow-y:auto}
.crm-chat-list::-webkit-scrollbar{width:4px}
.crm-chat-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px}
.crm-ci{display:flex;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s}
.crm-ci:hover{background:var(--surface2)}
.crm-ci.on{background:var(--accent-lt);border-left:3px solid var(--accent)}
.crm-ci-body{flex:1;min-width:0}
.crm-ci-row{display:flex;justify-content:space-between;margin-bottom:2px}
.crm-ci-name{font-size:13px;font-weight:700;color:var(--text)}
.crm-ci-time{font-size:10.5px;color:var(--text3);font-family:var(--mono)}
.crm-ci-prev{font-size:12px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-ci-prev-desc{font-size:11px;color:var(--text4);margin-top:2px}
.crm-chat-right{flex:1;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}
.crm-chat-hd{padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0;box-shadow:var(--sh)}
.crm-chat-hd-info h4{font-size:14px;font-weight:700}
.crm-chat-hd-info p{font-size:11.5px;color:var(--text3);margin-top:2px}
.crm-chat-msgs{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.crm-chat-msgs::-webkit-scrollbar{width:4px}
.crm-chat-msgs::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px}
.crm-mw{display:flex;flex-direction:column}
.crm-mw.me{align-items:flex-end}
.crm-mw.ot{align-items:flex-start}
.crm-m-from{font-size:11px;color:var(--text3);font-weight:600;margin-bottom:3px}
.crm-mb{max-width:62%;padding:11px 14px;border-radius:14px;font-size:13px;line-height:1.65}
.crm-mb.me{background:linear-gradient(135deg,var(--accent) 0%,#6366F1 100%);color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 12px var(--accent-glow)}
.crm-mb.ot{background:var(--surface);color:var(--text);border-bottom-left-radius:4px;box-shadow:var(--sh);border:1px solid var(--border)}
.crm-m-time{font-size:10px;color:var(--text4);margin-top:4px;font-family:var(--mono)}
.crm-chat-foot-wrap{display:flex;flex-direction:column;gap:8px;padding:12px 20px;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}
.crm-chat-input-row{display:flex;gap:10px;align-items:flex-end}
.crm-chat-attach-btn{padding:9px 11px;border:1px solid var(--border2);border-radius:8px;background:var(--surface2);cursor:pointer;font-size:17px;transition:all .15s;flex-shrink:0}
.crm-chat-attach-btn:hover{background:var(--accent-lt);border-color:var(--accent)}
.crm-chat-ta{flex:1;padding:10px 13px;border:1.5px solid var(--border2);border-radius:10px;font-family:var(--font);font-size:13px;resize:none;outline:none;background:var(--surface2);color:var(--text);transition:border .15s,box-shadow .15s;line-height:1.5}
.crm-chat-ta:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-lt)}
.crm-empty-chat{color:var(--text3);text-align:center;padding:50px 20px;font-size:13px}

/* ══════════════════════ FORMS ══════════════════════ */
.crm-fg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.crm-fgroup{display:flex;flex-direction:column;gap:6px}
.crm-fgroup.full{grid-column:1/-1}
.crm-flbl{font-size:11.5px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.crm-finput,.crm-fsel,.crm-fta{padding:10px 13px;border:1.5px solid var(--border);border-radius:8px;font-family:var(--font);font-size:13px;color:var(--text);background:var(--surface2);outline:none;transition:border .15s,box-shadow .15s;width:100%}
.crm-finput:focus,.crm-fsel:focus,.crm-fta:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-lt)}
.crm-fta{resize:vertical}

/* ══════════════════════ PROFILE HERO ══════════════════════ */
.crm-ph{border-radius:var(--r-lg);padding:26px;color:#fff;display:flex;align-items:center;gap:18px;margin-bottom:20px;position:relative;overflow:hidden}
.crm-ph::before{content:'';position:absolute;right:-40px;top:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.07)}
.crm-ph::after{content:'';position:absolute;right:60px;bottom:-50px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.04)}
.crm-ph-av{width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;flex-shrink:0;border:3px solid rgba(255,255,255,.35);position:relative;z-index:1}
.crm-ph-info{position:relative;z-index:1}
.crm-ph-name{font-size:20px;font-weight:700;letter-spacing:-.4px}
.crm-ph-meta{font-size:13px;opacity:.75;margin-top:3px}
.crm-ph-tags{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}
.crm-ph-tag{background:rgba(255,255,255,.18);padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:600}

/* ══════════════════════ ORDER CARD ══════════════════════ */
.crm-oc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--sh);margin-bottom:10px;transition:transform .2s,box-shadow .2s}
.crm-oc:hover{transform:translateY(-1px);box-shadow:var(--sh-md)}
.crm-oc-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.crm-oc-title{font-size:14px;font-weight:700;color:var(--text)}
.crm-oc-id{font-size:11px;color:var(--text3);font-family:var(--mono);margin-top:2px}
.crm-oc-bar{height:5px;background:var(--border);border-radius:5px;margin:10px 0 8px;overflow:hidden}
.crm-oc-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent),var(--teal));transition:width .6s ease}
.crm-oc-ft{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text3)}

/* ══════════════════════ NOTIFICATIONS ══════════════════════ */
.crm-nc{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}
.crm-nc:hover{background:var(--surface2)}
.crm-nc.unread{border-left:3px solid var(--accent);background:var(--accent-lt)}
.crm-nc-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.crm-nc-body{flex:1}
.crm-nc-title{font-size:13px;font-weight:600;color:var(--text)}
.crm-nc-isi{font-size:12px;color:var(--text3);margin-top:2px}
.crm-nc-time{font-size:10.5px;color:var(--text4);font-family:var(--mono);margin-top:4px}

/* ══════════════════════ KPI ══════════════════════ */
.crm-kpi-title{font-size:12px;font-weight:700;color:var(--text3);margin-bottom:14px;text-transform:uppercase;letter-spacing:.5px}
.crm-kpi-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.crm-kpi-lbl{font-size:12.5px;color:var(--text2);width:88px;flex-shrink:0}
.crm-track{flex:1;height:7px;background:var(--border);border-radius:7px;overflow:hidden}
.crm-fill{height:100%;border-radius:7px;transition:width .6s ease}
.crm-kpi-pct{font-size:11.5px;font-weight:700;color:var(--text);font-family:var(--mono);width:34px;text-align:right}

/* ══════════════════════ FAQ ══════════════════════ */
.crm-faq-item{padding:14px 18px;border-bottom:1px solid var(--border)}
.crm-faq-item:last-child{border-bottom:none}
.crm-faq-q{font-size:13px;font-weight:700;color:var(--text);margin-bottom:5px}
.crm-faq-a{font-size:12.5px;color:var(--text2);line-height:1.7}
.crm-faq-cat{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;padding:10px 18px 5px;background:var(--surface2);border-bottom:1px solid var(--border)}

/* ══════════════════════ GRAFIK ══════════════════════ */
.crm-graf-bar{display:flex;align-items:center;gap:8px;margin:7px 0}
.crm-graf-bar div{height:15px;border-radius:5px;background:var(--border)}
.crm-graf-bar span{font-size:12px;color:var(--text3)}
.crm-graf-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--sh);margin-bottom:20px}
.crm-graf-card h3{margin:0 0 10px;font-size:14px;font-weight:700}
#cs-grafik-content { /* overridden by modern grafik CSS below */ }
.c-red{background:#EF4444}
.c-amber{background:#F59E0B}
.c-green{background:#10B981}

/* ══════════════════════ HELPERS ══════════════════════ */
.crm-g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.crm-empty{text-align:center;color:var(--text3);font-size:13px;padding:32px 20px}
.crm-alert{padding:12px 15px;border-radius:9px;margin:10px 0;font-size:13px;font-weight:500}
.crm-alert-ok{background:var(--green-lt);color:var(--green);border:1px solid #BBF7D0}
.crm-alert-err{background:var(--red-lt);color:var(--red);border:1px solid #FECACA}
.crm-mono{font-family:var(--mono);font-size:12px;color:var(--text3)}

/* ══════════════════════ ATTACHMENT ══════════════════════ */
.crm-attach-area{border:2px dashed var(--border2);border-radius:10px;padding:16px;background:var(--surface2);transition:all .2s;cursor:pointer;text-align:center;font-size:13px;color:var(--text3);margin-top:10px}
.crm-attach-area:hover,.crm-attach-area.drag{border-color:var(--accent);background:var(--accent-lt);color:var(--accent)}
.crm-attach-area input[type=file]{display:none}
.crm-attach-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.crm-ap-item{position:relative;border-radius:9px;overflow:hidden;border:1px solid var(--border);background:var(--surface)}
.crm-ap-img{width:80px;height:80px;object-fit:cover;display:block}
.crm-ap-doc{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text2);min-width:140px}
.crm-ap-doc-icon{font-size:20px}
.crm-ap-doc-info{flex:1;min-width:0}
.crm-ap-doc-name{font-size:11px;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}
.crm-ap-doc-size{font-size:10px;color:var(--text3)}
.crm-ap-remove{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.crm-ap-remove:hover{background:var(--red)}
.crm-attach-img img{border-radius:10px;max-width:240px;max-height:200px;display:block;margin-top:6px;cursor:pointer;transition:opacity .15s}
.crm-attach-img img:hover{opacity:.9}
.crm-attach-doc{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);border-radius:9px;padding:8px 12px;margin-top:6px;text-decoration:none;color:inherit;border:1px solid rgba(255,255,255,.2);transition:opacity .15s;max-width:220px}
.crm-mb.ot .crm-attach-doc{background:var(--surface2);border-color:var(--border);color:var(--text)}
.crm-attach-doc:hover{opacity:.82}
.crm-attach-doc-icon{font-size:20px;flex-shrink:0}
.crm-attach-doc-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.crm-attach-doc-dl{font-size:14px;font-weight:700;flex-shrink:0;margin-left:auto}
.crm-chat-preview{display:flex;flex-wrap:wrap;gap:6px}
.crm-chat-preview .crm-ap-item{transform:scale(.9);transform-origin:left}
.crm-upload-prog{height:3px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:6px;display:none}
.crm-upload-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent),#6366F1);border-radius:3px;transition:width .3s}

/* ══════════════════════ LIGHTBOX ══════════════════════ */
.crm-lightbox{display:none;position:fixed;inset:0;background:rgba(10,15,30,.9);z-index:99999;align-items:center;justify-content:center;cursor:zoom-out;backdrop-filter:blur(8px)}
.crm-lightbox.on{display:flex}
.crm-lightbox img{max-width:90vw;max-height:90vh;border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.crm-lightbox-close{position:fixed;top:18px;right:22px;color:rgba(255,255,255,.7);font-size:28px;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.1);transition:all .15s}
.crm-lightbox-close:hover{background:rgba(255,255,255,.2);color:#fff}

/* ══════════════════════ SCROLLBAR ══════════════════════ */
.crm-main::-webkit-scrollbar,.crm-chat-msgs::-webkit-scrollbar,.crm-chat-list::-webkit-scrollbar,.crm-sb-nav::-webkit-scrollbar,.crm-pg::-webkit-scrollbar{width:4px}
.crm-main::-webkit-scrollbar-track,.crm-chat-msgs::-webkit-scrollbar-track,.crm-pg::-webkit-scrollbar-track{background:transparent}
.crm-main::-webkit-scrollbar-thumb,.crm-chat-msgs::-webkit-scrollbar-thumb,.crm-pg::-webkit-scrollbar-thumb{background:var(--border2);border-radius:8px}

/* ══════════════════════ RESPONSIVE ══════════════════════ */
@media(max-width:768px){
  .crm-sb{width:210px}
  .crm-sg{grid-template-columns:1fr 1fr}
  .crm-g2{grid-template-columns:1fr}
  .crm-fg{grid-template-columns:1fr}
  .crm-fgroup.full{grid-column:1}
  .crm-chat-left{width:220px}
  .crm-pg{padding:16px}
  .crm-tb{padding:12px 16px}
}

@media(max-width:560px){
  .crm-sb{width:60px}
  .crm-sb-name,.crm-sb-lbl,.crm-sb-item span:not(.crm-si),.crm-uname,.crm-urole{display:none}
  .crm-sb-item{justify-content:center;padding:12px}
  .crm-sb-user{padding:8px;justify-content:center}
  .crm-sg{grid-template-columns:1fr 1fr}
}

/* ══════════════════════════════════════════════
   GRAFIK — Modern Chart UI
   ══════════════════════════════════════════════ */

/* pane grafik override — full-bleed padding */
#pane-grafik .crm-pg { padding: 20px 24px; }

/* ── Grafik container grid ── */
#cs-grafik-content {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
  align-items: start;
}

/* ── Multi-chart card v2 ── */
.crm-graf-card--v2 {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 0;
  box-shadow: var(--sh);
  overflow: hidden;
  opacity: 0;
  transform: translateY(10px);
  animation: cardIn .4s ease forwards;
}

@keyframes cardIn {
  to { opacity: 1; transform: translateY(0); }
}

.crm-graf-card-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--surface2);
}

.crm-graf-card-hd-l {
  display: flex;
  align-items: center;
  gap: 10px;
}

.crm-graf-card-icon {
  font-size: 20px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-lt);
  border-radius: 9px;
  flex-shrink: 0;
}

.crm-graf-card-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.2;
}

.crm-graf-card-sub {
  font-size: 11px;
  color: var(--text3);
  margin-top: 2px;
  font-family: var(--mono);
}

.crm-graf-card-top-badge {
  font-size: 11px;
  color: var(--text3);
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 3px 9px;
  border-radius: 20px;
  white-space: nowrap;
}

.crm-graf-card-top-badge strong {
  color: var(--accent);
  font-weight: 600;
}

/* ── Canvas wrapper ── */
.crm-graf-canvas-wrap {
  padding: 16px 16px 8px;
  position: relative;
  height: 200px;
}

.crm-graf-canvas-wrap canvas {
  width: 100% !important;
  height: 100% !important;
}

.crm-graf-canvas-wrap--sm {
  height: 175px;
  padding: 14px 14px 6px;
}

/* ── Legend strip ── */
.crm-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  padding: 6px 16px 14px;
}

.crm-chart-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: var(--text2);
  cursor: default;
}

.crm-chart-legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.crm-chart-legend-lbl {
  max-width: 110px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ══════════════════════════════════════════════
   SINGLE BREAKDOWN VIEW
   ══════════════════════════════════════════════ */
.crm-graf-single {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-md);
  animation: cardIn .35s ease forwards;
}

.crm-graf-single-hd {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
  background: var(--surface2);
}

.crm-graf-icon {
  font-size: 24px;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-lt);
  border-radius: 12px;
  flex-shrink: 0;
}

.crm-graf-single-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.3px;
}

.crm-graf-single-sub {
  font-size: 12px;
  color: var(--text3);
  margin-top: 3px;
  font-family: var(--mono);
}

.crm-graf-single-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

/* canvas side */
.crm-graf-single-body .crm-graf-canvas-wrap {
  height: 280px;
  border-right: 1px solid var(--border);
  padding: 20px;
}

/* rank side */
.crm-graf-rank {
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
}

.crm-graf-rank-row {
  display: flex;
  align-items: center;
  gap: 9px;
}

.crm-graf-rank-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.crm-graf-rank-lbl {
  font-size: 12.5px;
  color: var(--text2);
  width: 80px;
  flex-shrink: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.crm-graf-rank-bar {
  flex: 1;
  height: 6px;
  background: var(--border);
  border-radius: 6px;
  overflow: hidden;
}

.crm-graf-rank-fill {
  height: 100%;
  border-radius: 6px;
  transition: width .7s cubic-bezier(.16,1,.3,1);
}

.crm-graf-rank-val {
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  width: 28px;
  text-align: right;
  flex-shrink: 0;
}

/* responsive single view */
@media (max-width: 700px) {
  .crm-graf-single-body {
    grid-template-columns: 1fr;
  }
  .crm-graf-single-body .crm-graf-canvas-wrap {
    border-right: none;
    border-bottom: 1px solid var(--border);
    height: 220px;
  }
}

/* hide old grafik elements that are now replaced */
#cs-grafik-content > canvas { display: none; }

/* ══════════════════════════════════════════════
   BULK ACTION
   ══════════════════════════════════════════════ */

/* floating bulk bar */
.crm-bulk-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  background: var(--sb-bg);
  border-bottom: 1px solid rgba(255,255,255,.06);
  gap: 12px;
  flex-wrap: wrap;
  animation: bulkSlide .2s ease;
}

@keyframes bulkSlide {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.crm-bulk-bar-l,
.crm-bulk-bar-r {
  display: flex;
  align-items: center;
  gap: 10px;
}

.crm-bulk-count {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.9);
}

.crm-bulk-count span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: #fff;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  min-width: 22px;
  height: 22px;
  border-radius: 11px;
  padding: 0 6px;
  margin-right: 4px;
}

.crm-bulk-deselect {
  background: rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.6) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  box-shadow: none !important;
}

.crm-bulk-deselect:hover {
  background: rgba(255,255,255,.14) !important;
  color: rgba(255,255,255,.9) !important;
}

/* checkbox column */
.crm-th-check,
.crm-td-check {
  width: 40px;
  text-align: center;
  padding: 0 8px !important;
}

.crm-th-check input[type=checkbox],
.crm-td-check input[type=checkbox] {
  width: 15px;
  height: 15px;
  cursor: pointer;
  accent-color: var(--accent);
  border-radius: 4px;
}

/* selected row highlight */
.crm-table tbody tr.crm-row-selected td {
  background: var(--accent-lt) !important;
}

.crm-table tbody tr.crm-row-selected .crm-td-check {
  background: var(--accent-lt) !important;
}

/* ══════════════════════════════════════════════
   CLIENT — TIKET CARDS
   ══════════════════════════════════════════════ */
.crm-tiket-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.crm-tc {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 16px 18px;
  box-shadow: var(--sh);
  cursor: pointer;
  transition: transform .18s, box-shadow .18s, border-color .18s;
  animation: cardIn .3s ease forwards;
}

.crm-tc:hover {
  transform: translateY(-2px);
  box-shadow: var(--sh-md);
  border-color: var(--border2);
}

.crm-tc-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.crm-tc-left,
.crm-tc-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.crm-tc-id {
  font-size: 11.5px;
  color: var(--text3);
  background: var(--surface2);
  border: 1px solid var(--border);
  padding: 2px 8px;
  border-radius: 20px;
}

.crm-tc-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.3px;
  margin-bottom: 8px;
  line-height: 1.3;
}

.crm-tc-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 12px;
}

.crm-tc-meta-item {
  font-size: 12px;
  color: var(--text3);
}

.crm-tc-meta-sep {
  color: var(--border2);
  font-size: 12px;
}

.crm-tc-rating {
  font-size: 14px;
  color: #F59E0B;
  margin-bottom: 10px;
  letter-spacing: 1px;
}

.crm-tc-rating span {
  font-size: 11.5px;
  font-family: var(--mono);
  color: var(--text3);
  margin-left: 4px;
}

.crm-tc-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

/* ── EMPTY STATE ── */
.crm-empty-state {
  text-align: center;
  padding: 60px 20px;
  color: var(--text3);
}

.crm-empty-state-icon  { font-size: 40px; margin-bottom: 12px; }
.crm-empty-state-title { font-size: 15px; font-weight: 700; color: var(--text2); margin-bottom: 6px; }
.crm-empty-state-sub   { font-size: 13px; }

/* ══════════════════════════════════════════════
   CLIENT — TIKET DETAIL PANEL
   ══════════════════════════════════════════════ */
.crm-detail-hero {
  background: linear-gradient(135deg, #0F1729 0%, #1e2d52 100%);
  border-radius: var(--r-lg);
  padding: 22px 24px;
  margin-bottom: 18px;
  color: #fff;
}

.crm-detail-hero-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.crm-detail-hero-title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -.4px;
  margin-bottom: 10px;
  line-height: 1.3;
}

.crm-detail-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12.5px;
  color: rgba(255,255,255,.6);
}

.crm-detail-hero-meta span { display: flex; align-items: center; gap: 5px; }

.crm-detail-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 20px;
}

.crm-detail-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}

.crm-detail-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .6px;
  padding: 10px 16px;
  background: var(--surface2);
  border-bottom: 1px solid var(--border);
}

.crm-detail-desc {
  padding: 14px 16px;
  font-size: 13.5px;
  color: var(--text2);
  line-height: 1.7;
  white-space: pre-wrap;
}

.crm-detail-attach-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px 16px;
}

.crm-detail-attach-item {
  text-decoration: none;
  border-radius: 9px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: transform .15s, box-shadow .15s;
}

.crm-detail-attach-item:hover {
  transform: translateY(-2px);
  box-shadow: var(--sh-md);
}

.crm-detail-attach-img img {
  width: 90px;
  height: 90px;
  object-fit: cover;
  display: block;
}

.crm-detail-attach-doc {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--surface2);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text2);
  min-width: 160px;
}

.crm-detail-rating {
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.crm-detail-rating-stars {
  font-size: 22px;
  color: #F59E0B;
  letter-spacing: 2px;
}

.crm-detail-rating-val {
  font-size: 13px;
  font-weight: 700;
  font-family: var(--mono);
  color: var(--text3);
}

.crm-detail-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* ══════════════════════════════════════════════
   MODAL SYSTEM
   ══════════════════════════════════════════════ */
.crm-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 15, 30, .6);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  backdrop-filter: blur(4px);
  animation: overlayIn .18s ease;
}

@keyframes overlayIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.crm-modal {
  background: var(--surface);
  border-radius: 18px;
  width: 100%;
  max-width: 520px;
  box-shadow: var(--sh-lg);
  animation: modalIn .22s cubic-bezier(.16,1,.3,1);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

.crm-modal--sm {
  max-width: 400px;
}

@keyframes modalIn {
  from { opacity: 0; transform: scale(.95) translateY(10px); }
  to   { opacity: 1; transform: scale(1)   translateY(0); }
}

.crm-modal-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 22px 16px;
  border-bottom: 1px solid var(--border);
}

.crm-modal-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.3px;
}

.crm-modal-close {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  background: var(--surface2);
  color: var(--text3);
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .15s;
}

.crm-modal-close:hover {
  background: var(--red-lt);
  color: var(--red);
}

.crm-modal-body {
  padding: 20px 22px;
  overflow-y: auto;
  flex: 1;
}

.crm-modal-ft {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 22px 18px;
  border-top: 1px solid var(--border);
  background: var(--surface2);
  border-radius: 0 0 18px 18px;
}

.crm-modal-note {
  margin-top: 14px;
  padding: 10px 13px;
  background: var(--amber-lt);
  border: 1px solid #FDE68A;
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--amber);
}

/* confirm modal */
.crm-modal-confirm-icon  { font-size: 38px; text-align: center; margin-bottom: 10px; }
.crm-modal-confirm-title { font-size: 16px; font-weight: 700; color: var(--text); text-align: center; margin-bottom: 8px; }
.crm-modal-confirm-sub   { font-size: 13px; color: var(--text3); text-align: center; line-height: 1.6; }

/* prevent body scroll when modal open */
body.crm-modal-open { overflow: hidden; }

/* ══════════════════════════════════════════════
   RATING STARS
   ══════════════════════════════════════════════ */
.crm-star-wrap {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-bottom: 10px;
}

.crm-star {
  font-size: 36px;
  color: var(--border2);
  cursor: pointer;
  transition: color .12s, transform .12s;
  line-height: 1;
  user-select: none;
}

.crm-star.hover,
.crm-star.on {
  color: #F59E0B;
}

.crm-star:hover,
.crm-star.hover {
  transform: scale(1.2);
}

.crm-star.on {
  transform: scale(1.1);
}

.crm-star-label {
  font-size: 13px;
  color: var(--text3);
  font-weight: 500;
  min-height: 20px;
  text-align: center;
}

/* ═══════════════════════════════════════
   INTERNAL NOTE (v4.2)
═══════════════════════════════════════ */
.crm-chat-internal-row {
  padding: 6px 12px 4px;
  display: flex;
  align-items: center;
}

.crm-internal-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text3);
  cursor: pointer;
  user-select: none;
  padding: 4px 10px;
  border-radius: 20px;
  border: 1.5px dashed var(--border2);
  transition: background .15s, border-color .15s, color .15s;
}
.crm-internal-toggle:hover {
  background: #fef3c7;
  border-color: #f59e0b;
  color: #92400e;
}
.crm-internal-toggle input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: #f59e0b;
  cursor: pointer;
}
.crm-internal-toggle input:checked ~ span {
  color: #92400e;
  font-weight: 600;
}
.crm-internal-icon { font-size: 14px; }

/* Bubble internal note */
.crm-mw-internal {
  justify-content: flex-start !important;
}
.crm-internal-label {
  width: 100%;
  margin-bottom: 2px;
}
.crm-note-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fcd34d;
  border-radius: 8px;
  padding: 2px 8px;
  letter-spacing: .3px;
  text-transform: uppercase;
}
.crm-mb.crm-internal-note {
  background: #fffbeb !important;
  border: 1.5px dashed #fcd34d !important;
  color: #78350f !important;
  border-radius: 10px 10px 10px 2px !important;
}
.crm-mb.crm-internal-note.me {
  border-radius: 10px 10px 2px 10px !important;
}

/* Rate limiting — error state di form login */
.crm-login-lockout {
  background: #fef2f2;
  border: 1px solid #fca5a5;
  color: #991b1b;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ══════════════════════════════════════════════
   PERBAIKAN v13 — Mobile Drawer + Form Grouping + CS Detail
   ══════════════════════════════════════════════ */

/* ─────────────────────────────────────────────
   1. MOBILE DRAWER SIDEBAR
   ───────────────────────────────────────────── */

/* Hamburger button — hanya muncul di mobile */
.crm-hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 9px;
  border: 1.5px solid var(--border2);
  background: var(--surface);
  cursor: pointer;
  flex-shrink: 0;
  transition: background .15s, border-color .15s;
  margin-right: 8px;
}
.crm-hamburger:hover { background: var(--accent-lt); border-color: var(--accent); }
.crm-hamburger svg { width: 18px; height: 18px; stroke: var(--text2); }

/* Overlay backdrop */
.crm-sb-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10, 15, 30, 0.55);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 199;
  opacity: 0;
  transition: opacity .25s ease;
}
.crm-sb-overlay.visible { opacity: 1; }

@media (max-width: 768px) {
  /* Hamburger tampil */
  .crm-hamburger { display: flex; }

  /* Sidebar jadi drawer */
  .crm-sb {
    position: fixed !important;
    top: 0; left: 0; bottom: 0;
    width: 272px !important;
    z-index: 200;
    transform: translateX(-100%);
    transition: transform .28s cubic-bezier(.16,1,.3,1);
    box-shadow: none;
  }
  .crm-sb.open {
    transform: translateX(0);
    box-shadow: 0 0 60px rgba(0,0,0,.35);
  }
  .crm-sb-overlay { display: block; }

  /* Main content full width */
  .crm-main { width: 100% !important; }

  /* Topbar: hamburger di kiri */
  .crm-tb { gap: 0; }
  .crm-tb-l { display: flex; align-items: center; }

  /* Sidebar close button */
  .crm-sb-close {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 7px;
    border: none;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.7);
    cursor: pointer;
    font-size: 16px;
    margin-left: auto;
    transition: background .15s;
  }
  .crm-sb-close:hover { background: rgba(255,255,255,.15); color: #fff; }
}

/* Close button selalu ada di DOM tapi tersembunyi di desktop */
.crm-sb-close { display: none; }

/* Topbar mobile: pastikan flex agar hamburger bisa masuk */
@media (max-width: 768px) {
  .crm-tb-l {
    flex: 1;
    min-width: 0;
  }
  .crm-tb-l h2 {
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* Swipe hint subtle animation pada pertama load */
@keyframes sbHint {
  0%   { transform: translateX(0); }
  15%  { transform: translateX(8px); }
  30%  { transform: translateX(0); }
  100% { transform: translateX(0); }
}

/* ─────────────────────────────────────────────
   2. FORM TIKET — Visual Grouping
   ───────────────────────────────────────────── */

/* Container form dengan section-section */
.crm-form-section {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 14px;
  transition: border-color .15s, box-shadow .15s;
}
.crm-form-section:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-lt);
}

.crm-form-section-hd {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 14px;
  background: var(--surface2);
  border-bottom: 1px solid var(--border);
}
.crm-form-section-icon {
  font-size: 15px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-lt);
  border-radius: 7px;
  flex-shrink: 0;
}
.crm-form-section-title {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--text2);
  text-transform: uppercase;
  letter-spacing: .6px;
}
.crm-form-section-body {
  padding: 14px 16px;
}

/* Cascade selector wrapper */
.crm-cascade-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.crm-cascade-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
  background: var(--surface2);
}
.crm-cascade-row:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-lt);
  background: #fff;
}

.crm-cascade-label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  background: var(--surface2);
  border-right: 1.5px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .5px;
  white-space: nowrap;
  min-width: 100px;
  flex-shrink: 0;
  transition: background .15s, color .15s;
}
.crm-cascade-row:focus-within .crm-cascade-label {
  background: var(--accent-lt);
  color: var(--accent);
  border-right-color: var(--accent);
}

.crm-cascade-select {
  flex: 1;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 10px 12px !important;
  font-size: 13px !important;
  color: var(--text) !important;
  outline: none !important;
  cursor: pointer;
  min-width: 0;
}
.crm-cascade-select:disabled {
  color: var(--text4) !important;
  cursor: not-allowed;
}

/* Arrow indicator for cascade */
.crm-cascade-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text4);
  font-size: 12px;
  padding: 0 8px 0 4px;
}

/* Step connector between cascade rows */
.crm-cascade-connector {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  font-size: 11px;
  color: var(--text4);
}
.crm-cascade-connector::before {
  content: '';
  display: block;
  width: 1px;
  height: 12px;
  background: var(--border2);
  margin-left: 12px;
}

/* ─────────────────────────────────────────────
   3. CS DETAIL TIKET — Card Section Layout
   ───────────────────────────────────────────── */

.crm-cs-detail-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Hero header CS — seragam dengan client */
.crm-cs-detail-hero {
  background: linear-gradient(135deg, #0F1729 0%, #1a2d52 50%, #0d2246 100%);
  border-radius: var(--r-lg);
  padding: 20px 22px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.crm-cs-detail-hero::before {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 180px; height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(59,127,255,.18) 0%, transparent 70%);
  pointer-events: none;
}
.crm-cs-detail-hero-row1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  flex-wrap: wrap;
  gap: 8px;
}
.crm-cs-detail-id {
  font-size: 11.5px;
  font-family: var(--mono);
  color: rgba(255,255,255,.45);
  letter-spacing: .5px;
}
.crm-cs-detail-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.crm-cs-detail-title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.35px;
  line-height: 1.3;
  margin-bottom: 12px;
}
.crm-cs-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  font-size: 12px;
  color: rgba(255,255,255,.55);
}
.crm-cs-detail-meta-item {
  display: flex;
  align-items: center;
  gap: 5px;
}
.crm-cs-detail-meta-item strong {
  color: rgba(255,255,255,.85);
  font-weight: 600;
}

/* Info grid — 2 kolom di dalam detail */
.crm-cs-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 600px) {
  .crm-cs-detail-grid { grid-template-columns: 1fr; }
}

/* Info card */
.crm-cs-info-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.crm-cs-info-card-hd {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--surface2);
  border-bottom: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .6px;
}
.crm-cs-info-card-hd-icon {
  font-size: 14px;
}
.crm-cs-info-card-body {
  padding: 12px 14px;
}

/* Row dalam info card */
.crm-cs-info-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
}
.crm-cs-info-row:last-child { border-bottom: none; }
.crm-cs-info-key {
  color: var(--text3);
  font-size: 12px;
  flex-shrink: 0;
  padding-top: 1px;
}
.crm-cs-info-val {
  color: var(--text);
  font-weight: 500;
  text-align: right;
  word-break: break-word;
}

/* Modul path badge */
.crm-modul-path {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  flex-wrap: wrap;
}
.crm-modul-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
}
.crm-modul-badge.kat { background: var(--accent-lt); color: var(--accent); }
.crm-modul-badge.mod { background: #EDE9FE; color: #6D28D9; }
.crm-modul-badge.sub { background: var(--green-lt); color: var(--green); }
.crm-modul-sep { color: var(--text4); font-size: 11px; }

/* Description section full width */
.crm-cs-desc-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.crm-cs-desc-body {
  padding: 14px 16px;
  font-size: 13.5px;
  color: var(--text2);
  line-height: 1.75;
  white-space: pre-wrap;
}

/* Actions bar */
.crm-cs-detail-actions {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 14px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.crm-cs-detail-actions-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-right: 4px;
}

/* Attachment grid in detail */
.crm-cs-attach-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 14px;
}

@media (max-width: 768px) {
  .crm-cs-detail-grid { grid-template-columns: 1fr; }
  .crm-cs-detail-title { font-size: 16px; }
}

/* ══════════════════════════════════════════════
   REASSIGN CS ITEM — Modal list
   ══════════════════════════════════════════════ */
.crm-reassign-cs-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  background: var(--surface);
  transition: border-color .15s, background .15s, box-shadow .15s;
}
.crm-reassign-cs-item:hover {
  border-color: var(--accent);
  background: var(--accent-lt);
  box-shadow: 0 0 0 3px var(--accent-lt);
}
.crm-reassign-cs-item.loading {
  opacity: .6;
  pointer-events: none;
}

/* Filter modul/submodul disabled state */
#filter-modul:disabled,
#filter-submodul:disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* Notif toggle button pulse when ungranted */
#crm-notif-toggle[title*="Aktifkan"] {
  animation: notifPulse 2.5s ease infinite;
}
@keyframes notifPulse {
  0%, 100% { box-shadow: none; }
  50%       { box-shadow: 0 0 0 3px rgba(59,127,255,.2); }
}

/* ══════════════════════════════════════════════════
   SELF-SERVICE FEATURES v15
   ══════════════════════════════════════════════════ */

/* ── FAQ: Category header */
.crm-faq-cat-hd {
  padding: 10px 18px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text3);
  background: var(--surface2);
  border-bottom: 1px solid var(--border);
}

/* ── FAQ: Item */
.crm-faq-item {
  border-bottom: 1px solid var(--border);
}
.crm-faq-item:last-child { border-bottom: none; }

.crm-faq-q {
  padding: 14px 18px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  transition: background .15s;
  user-select: none;
}
.crm-faq-q:hover { background: var(--surface2); }

.crm-faq-toggle-icon {
  font-size: 10px;
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 3px;
  transition: transform .2s;
}

.crm-faq-a {
  padding: 0 18px 16px 38px;
}

.crm-faq-jawaban {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.65;
  white-space: pre-line;
  margin-bottom: 14px;
}

/* ── FAQ Vote widget */
.crm-faq-vote-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 14px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
}

.crm-faq-vote-lbl {
  font-size: 12px;
  color: var(--text3);
  flex-shrink: 0;
}

.crm-faq-voted-lbl {
  font-size: 12px;
  font-weight: 600;
  color: var(--text2);
  flex-shrink: 0;
}

.crm-faq-vote-btn {
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.crm-faq-btn-ya:hover    { background: #F0FDF4; border-color: #16A34A; color: #16A34A; }
.crm-faq-btn-tidak:hover { background: #FEF2F2; border-color: #DC2626; color: #DC2626; }

/* ── FAQ Vote stats bar */
.crm-faq-vote-stats {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 11px;
  color: var(--text3);
}
.crm-faq-vote-bar {
  flex: 1;
  height: 6px;
  background: var(--border);
  border-radius: 6px;
  overflow: hidden;
  min-width: 60px;
}
.crm-faq-vote-fill {
  height: 100%;
  background: linear-gradient(90deg, #16A34A, #10B981);
  border-radius: 6px;
  transition: width .5s ease;
}
.crm-faq-vote-pct { font-weight: 700; color: #16A34A; white-space: nowrap; }
.crm-faq-vote-cnt { color: var(--text3); white-space: nowrap; }

/* ══════════════════════════════════════════
   CHATBOT FAQ SUGGESTION (form tiket)
   ══════════════════════════════════════════ */
.crm-faq-suggest-box {
  border: 1.5px solid var(--accent);
  border-radius: 12px;
  background: linear-gradient(135deg, #EEF4FF 0%, #F5F0FF 100%);
  overflow: hidden;
}

.crm-faq-suggest-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  background: rgba(99, 102, 241, .08);
  border-bottom: 1px solid rgba(99,102,241,.15);
  font-size: 12.5px;
  color: #4338CA;
}

.crm-faq-suggest-close {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 11px;
  color: var(--text3);
  padding: 2px 6px;
  border-radius: 4px;
  font-family: inherit;
}
.crm-faq-suggest-close:hover { background: rgba(0,0,0,.06); }

.crm-faq-suggest-item {
  border-bottom: 1px solid rgba(99,102,241,.1);
}
.crm-faq-suggest-item:last-child { border-bottom: none; }

.crm-faq-suggest-q {
  padding: 11px 16px;
  font-size: 13px;
  font-weight: 600;
  color: #312E81;
  cursor: pointer;
  transition: background .15s;
}
.crm-faq-suggest-q:hover { background: rgba(99,102,241,.07); }

.crm-faq-suggest-a {
  display: none;
  padding: 0 16px 12px 16px;
  font-size: 12.5px;
  color: #4338CA;
  line-height: 1.6;
}

.crm-faq-suggest-rating {
  display: inline-block;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #16A34A;
}

.crm-faq-suggest-vote {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px 12px;
  flex-wrap: wrap;
}

.crm-faq-suggest-ft {
  padding: 8px 16px;
  font-size: 11px;
  color: #6366F1;
  background: rgba(99,102,241,.05);
  border-top: 1px solid rgba(99,102,241,.1);
  text-align: center;
}

/* ══════════════════════════════════════════
   PROFIL CLIENT — Edit form improvements
   ══════════════════════════════════════════ */

/* Grid 2 kolom responsive untuk form profil */
@media (min-width: 600px) {
  #pane-profil .crm-fg {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  #pane-profil .crm-fg .crm-fgroup:first-child {
    grid-column: 1 / -1;
  }
}

/* Password strength hint */
#cl-profil-pw-baru:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(99,102,241,.1);
}

