:root{--p:#6366f1;--pd:#4f46e5;--pl:#818cf8;--sb:260px;--hh:56px;--bg:#f8fafc;--bg2:#fff;--bg3:#f1f5f9;--tx:#0f172a;--tx2:#475569;--tx3:#94a3b8;--bdr:#e2e8f0;--bdr2:#f1f5f9;--card:#fff;--hover:#f8fafc;--inp:#f8fafc;--inpf:#fff;--shd:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shd-md:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -2px rgba(0,0,0,.05);--radius:12px;--radius-sm:8px;--radius-xs:6px;--transition:all .2s cubic-bezier(.4,0,.2,1)}
[data-theme="dark"]{--bg:#0c0a1d;--bg2:#161432;--bg3:#1e1b4b;--tx:#e2e8f0;--tx2:#94a3b8;--tx3:#64748b;--bdr:#2e2b5e;--bdr2:#1e1b4b;--card:#161432;--hover:#1e1b4b;--inp:#1e1b4b;--inpf:#2e2b5e;--shd:0 1px 3px rgba(0,0,0,.2);--shd-md:0 4px 6px rgba(0,0,0,.25)}
*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--tx);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--tx3)}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sb);background:linear-gradient(180deg,var(--sb-top,#1e1b4b) 0%,var(--sb-mid,#312e81) 50%,var(--sb-bot,#3730a3) 100%);color:#fff;z-index:1001;display:flex;flex-direction:column;transition:width .25s cubic-bezier(.4,0,.2,1),transform .3s;border-right:1px solid rgba(255,255,255,.06)}
.sb-mini .sidebar{width:68px}.sb-mini .main{margin-left:68px}
.sb-mini .sb-brand h5,.sb-mini .sb-brand-sub,.sb-mini .sb-brand>div{display:none}.sb-mini .sb-brand{justify-content:center;padding:16px 10px}
.sb-mini .sb-nav a span,.sb-mini .sb-nav a .badge,.sb-mini .sb-sec{display:none}.sb-mini .sb-nav a{justify-content:center;padding:10px}.sb-mini .sb-nav a i{font-size:20px;width:auto;margin:0}
.sb-mini .sb-profile-info>div:last-child,.sb-mini .sb-profile .sb-act-btn span,.sb-mini .sb-role-badge{display:none}.sb-mini .sb-profile-info{justify-content:center}.sb-mini .sb-profile .d-flex{flex-wrap:wrap;justify-content:center;gap:4px!important}.sb-mini .sb-act-btn{padding:7px;min-width:36px}
.sb-mini .sb-nav a[title]{position:relative}.sb-mini .sb-nav a:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#1e293b;color:#fff;padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:1002;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.sb-toggle-btn{position:absolute;right:-17px;top:16px;width:34px;height:34px;border-radius:50%;background:var(--bg2);border:1px solid var(--bdr);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1002;color:var(--tx2);font-size:16px;transition:var(--transition);box-shadow:var(--shd)}.sb-toggle-btn:hover{background:var(--p);color:#fff;border-color:var(--p)}
.sb-brand{padding:16px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.08)}.sb-brand h5{margin:0;font-size:16px;font-weight:800;letter-spacing:-.3px}.sb-brand-sub{font-size:11px;color:rgba(255,255,255,.4)}
.sb-search-wrap{padding:6px 12px 8px}
.sb-search-box{position:relative;display:flex;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;transition:all .25s ease;overflow:hidden}
.sb-search-box:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18)}
.sb-search-box:focus-within{background:rgba(255,255,255,.12);border-color:rgba(99,102,241,.55);box-shadow:0 0 0 3px rgba(99,102,241,.15)}
.sb-search-box .sb-s-icon{position:absolute;left:10px;font-size:13px;color:rgba(255,255,255,.3);pointer-events:none;transition:color .2s}
.sb-search-box:focus-within .sb-s-icon{color:rgba(129,140,248,.8)}
.sb-search-inp{width:100%;background:transparent;border:none;padding:7px 32px 7px 32px;font-size:12.5px;color:rgba(255,255,255,.85);outline:none;font-weight:500;letter-spacing:.2px}
.sb-search-inp::placeholder{color:rgba(255,255,255,.28);font-weight:400}
.sb-search-clear{position:absolute;right:6px;background:none;border:none;color:rgba(255,255,255,.3);font-size:14px;cursor:pointer;padding:2px 4px;border-radius:4px;display:none;transition:color .15s}
.sb-search-clear:hover{color:rgba(255,255,255,.7);background:rgba(255,255,255,.1)}
.sb-search-box.has-val .sb-search-clear{display:block}
.sb-search-kbd{position:absolute;right:8px;font-size:9px;color:rgba(255,255,255,.2);pointer-events:none;font-family:system-ui;background:rgba(255,255,255,.06);padding:1px 5px;border-radius:3px;border:1px solid rgba(255,255,255,.08)}
.sb-search-box.has-val .sb-search-kbd{display:none}
.sb-mini .sb-search-wrap{display:none}
.sb-nav{flex:1;padding:8px 10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.sb-nav:hover{scrollbar-color:rgba(255,255,255,.3) transparent}
.sb-nav::-webkit-scrollbar{width:5px}.sb-nav::-webkit-scrollbar-track{background:transparent}.sb-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:10px}.sb-nav:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3)}.sb-nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.45)}.sb-sec{color:rgba(255,255,255,.35);font-size:11px;text-transform:uppercase;letter-spacing:1.2px;padding:16px 12px 6px;font-weight:700}
.sb-grp+.sb-grp{margin-top:2px}.sb-grp-hdr{cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none;padding:14px 12px 6px}.sb-grp-hdr .chv{transition:transform .2s;font-size:.6rem;opacity:.4}.sb-grp.collapsed .sb-grp-body{display:none}.sb-grp.collapsed .chv{transform:rotate(-90deg)}.sb-mini .sb-grp-hdr{display:none}.sb-mini .sb-grp.collapsed .sb-grp-body{display:block}
.sb-nav a{color:rgba(255,255,255,.6);border-radius:var(--radius-sm);padding:9px 12px;display:flex;align-items:center;gap:10px;font-size:13.5px;text-decoration:none;cursor:pointer;margin-bottom:2px;font-weight:500;transition:var(--transition)}
.sb-nav a:hover{background:rgba(255,255,255,.08);color:rgba(255,255,255,.9);transform:translateX(2px)}.sb-nav a.active{background:rgba(99,102,241,.25);color:#fff;font-weight:700;box-shadow:inset 3px 0 0 #818cf8}.sb-nav a i{font-size:17px;width:20px;text-align:center;opacity:.8}.sb-nav a.active i{opacity:1}
.sb-foot{padding:12px 14px;border-top:1px solid rgba(255,255,255,.08);flex-direction:column;gap:8px;display:flex}
.sb-foot .av{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--p,#6366f1),var(--pl,#818cf8))}
.sb-act-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:7px 0;border-radius:var(--radius-xs);border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:rgba(255,255,255,.5);cursor:pointer;font-size:15px;transition:var(--transition)}.sb-act-btn:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.2);transform:translateY(-1px)}
.main{margin-left:var(--sb);min-height:100vh;transition:margin .3s}
.top-bar{height:var(--hh);background:var(--bg2);border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:100;overflow:visible;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.pg{padding:20px}
.card-s{background:var(--card);border-radius:var(--radius);padding:20px;border:1px solid var(--bdr);box-shadow:var(--shd);transition:var(--transition)}.card-s:hover{box-shadow:var(--shd-md)}
.dt{background:var(--card);border-radius:var(--radius);border:1px solid var(--bdr);overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 220px);box-shadow:var(--shd)}.dt table{margin:0;white-space:nowrap}
.dt th{background:var(--bg3);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);border-bottom:1px solid var(--bdr);padding:12px 14px;cursor:pointer;user-select:none;position:sticky;top:0;z-index:1}
.dt th:hover{color:var(--p)}.dt th.sorted{color:var(--p)}
.col-resize{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent;z-index:2;transition:background .15s}.col-resize:hover,.col-resize.active{background:var(--p)}
.dt td{padding:12px 14px;font-size:13.5px;border-bottom:1px solid var(--bdr2);vertical-align:middle;color:var(--tx)}.dt tr:hover td{background:var(--hover)}.dt tr{cursor:pointer;transition:var(--transition)}.dt tr:last-child td{border-bottom:none}
.bs{padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px;display:inline-flex;align-items:center;gap:4px}
.s0{background:#eef2ff;color:#4f46e5}.s1{background:#fef3c7;color:#92400e}.s2{background:#e0e7ff;color:#3730a3}.s3{background:#fce7f3;color:#9d174d}.s4{background:#fae8ff;color:#86198f}.s5{background:#d1fae5;color:#065f46}.s6{background:#f1f5f9;color:#64748b}
.p0{color:#22c55e}.p1{color:#3b82f6}.p2{color:#f59e0b}.p3{color:#ef4444}.p4{color:#dc2626;font-weight:700}
.pri-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px}
.pri-0{background:#dcfce7;color:#166534}.pri-1{background:#dbeafe;color:#1e40af}.pri-2{background:#fef3c7;color:#92400e}.pri-3{background:#fee2e2;color:#991b1b;animation:priBlink 2s infinite}.pri-4{background:#fecaca;color:#7f1d1d;animation:priBlink 1.5s infinite}
@keyframes priBlink{0%,100%{opacity:1}50%{opacity:.7}}
.tp{background:var(--card);border-radius:var(--radius);border:1px solid var(--bdr);overflow:hidden;box-shadow:var(--shd)}.tp-h{padding:14px 20px;border-bottom:1px solid var(--bdr);background:var(--bg3)}.tp-b{padding:20px;overflow:hidden;overflow-x:auto;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.tp-b table{max-width:100%!important;width:auto!important;border-collapse:collapse;font-size:14px}.tp-b td,.tp-b th{max-width:250px;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.tp-b img{max-width:100%!important;height:auto!important}.tp-b *{max-width:100%!important;box-sizing:border-box}.tp-b p,.tp-b div,.tp-b span{overflow-wrap:break-word;word-wrap:break-word}.new-ticket-alert{position:fixed;top:16px;right:16px;z-index:99999;background:var(--card);border:1px solid #c7d2fe;border-left:4px solid #6366f1;border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shd-md);display:flex;align-items:center;gap:12px;animation:slideInRight .3s ease;cursor:pointer;max-width:400px}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.ntf-pulse{animation:ntfPulse .5s ease 3}@keyframes ntfPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}.kb-card{transition:box-shadow .15s;overflow:hidden}.kb-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}.kb-folder{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:var(--tx);transition:.15s;user-select:none}.kb-folder:hover{background:var(--hover)}.kb-folder.active{background:#eef2ff;color:#4f46e5;font-weight:700}.kb-folder.drag-over{background:#dbeafe;border:1px dashed #3b82f6;border-radius:6px}.kb-folder-count{font-size:11px;color:#9ca3af;margin-left:auto;background:var(--bg);border-radius:10px;padding:0 6px;min-width:20px;text-align:center}.kb-preview{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kb-full{overflow:hidden;overflow-x:auto}.kb-full .cm-body{max-height:300px;overflow-y:auto}.srch-dd{position:absolute;z-index:9999;width:100%;max-height:180px;overflow-y:auto;background:var(--card);border:1px solid var(--bdr);border-radius:6px;box-shadow:0 4px 12px var(--shd);margin-top:2px}.srch-dd-item{display:block;padding:5px 10px;font-size:13px;color:var(--tx);text-decoration:none;border-bottom:1px solid var(--bdr2)}.srch-dd-item:hover{background:var(--hover);color:#1d4ed8}.srch-dd-item:last-child{border-bottom:none}.ticket-body{overflow-x:auto;overflow-y:hidden;max-width:100%;position:relative;isolation:isolate}.body-iframe{width:100%;border:none;overflow:hidden;min-height:40px;display:block}
.cm{padding:16px;border-radius:var(--radius);margin-bottom:10px;font-size:14px;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word;isolation:isolate;border:1px solid transparent;transition:var(--transition);position:relative}.cm:hover{box-shadow:var(--shd)}.cm-a{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-left:4px solid var(--p);border-color:#c7d2fe}.cm-c{background:var(--bg3);border-left:4px solid #cbd5e1;border-color:var(--bdr)}.cm-i{background:linear-gradient(135deg,#fefce8,#fef9c3);border-left:4px solid #eab308;border-color:#fde68a}
.tl-wrap{position:relative;padding-left:28px}.tl-wrap::before{content:'';position:absolute;left:11px;top:0;bottom:0;width:2px;background:var(--bdr)}
.tl-item{position:relative;margin-bottom:16px}.tl-item::before{content:'';position:absolute;left:-21px;top:18px;width:12px;height:12px;border-radius:50%;border:2px solid var(--p);background:var(--bg2);z-index:1}
.tl-item.tl-agent::before{border-color:var(--p);background:var(--p)}.tl-item.tl-cust::before{border-color:#94a3b8;background:#94a3b8}.tl-item.tl-int::before{border-color:#eab308;background:#eab308}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f5;position:relative;overflow:hidden}
.login-page::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(99,102,241,.05),transparent 50%)}
.login-particles{position:absolute;inset:0;overflow:hidden}
.lp-dot{position:absolute;border-radius:50%;background:rgba(99,102,241,.18);animation:lpFloat linear infinite;opacity:0}
.lp-dot:nth-child(odd){background:rgba(139,92,246,.14)}
.lp-dot:nth-child(3n){background:rgba(59,130,246,.12)}
@keyframes lpFloat{0%{transform:translateY(0) translateX(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateY(-110vh) translateX(30px);opacity:0}}
.login-card{background:#fff;border-radius:20px;padding:36px 40px 40px;width:420px;position:relative;z-index:1;border:1px solid #e2e8f0;box-shadow:0 4px 24px rgba(0,0,0,.06)}
.login-logo-area{text-align:center;margin-bottom:28px}
.login-logo-area i{font-size:56px;color:var(--p,#6366f1);display:block;margin-bottom:10px}
.login-logo-area img{height:56px;margin-bottom:10px}
.login-logo-area .login-app-name{font-size:20px;font-weight:800;color:#1e1b4b;letter-spacing:-.3px}
.login-logo-area .login-app-sub{color:#94a3b8;font-size:14px;margin-top:4px}
.login-fl{position:relative;margin-bottom:16px}
.login-fl input{width:100%;padding:18px 14px 8px;border:2px solid #e2e8f0;border-radius:12px;font-size:14px;font-family:inherit;outline:none;transition:all .2s;background:#fff;color:#0f172a}
.login-fl label{position:absolute;top:14px;left:14px;font-size:14px;color:#94a3b8;pointer-events:none;transition:all .2s}
.login-fl input:focus{border-color:var(--p,#6366f1);box-shadow:0 0 0 4px rgba(99,102,241,.08)}
.login-fl input:focus~label,.login-fl input:not(:placeholder-shown)~label{top:4px;font-size:10px;color:var(--p,#6366f1);font-weight:700}
.login-btn{width:100%;padding:14px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--p,#6366f1),var(--pd,#4f46e5));color:#fff;font-weight:700;font-size:15px;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px rgba(99,102,241,.25);font-family:inherit}
.login-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(99,102,241,.35)}
.login-check{display:flex;align-items:center;gap:6px;color:#94a3b8;font-size:13px;cursor:pointer}
.login-check input{accent-color:var(--p,#6366f1)}
.login-forgot{color:var(--p,#6366f1);font-size:13px;text-decoration:none;font-weight:600;transition:color .2s}.login-forgot:hover{color:#4f46e5}
@media(max-width:900px){.login-card{width:calc(100% - 32px);max-width:440px;padding:32px 24px}}
.fade-in{animation:fi .25s cubic-bezier(.4,0,.2,1)}@keyframes fi{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.kb-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;min-height:400px}
.kb-col{min-width:260px;max-width:300px;flex:1;background:var(--bg);border-radius:var(--radius);padding:10px;border:1px solid var(--bdr)}
.kb-col-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:6px 8px;margin-bottom:8px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:space-between}
.kb-col-count{font-size:11px;font-weight:700;background:rgba(0,0,0,.08);padding:1px 8px;border-radius:10px}
.kb-col-body{min-height:60px}
.kb-card-item{background:var(--card);border:1px solid var(--bdr);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:var(--transition);font-size:13px}
.kb-card-item:hover{box-shadow:var(--shd-md);transform:translateY(-1px)}
.kb-card-item.dragging{opacity:.5;transform:rotate(2deg)}
.kb-col.drag-over{background:color-mix(in srgb,var(--p) 6%,var(--bg));border-color:var(--p)}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.skel{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg3) 25%,var(--bdr2) 50%,var(--bg3) 75%);background-size:800px 100%;animation:shimmer 1.5s infinite linear}
.skel-line{height:14px;margin-bottom:10px;border-radius:6px}.skel-line.w60{width:60%}.skel-line.w80{width:80%}.skel-line.w40{width:40%}.skel-line.w50{width:50%}
.skel-circle{border-radius:50%}.skel-card{height:80px;border-radius:var(--radius)}
.skel-row{display:flex;gap:12px;margin-bottom:12px}.skel-row .skel{flex:1}
.dt tbody tr:nth-child(even) td{background:var(--bg)}
.dt tbody tr:hover td{background:color-mix(in srgb,var(--p) 5%,var(--bg2))!important}
.dt tbody tr:active td{background:color-mix(in srgb,var(--p) 10%,var(--bg2))!important}
.btn-loading{pointer-events:none;opacity:.85;position:relative}.btn-loading .btn-text{visibility:hidden}.btn-loading .btn-spin{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.btn-spin{display:none}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.anim-slide-up{animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.anim-scale-in{animation:scaleIn .2s cubic-bezier(.4,0,.2,1)}
.empty-state{text-align:center;padding:48px 20px}.empty-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:32px}
.welcome-card{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 8%,var(--bg2)),color-mix(in srgb,var(--pl) 6%,var(--bg2)));border:1px solid color-mix(in srgb,var(--p) 15%,var(--bdr));border-radius:var(--radius);padding:24px 28px;margin-bottom:20px;display:flex;align-items:center;gap:20px;position:relative;overflow:hidden}
.welcome-card::before{content:'';position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:color-mix(in srgb,var(--p) 8%,transparent)}
.welcome-card::after{content:'';position:absolute;right:40px;bottom:-40px;width:80px;height:80px;border-radius:50%;background:color-mix(in srgb,var(--pl) 6%,transparent)}
.pulse-dot{width:8px;height:8px;border-radius:50%;display:inline-block;animation:pulseDot 2s infinite}@keyframes pulseDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}
@keyframes ntf-pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(239,68,68,.6)}50%{transform:scale(1.15);box-shadow:0 0 0 6px rgba(239,68,68,0)}}
.breadcrumb-bar{display:flex;align-items:center;gap:6px;padding:0 0 12px;font-size:13px;color:var(--tx3)}.breadcrumb-bar a{color:var(--tx2);text-decoration:none;transition:var(--transition)}.breadcrumb-bar a:hover{color:var(--p)}.breadcrumb-bar .bc-sep{font-size:10px;opacity:.5}.breadcrumb-bar .bc-cur{color:var(--tx);font-weight:600}
.af-feed{max-height:320px;overflow-y:auto}.af-feed-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr2);font-size:13px}.af-feed-item:last-child{border-bottom:none}.af-feed-icon{width:32px;height:32px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px}
.ntf-group-title{font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px;padding:8px 12px;background:var(--bg)}
.ntf-item{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--bdr2);cursor:pointer;transition:var(--transition)}.ntf-item:hover{background:var(--hover)}.ntf-item.unread{background:color-mix(in srgb,var(--p) 4%,var(--bg2))}
.ntf-dot{width:8px;height:8px;border-radius:50%;background:var(--p);flex-shrink:0;margin-top:5px}
.ntf-icon{width:32px;height:32px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px}
.sb-profile{padding:14px;border-top:1px solid rgba(255,255,255,.08)}.sb-profile-info{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sb-profile-info .av{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}.sb-online{width:10px;height:10px;border-radius:50%;background:#22c55e;border:2px solid rgba(30,27,75,.8);position:absolute;bottom:-1px;right:-1px}.sb-role-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.7);font-weight:600;display:inline-block}
.ql-editor{min-height:140px;font-family:inherit;font-size:14px}.ql-toolbar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:4px!important}.ql-container{border-radius:0 0 var(--radius-sm) var(--radius-sm)}#kbe{display:flex;flex-direction:column}#kbe .ql-toolbar{flex-shrink:0}#kbe .ql-container{flex:1;min-height:0;overflow-y:auto}
.si{border:1px solid var(--bdr);border-radius:var(--radius);padding:8px 12px 8px 36px;font-size:13px;width:280px;background:var(--inp);color:var(--tx);transition:var(--transition)}.si:focus{outline:none;border-color:var(--p);background:var(--inpf);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.sw{position:relative}.sw>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:15px}
.btn-p{background:linear-gradient(135deg,var(--p,#6366f1),var(--pd,#4f46e5));border:none;color:#fff;font-weight:600;font-size:13px;padding:8px 16px;border-radius:var(--radius-sm);transition:var(--transition);box-shadow:0 1px 3px rgba(79,70,229,.3)}.btn-p:hover{background:linear-gradient(135deg,var(--pd,#4f46e5),var(--pd,#4338ca));color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.35)}
.eb{width:26px;height:26px;border-radius:var(--radius-xs);border:1px solid var(--bdr);display:inline-flex;align-items:center;justify-content:center;background:var(--card);cursor:pointer;color:var(--tx2);font-size:13px;transition:var(--transition)}.eb:hover{background:var(--hover);color:var(--p);border-color:var(--p)}
.prop-disabled select,.prop-disabled input{pointer-events:none;opacity:.5;background:#f3f4f6}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--bdr);border-radius:var(--radius);overflow:hidden}
.cal-hdr{background:var(--bg3);padding:6px;text-align:center;font-size:12px;font-weight:700;color:var(--tx2)}
.cal-day{background:var(--card);min-height:70px;padding:4px;font-size:12px;min-width:0;overflow:hidden}.cal-day.other{background:var(--bg);color:var(--tx3)}.cal-day.today{background:linear-gradient(135deg,#eef2ff,#e0e7ff);box-shadow:inset 0 0 0 2px var(--p);position:relative}.cal-day.today .dn{background:var(--p);color:#fff;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px}
.cal-day .dn{font-weight:700;margin-bottom:2px}.cal-ev{padding:2px 4px;border-radius:4px;margin-bottom:1px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;display:block;max-width:100%}
.cal-day.overlap{box-shadow:inset 3px 0 0 #f59e0b}.cal-day.today.overlap{box-shadow:inset 0 0 0 2px var(--p),inset 4px 0 0 #f59e0b}.cal-overlap{color:#f59e0b;font-size:10px;margin-left:4px;cursor:help}.cal-more{font-size:10px;color:var(--p);cursor:pointer;font-weight:600;padding:1px 4px;border-radius:3px}.cal-more:hover{background:#eef2ff}.cal-day.week-view{min-height:200px}.cal-day-list{background:var(--card);border:1px solid var(--bdr);border-radius:var(--radius);padding:12px;margin-bottom:6px;cursor:pointer;transition:var(--transition)}.cal-day-list:hover{box-shadow:var(--shd-md)}
.tag{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;color:var(--p);padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;margin:1px;border:1px solid #c7d2fe}
.tag .x{cursor:pointer;font-size:14px}
.ms-box{border:1px solid var(--bdr);border-radius:var(--radius-sm);background:var(--card);max-height:260px;overflow-y:auto;padding:4px}
.ms-item{padding:4px 8px;border-radius:var(--radius-xs);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:6px;color:var(--tx);transition:var(--transition)}.ms-item:hover{background:var(--hover)}.ms-item.sel{background:#eef2ff;color:var(--p);font-weight:600}
.cm-body{max-width:100%}.cm-body table{max-width:100%;border-collapse:collapse;font-size:13px;margin:4px 0}.cm-body table td,.cm-body table th{border:1px solid #d1d5db;padding:5px 8px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.cm-body img{max-width:100%;height:auto;border-radius:var(--radius-xs)}.cm-body blockquote{border-left:3px solid #d1d5db;margin:6px 0;padding:6px 12px;color:#6b7280;font-size:13px;background:var(--bg3);border-radius:0 var(--radius-xs) var(--radius-xs) 0}.cm-body pre,.cm-body code{font-size:12px;background:var(--bg3);padding:3px 6px;border-radius:var(--radius-xs);overflow-x:auto;max-width:100%;display:block}.cm-body *{max-width:100%!important}.cm-att{margin-top:10px;padding-top:8px;border-top:1px dashed var(--bdr)}.cm-att-title{font-size:11px;font-weight:700;color:var(--tx3);margin-bottom:6px}.att-link{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;color:var(--p);text-decoration:none;margin:2px;transition:var(--transition);max-width:100%;overflow:hidden}.att-link>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-link:hover{background:#eef2ff;border-color:#c7d2fe}.att-link i{font-size:16px}.att-link .att-size{color:var(--tx3);font-size:11px;margin-left:2px}.att-preview-btn{background:none;border:none;padding:0 2px;cursor:pointer;color:#6b7280;font-size:15px;line-height:1;vertical-align:middle}.att-preview-btn:hover{color:var(--p)}.att-preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column}.att-preview-overlay .att-pv-toolbar{position:absolute;top:12px;right:12px;display:flex;gap:6px;z-index:10000}.att-preview-overlay .att-pv-toolbar button{background:rgba(255,255,255,.15);border:none;color:#fff;font-size:18px;width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.att-preview-overlay .att-pv-toolbar button:hover{background:rgba(255,255,255,.3)}.att-preview-overlay .att-pv-title{position:absolute;top:14px;left:16px;color:#fff;font-size:13px;opacity:.8;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-preview-overlay img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 4px 24px rgba(0,0,0,.4)}.att-preview-overlay iframe{width:90vw;height:85vh;border:none;border-radius:var(--radius-sm);background:#fff}
.td-grid{display:grid;grid-template-columns:1fr 360px;gap:12px}
.menu-btn{display:none;background:none;border:none;font-size:25px;color:var(--tx);cursor:pointer;padding:4px 8px;border-radius:var(--radius-xs)}
.menu-btn:hover{background:var(--hover)}
#ntfPanel{box-shadow:var(--shd-md)!important;border-radius:var(--radius)!important}
#ntfPanel .bg-light{background:#eef2ff!important}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1000}
.mob-cards{display:none}.mob-table{display:block}
/* Ticket table responsive columns */
.tt-subj .text-truncate{max-width:clamp(100px,15vw,400px)}
.tt-sender .text-truncate{max-width:clamp(80px,10vw,300px)}
.tt-company .text-truncate{max-width:clamp(80px,10vw,300px)}
/* Company table responsive columns */
.co-name{max-width:clamp(160px,20vw,400px);overflow:hidden}.co-name .d-flex{min-width:0}
.co-domain{max-width:clamp(80px,10vw,250px);overflow:hidden}
.co-contacts{max-width:clamp(100px,12vw,300px);overflow:hidden}
@media(max-width:1366px){.dt td,.dt th{font-size:12px!important;padding:8px 10px!important}
.tt-subj .text-truncate{max-width:clamp(100px,12vw,180px)}
.tt-sender .text-truncate{max-width:clamp(60px,8vw,140px)}
.tt-company .text-truncate{max-width:clamp(60px,8vw,140px)}
.co-name{max-width:clamp(120px,14vw,200px)}
.co-domain{max-width:clamp(60px,8vw,140px)}
.co-contacts{max-width:clamp(80px,10vw,160px)}}
@media(max-width:768px){
.sidebar{transform:translateX(-100%)}.sidebar.show{transform:translateX(0)}
.main{margin-left:0!important}.menu-btn{display:flex;align-items:center}.si{width:100%}
.sb-mini .main{margin-left:0!important}.sb-mini .sidebar{width:260px}
.sb-toggle-btn{right:12px;top:12px}
.td-grid{grid-template-columns:1fr!important}
#ntfPanel{width:calc(100vw - 20px)!important;right:10px!important;left:10px!important}
.pg{padding:10px}.card-s{padding:12px}.dt td,.dt th{padding:8px 10px;font-size:12px}
.cal-day{min-height:45px}.cal-ev{font-size:10px}.cal-day.week-view{min-height:120px}
.top-bar{padding:0 10px}
.dt{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dt table{min-width:500px}
.modal-dialog,.modal-dialog.modal-lg,.modal-dialog.modal-xl{max-width:calc(100vw - 16px)!important;margin:8px auto}
.modal-content{max-height:95vh;overflow-y:auto;border-radius:var(--radius)!important}
.af-row{flex-wrap:wrap}.af-row .af-group{min-width:calc(50% - 6px)!important}
.af-ms-drop{min-width:calc(100vw - 40px)!important}
.col-4.col-md-2 .card-s{padding:10px!important}
.col-4.col-md-2 .card-s div[style*="font-size:24px"]{font-size:20px!important}
.ql-toolbar{flex-wrap:wrap;overflow-x:auto}
.ql-toolbar .ql-formats{margin-bottom:2px}
#cmList{max-height:350px!important}
.att-preview-overlay img{max-width:98vw;max-height:80vh}
.att-preview-overlay iframe{width:98vw;height:80vh}
.att-preview-overlay .att-pv-title{max-width:60%;font-size:11px}
.tag{font-size:10px!important;padding:2px 8px!important}
.badge{font-size:9px!important}
.login-card{width:calc(100% - 20px)!important;max-width:420px;padding:28px 20px;margin:10px}.login-logo-area i{font-size:44px!important}.login-logo-area img{height:44px!important}.login-logo-area .login-app-name{font-size:18px}.lp-dot{width:3px!important;height:3px!important}
.cal-grid{font-size:11px}
canvas{max-height:220px!important}
.stat-card{padding:12px 14px!important}.stat-icon{width:36px!important;height:36px!important;font-size:16px!important}
.welcome-card{flex-direction:column;text-align:center;gap:12px;padding:16px}
.welcome-card>div:last-child{text-align:center}
.kb-board{flex-direction:column}.kb-col{min-width:100%!important;max-width:100%!important}
.kb-layout{flex-direction:column!important}.kb-layout>.card-s{min-width:100%!important;max-width:100%!important}
.mob-cards{display:block!important}.mob-table{display:none!important}
.sw{width:100%}
.input-group[style*="max-width"]{max-width:100%!important}
select[style*="max-width"],select[style*="width:1"]{max-width:100%!important;width:100%!important}
input[style*="width:1"]{width:100%!important}
.d-flex.gap-2.flex-wrap{width:100%}
.d-flex.gap-2.flex-wrap>input,.d-flex.gap-2.flex-wrap>select{flex:1 1 calc(50% - 4px)!important;min-width:0!important;width:auto!important}
.d-flex.gap-2.flex-wrap>.input-group{flex:1 1 100%!important;max-width:100%!important}
.d-flex.gap-2.flex-wrap>.btn-group{flex:1 1 100%}
.nav-tabs{font-size:12px;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch}.nav-tabs .nav-item{flex-shrink:0}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fl-group{margin-bottom:12px}
.btn{min-height:38px}
.eb{min-width:40px;min-height:40px;font-size:16px!important}
.sd-wrap{min-width:100px}
.sd-drop{min-width:180px}
}
@media(max-width:480px){
.si{width:100%}
.top-bar .btn-p{padding:6px 10px!important;font-size:11px!important}
.modal-body .row.g-2>[class*="col-"]{width:100%!important;max-width:100%!important;flex:0 0 100%!important}
.sb-brand h5{font-size:14px}
.col-4.col-md-2{width:50%!important;flex:0 0 50%!important}
.dt td,.dt th{font-size:11px!important;padding:6px 8px!important}
.dt table{min-width:400px}
canvas{max-height:180px!important}
.welcome-card>div:first-child{display:none}
.pg{padding:8px}
.top-bar{height:48px}
.top-bar h6{font-size:13px!important}
.breadcrumb-bar{font-size:11px}
.d-flex.gap-2.flex-wrap>input,.d-flex.gap-2.flex-wrap>select{flex:1 1 100%!important}
.login-card{padding:20px 16px!important}
.cpk{grid-template-columns:repeat(7,28px);gap:2px}.cpk-c,.cpk-x{width:28px;height:28px}
.kb-card-item{padding:8px 10px}
.stat-card{gap:8px!important}
.stat-card div[style*="font-size:24px"]{font-size:18px!important}
.stat-card div[style*="width:44px"]{width:36px!important;height:36px!important}
.modal-body{padding:12px!important}
.cal-hdr{padding:4px;font-size:10px}
}
/* ===== MOBILE ENHANCEMENTS ===== */
@media(max-width:768px){
.sidebar{width:260px;z-index:1100}
.eb{min-width:40px;min-height:40px;font-size:16px!important}
.dt th.mob-hide,.dt td.mob-hide{display:none}
.modal-dialog{margin:0!important;max-width:100vw!important;min-height:100vh}.modal-content{border-radius:0!important;min-height:100vh}
}
@media(max-width:480px){
.eb{min-width:36px;min-height:36px}
.dt td,.dt th{font-size:12px!important}
}
/* Bildirim paneli — mobilde tam genişlik, sabit konum */
@media(max-width:640px){
  #ntfPanel{position:fixed!important;top:60px!important;left:10px!important;right:10px!important;width:auto!important;max-width:none!important}
}
/* Teklifler listesi — responsive */
.prp-cards{display:none}
@media(max-width:1100px){
  .prp-col-date{display:none}
}
@media(max-width:900px){
  .prp-col-title{display:none}
}
@media(max-width:640px){
  .prp-table-wrap{display:none}
  .prp-cards{display:block;padding:8px}
  .prp-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:var(--transition)}
  .prp-card:hover{border-color:var(--p);box-shadow:var(--shd-md)}
  .prp-card:last-child{margin-bottom:0}
}
.sd-wrap{position:relative;display:inline-block;min-width:130px}
.sd-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:13px;border:1px solid var(--bdr);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;white-space:nowrap;height:32px;color:var(--tx);transition:var(--transition)}
.sd-btn:hover{border-color:var(--p)}.sd-btn .sd-x{margin-left:auto;color:#9ca3af;font-size:11px;padding:2px}.sd-btn .sd-x:hover{color:#ef4444}
.sd-drop{position:absolute;top:100%;left:0;z-index:500;background:var(--card);border:1px solid var(--bdr);border-radius:var(--radius);box-shadow:var(--shd-md);min-width:220px;max-height:250px;display:none;margin-top:4px}
.sd-drop.open{display:block}
.sd-drop input{width:100%;border:none;border-bottom:1px solid var(--bdr);padding:8px 10px;font-size:13px;outline:none;border-radius:var(--radius) var(--radius) 0 0;background:var(--card);color:var(--tx)}
.sd-list{max-height:200px;overflow-y:auto}.sd-list div{padding:6px 10px;font-size:13px;cursor:pointer;color:var(--tx);transition:var(--transition)}.sd-list div:hover{background:var(--hover)}.sd-list div.sel{background:#eef2ff;color:var(--p);font-weight:600}
.sd-list .sd-empty{color:#9ca3af;text-align:center;padding:8px;cursor:default}
.af-panel{background:var(--card);border:1px solid var(--bdr);border-radius:var(--radius);padding:16px 20px;margin-bottom:10px;display:none;box-shadow:var(--shd)}
.af-panel.open{display:block}
.af-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start}
.af-group{display:flex;flex-direction:column;gap:4px;min-width:140px}
.af-group label{font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.4px}
.af-checks{display:flex;flex-wrap:wrap;gap:3px}
.af-cb{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:20px;font-size:12px;cursor:pointer;border:1px solid var(--bdr);user-select:none;transition:var(--transition);background:var(--card);color:var(--tx2);font-weight:500}
.af-cb:hover{border-color:var(--p);color:var(--p)}
.af-cb.sel{background:#eef2ff;border-color:#c7d2fe;color:#4f46e5;font-weight:600}
.af-cb input{display:none}
.af-ms{position:relative}
.af-ms-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;font-size:12px;border:1px solid var(--bdr);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;min-width:120px;height:32px;color:var(--tx);white-space:nowrap;transition:var(--transition)}
.af-ms-btn:hover{border-color:var(--p)}
.af-ms-drop{position:absolute;top:100%;left:0;z-index:500;background:var(--card);border:1px solid var(--bdr);border-radius:var(--radius);box-shadow:var(--shd-md);min-width:220px;display:none;margin-top:4px}
.af-ms-drop.open{display:block}
.af-ms-drop input[type=text]{width:100%;border:none;border-bottom:1px solid var(--bdr);padding:8px 10px;font-size:13px;outline:none;border-radius:var(--radius) var(--radius) 0 0;background:var(--card);color:var(--tx)}
.af-ms-list{max-height:180px;overflow-y:auto;padding:4px 0}
.af-ms-list label{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:13px;cursor:pointer;color:var(--tx);font-weight:400;text-transform:none;letter-spacing:0;transition:var(--transition)}
.af-ms-list label:hover{background:var(--hover)}
.af-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.af-tag{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;color:#4f46e5;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid #c7d2fe}
.af-tag .x{cursor:pointer;font-size:12px;color:#9ca3af;margin-left:1px}.af-tag .x:hover{color:#ef4444}
.fl-group{position:relative;margin-bottom:16px}.fl-group .form-control,.fl-group .form-select{height:48px;padding:20px 12px 6px;font-size:14px;border-radius:var(--radius-sm);transition:var(--transition)}.fl-group label{position:absolute;top:14px;left:12px;font-size:14px;color:var(--tx3);pointer-events:none;transition:all .2s;z-index:1}.fl-group .form-control:focus~label,.fl-group .form-control:not(:placeholder-shown)~label,.fl-group .has-val~label{top:4px;font-size:11px;color:var(--p);font-weight:600}.fl-group .form-control:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.req-star{color:#ef4444;font-weight:700}.form-control.is-invalid,.form-select.is-invalid{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.12)!important}
.val-msg{font-size:11px;color:#ef4444;margin-top:2px;display:none}.val-msg.show{display:block}
.drop-zone{border:2px dashed var(--bdr);border-radius:var(--radius);padding:16px;text-align:center;transition:var(--transition);cursor:pointer;background:var(--bg)}
.drop-zone.drag-over{border-color:var(--p);background:#eef2ff}
.drop-zone:hover{border-color:var(--p)}
.rf-item{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--bdr);font-size:12px;background:var(--inp);transition:var(--transition)}
.rf-item.over{border-color:#ef4444;background:#fef2f2}
.rf-item .rf-rm{cursor:pointer;color:#9ca3af;font-size:12px;padding:1px}.rf-item .rf-rm:hover{color:#ef4444}
.rf-img-prev{width:32px;height:32px;object-fit:cover;border-radius:4px;border:1px solid #e5e7eb}
.ql-editor img{max-width:100%;border-radius:6px;margin:4px 0;cursor:pointer}
.img-rsz{position:relative;display:inline-block;margin:4px 0}
.img-rsz img{display:block;border-radius:6px}
.img-rsz.active{outline:2px solid #4f46e5;outline-offset:2px}
.img-rsz .img-h{position:absolute;width:8px;height:8px;background:#4f46e5;border:1px solid #fff;border-radius:2px;z-index:10;display:none}
.img-rsz.active .img-h{display:block}
.img-h-se{bottom:-4px;right:-4px;cursor:se-resize}.img-h-sw{bottom:-4px;left:-4px;cursor:sw-resize}.img-h-ne{top:-4px;right:-4px;cursor:ne-resize}.img-h-e{top:50%;right:-4px;transform:translateY(-50%);cursor:e-resize}.img-h-w{top:50%;left:-4px;transform:translateY(-50%);cursor:w-resize}
.img-tb{position:absolute;top:-32px;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--bdr);border-radius:6px;box-shadow:0 2px 8px var(--shd);padding:2px 4px;display:none;gap:2px;white-space:nowrap;z-index:11}
.img-rsz.active .img-tb{display:flex}
.img-tb button{background:none;border:1px solid transparent;border-radius:4px;padding:2px 6px;font-size:12px;cursor:pointer;color:var(--tx);font-weight:600}.img-tb button:hover{background:var(--hover);border-color:var(--bdr)}.img-tb button.act{background:#eef2ff;color:#4f46e5;border-color:#c7d2fe}
.img-tb .img-sz{font-size:11px;color:#9ca3af;padding:2px 4px;display:flex;align-items:center}
.ql-editor{min-height:140px}
#nte2 .ql-container{max-height:130px!important;overflow-y:auto!important}#nte2 .ql-editor{min-height:80px!important;max-height:130px!important;overflow-y:auto!important}
.ql-editor table{border-collapse:collapse;width:100%;margin:4px 0}.ql-editor td,.ql-editor th{border:1px solid #d1d5db;padding:4px 8px;min-width:50px}
.cpk{position:fixed;background:var(--card);border:1px solid var(--bdr);border-radius:4px;box-shadow:0 3px 12px var(--shd);padding:4px;z-index:99999;display:grid;grid-template-columns:repeat(7,22px);gap:1px}
.cpk-c{width:22px;height:22px;border:1px solid rgba(0,0,0,.2);cursor:pointer;box-sizing:border-box}.cpk-c:hover{border:2px solid #000;z-index:1;position:relative}
.cpk-x{width:22px;height:22px;border:1px solid #ccc;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:#888;font-weight:700}.cpk-x:hover{border-color:#f00;color:#f00}
.tbl-del-float{position:fixed;z-index:99990;background:#fee2e2;color:#ef4444;border:1px solid #fca5a5;border-radius:4px;width:24px;height:24px;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:background .15s}.tbl-del-float:hover{background:#ef4444;color:#fff;border-color:#ef4444}
[data-theme="dark"] .modal-content{background:var(--card);color:var(--tx);border-color:var(--bdr)}
[data-theme="dark"] .modal-header{border-color:var(--bdr)}
[data-theme="dark"] .modal-footer{border-color:var(--bdr)}
[data-theme="dark"] .form-control,[data-theme="dark"] .form-select{background:var(--inp);color:var(--tx);border-color:var(--bdr)}
[data-theme="dark"] .form-control:focus,[data-theme="dark"] .form-select:focus{background:var(--inpf);color:var(--tx);border-color:var(--p);box-shadow:0 0 0 3px rgba(99,102,241,.2)}
[data-theme="dark"] .form-check-label{color:var(--tx)}
[data-theme="dark"] .table{color:var(--tx);--bs-table-bg:var(--card);--bs-table-border-color:var(--bdr);--bs-table-striped-bg:var(--bg3);--bs-table-hover-bg:var(--hover)}
[data-theme="dark"] .table thead th{background:var(--bg3);color:var(--tx2);border-color:var(--bdr)}
[data-theme="dark"] .nav-tabs{border-color:var(--bdr)}
[data-theme="dark"] .nav-tabs .nav-link{color:var(--tx2)}
[data-theme="dark"] .nav-tabs .nav-link.active{background:var(--card);color:var(--tx);border-color:var(--bdr) var(--bdr) var(--card)}
[data-theme="dark"] .btn-outline-secondary{color:var(--tx2);border-color:var(--bdr)}
[data-theme="dark"] .btn-outline-secondary:hover{background:var(--bg3);color:var(--tx)}
[data-theme="dark"] .btn-secondary{background:var(--bg3);border-color:var(--bdr);color:var(--tx)}
[data-theme="dark"] .text-muted{color:var(--tx3)!important}
[data-theme="dark"] .text-dark{color:var(--tx)!important}
[data-theme="dark"] .bg-light{background:var(--bg3)!important}
[data-theme="dark"] .border-bottom{border-color:var(--bdr)!important}
[data-theme="dark"] .alert{background:var(--bg3);color:var(--tx);border-color:var(--bdr)}
[data-theme="dark"] .ql-toolbar{background:var(--bg3);border-color:var(--bdr)!important}
[data-theme="dark"] .ql-container{border-color:var(--bdr)!important;background:var(--card)}
[data-theme="dark"] .ql-editor{color:var(--tx)}
[data-theme="dark"] .ql-snow .ql-stroke{stroke:var(--tx2)}
[data-theme="dark"] .ql-snow .ql-fill{fill:var(--tx2)}
[data-theme="dark"] .ql-snow .ql-picker{color:var(--tx2)}
[data-theme="dark"] .ql-snow .ql-picker-options{background:var(--card);border-color:var(--bdr)}
[data-theme="dark"] #ntfPanel{background:var(--card)!important;border-color:var(--bdr)!important}
[data-theme="dark"] .login-page{background:#0b0f19}
[data-theme="dark"] .login-page::before{background:radial-gradient(ellipse at 30% 20%,rgba(99,102,241,.08),transparent 50%)}
[data-theme="dark"] .lp-dot{background:rgba(99,102,241,.25)}
[data-theme="dark"] .lp-dot:nth-child(odd){background:rgba(139,92,246,.2)}
[data-theme="dark"] .lp-dot:nth-child(3n){background:rgba(56,189,248,.15)}
[data-theme="dark"] .login-card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);box-shadow:0 8px 32px rgba(0,0,0,.4);backdrop-filter:blur(12px)}
[data-theme="dark"] .login-logo-area .login-app-name{color:#e2e8f0}
[data-theme="dark"] .login-logo-area .login-app-sub{color:rgba(255,255,255,.4)}
[data-theme="dark"] .login-fl input{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#e2e8f0}
[data-theme="dark"] .login-fl input:focus{border-color:var(--p,#6366f1);box-shadow:0 0 0 4px rgba(99,102,241,.12)}
[data-theme="dark"] .login-fl label{color:rgba(255,255,255,.35)}
[data-theme="dark"] .login-fl input:focus~label,[data-theme="dark"] .login-fl input:not(:placeholder-shown)~label{color:var(--pl,#818cf8)}
[data-theme="dark"] .login-check{color:rgba(255,255,255,.35)}
[data-theme="dark"] .login-forgot{color:var(--pl,#818cf8)}
[data-theme="dark"] .cm-body blockquote{background:var(--bg3);color:var(--tx2);border-color:var(--bdr)}
[data-theme="dark"] .cm-body pre,[data-theme="dark"] .cm-body code{background:var(--bg3);color:var(--tx)}
[data-theme="dark"] .prop-disabled select,[data-theme="dark"] .prop-disabled input{background:var(--bg3)}
[data-theme="dark"] .badge.bg-light{background:var(--bg3)!important;color:var(--tx)!important}
[data-theme="dark"] .card{background:var(--card);border-color:var(--bdr);color:var(--tx)}
[data-theme="dark"] .list-group-item{background:var(--card);border-color:var(--bdr);color:var(--tx)}
[data-theme="dark"] hr{border-color:var(--bdr)}
[data-theme="dark"] .form-label{color:var(--tx)}
[data-theme="dark"] .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
[data-theme="dark"] .accordion-item{background:var(--card);border-color:var(--bdr)}
[data-theme="dark"] .accordion-button{background:var(--bg3);color:var(--tx)}
[data-theme="dark"] .pagination .page-link{background:var(--card);border-color:var(--bdr);color:var(--tx)}
[data-theme="dark"] .pagination .page-item.active .page-link{background:var(--p);border-color:var(--p)}
[data-theme="dark"] .tab-content{color:var(--tx)}
[data-theme="dark"] .toast{background:var(--card);color:var(--tx)}
/* ===== Project Flow Schema ===== */
.prj-schema-toolbar{display:flex;align-items:center;padding:8px 12px;background:var(--bg2);border:1px solid var(--bdr);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0}
.prj-schema-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:var(--bg);border:2px dashed var(--bdr);border-radius:var(--radius-sm)}
.prj-schema{position:relative;min-height:500px;overflow:auto;background:var(--bg);border:1px solid var(--bdr);border-radius:0 0 var(--radius-sm) var(--radius-sm)}
.prj-schema svg{position:absolute;top:0;left:0;pointer-events:none;z-index:1}
.prj-schema svg path.dep-arrow{stroke:var(--p);stroke-width:2;fill:none;pointer-events:stroke;cursor:pointer;opacity:.6;transition:all .2s;stroke-linejoin:round;stroke-linecap:round}
.prj-schema svg path.dep-arrow:hover{stroke:var(--p);stroke-width:3;opacity:1}
.prj-schema svg path.dep-arrow.dep-done{stroke:#22c55e;opacity:.4}
.prj-schema svg path.dep-arrow.selected{stroke:#ef4444;stroke-width:3;opacity:1}
.prj-schema svg line.rubber-band{stroke:var(--p);stroke-width:2;stroke-dasharray:6,4}
.prj-card{position:absolute;width:190px;border-radius:var(--radius-xs);background:var(--card);border:1px solid var(--bdr);box-shadow:var(--shd);z-index:2;transition:box-shadow .15s,transform .1s}
.prj-card:hover{box-shadow:var(--shd-md);transform:translateY(-1px)}
.prj-card.selected{outline:2px solid var(--p);outline-offset:1px}
.prj-card.prj-card-done{opacity:.7}
.prj-card-hdr{padding:6px 10px;font-size:11px;font-weight:600;color:#fff;border-radius:5px 5px 0 0;cursor:grab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}
.prj-card-hdr:active{cursor:grabbing}
.prj-card-body{padding:8px 10px;font-size:10px;color:var(--tx2)}
.prj-card-body .progress{height:4px;margin-bottom:3px;border-radius:2px}
.prj-card-status{font-size:9px;padding:1px 5px;border-radius:3px;background:var(--bg);font-weight:600}
.prj-card-actions{position:absolute;top:4px;right:4px;display:none;gap:4px;z-index:4}
.prj-card:hover .prj-card-actions{display:flex}
.prj-card-actions i{font-size:13px;cursor:pointer;background:rgba(255,255,255,.9);border-radius:50%;padding:2px;transition:transform .15s}
.prj-card-actions i:hover{transform:scale(1.2)}
.prj-port{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--p);border:2px solid var(--card);cursor:crosshair;z-index:3;opacity:0;transition:all .15s}
.prj-card:hover .prj-port{opacity:.7}
.prj-port-out{right:-7px;top:50%;transform:translateY(-50%)}
.prj-port-in{left:-7px;top:50%;transform:translateY(-50%)}
.prj-port:hover{transform:translateY(-50%) scale(1.3);opacity:1;box-shadow:0 0 6px var(--p)}
/* Gantt status colors */
.gantt-Beklemede .bar{fill:#9ca3af !important}
.gantt-DevamEdiyor .bar{fill:#3b82f6 !important}
.gantt-Tamamlandi .bar{fill:#22c55e !important}
.gantt-IptalEdildi .bar{fill:#ef4444 !important}
.gantt .bar-label{fill:#1e293b !important;font-size:12px;font-weight:600}
.gantt .lower-text,.gantt .upper-text{fill:#475569 !important;font-size:12px}
.gantt .grid-header{fill:var(--bg2);stroke:var(--bdr)}
.gantt .grid-row{fill:var(--bg2)}
.gantt .row-line{stroke:var(--bdr)}
.gantt .tick{stroke:var(--bdr)}
.gantt .today-highlight{fill:rgba(99,102,241,.08) !important}
[data-theme="dark"] .gantt .bar-label{fill:#e2e8f0 !important}
[data-theme="dark"] .gantt .lower-text,[data-theme="dark"] .gantt .upper-text{fill:var(--tx2) !important}
[data-theme="dark"] .gantt .grid-row{fill:var(--bg)}
[data-theme="dark"] .gantt .row-line{stroke:var(--bdr)}
[data-theme="dark"] .gantt .grid-header{fill:var(--bg2);stroke:var(--bdr)}
/* Project Dashboard */
.prj-stat-card{background:var(--card);border-radius:var(--radius-sm);padding:16px;text-align:center;border:1px solid var(--bdr);border-left:3px solid var(--p)}
.prj-stat-val{font-size:28px;font-weight:800;color:var(--p);line-height:1}
.prj-stat-lbl{font-size:11px;color:var(--tx3);text-transform:uppercase;margin-top:4px}
/* Project Labels */
.prj-label{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap}
.prj-label-pick{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:11px;border:1px solid var(--bdr);cursor:pointer;transition:all .15s}
.prj-label-pick.active{font-weight:600}
.prj-label-pick:hover{opacity:.8}
/* Project Overdue */
.prj-overdue{animation:prjPulse 2s infinite}
@keyframes prjPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 2px rgba(239,68,68,.2)}}
@keyframes grWave{0%,100%{transform:rotate(0deg)}15%{transform:rotate(14deg)}30%{transform:rotate(-8deg)}45%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(10deg)}90%{transform:rotate(0deg)}}
@keyframes grPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.15);filter:brightness(1.2)}}
@keyframes grBounce{0%,100%{transform:translateY(0)}25%{transform:translateY(-6px)}50%{transform:translateY(0)}75%{transform:translateY(-3px)}}
@keyframes grFloat{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-4px) rotate(5deg)}50%{transform:translateY(0) rotate(0deg)}75%{transform:translateY(-2px) rotate(-3deg)}}
@keyframes grSpin{0%{transform:rotate(0deg) scale(1)}25%{transform:rotate(15deg) scale(1.1)}50%{transform:rotate(0deg) scale(1)}75%{transform:rotate(-10deg) scale(1.05)}100%{transform:rotate(0deg) scale(1)}}
@keyframes grSteam{0%,100%{opacity:.6;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-3px) scale(1.08)}}
@keyframes grFlash{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}
.gr-wave{display:inline-block;animation:grWave 2s ease-in-out infinite;transform-origin:70% 70%}
.gr-pulse{display:inline-block;animation:grPulse 2.5s ease-in-out infinite}
.gr-bounce{display:inline-block;animation:grBounce 1.5s ease-in-out infinite}
.gr-float{display:inline-block;animation:grFloat 3s ease-in-out infinite}
.gr-spin{display:inline-block;animation:grSpin 2s ease-in-out infinite}
.gr-steam{display:inline-block;animation:grSteam 2s ease-in-out infinite}
.gr-flash{display:inline-block;animation:grFlash 1s ease-in-out infinite}
