/* ===== base ===== */
:root{--b:#315be8;--bb:#eaf0ff;--t:#1b2740;--m:#78849a;--bg:#f5f7fb;--l:#e5eaf2;--gr:#13a87e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--t);font:14px 'Open Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5}.app{display:flex;min-height:100vh}.side{background:white;width:228px;flex-shrink:0;border-right:1px solid var(--l);padding:22px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 9px 22px;font-size:18px;font-weight:800}.logo{width:39px;height:39px;border-radius:12px;background:linear-gradient(135deg,#2547bc,#5775f4);color:white;display:grid;place-items:center;font-size:19px}.side small{display:block;color:var(--m);font-weight:700;padding:15px 15px 7px}.nav{display:block;width:100%;border:0;background:transparent;text-align:left;padding:12px 14px;border-radius:9px;color:#55627a;font-weight:600;margin:3px 0}.nav.active{background:var(--bb);color:var(--b)}.nav:hover{background:#f2f5fa}.main{flex:1;min-width:0}.top{height:70px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--l);padding:0 26px;gap:15px}.top .right{display:flex;align-items:center;gap:12px}.avatar{width:33px;height:33px;background:#dce6ff;border-radius:50%;color:#2752c4;display:inline-grid;place-items:center;font-weight:800;flex-shrink:0}.content{padding:25px 27px 40px;max-width:1660px;margin:auto}.hrow,.tools,.between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.title{font-size:24px;font-weight:800;margin:0}.sub{color:var(--m);margin:5px 0 0}.card{background:#fff;border:1px solid var(--l);border-radius:14px;padding:19px;box-shadow:0 2px 12px rgba(26,46,86,.025)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}.metric{font-size:27px;font-weight:800;letter-spacing:-.8px;margin:8px 0}.label{color:var(--m);font-size:13px;font-weight:600}.up{color:#089d78;font-size:12px}.down{color:#d18508;font-size:12px}.g2{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin:16px 0}.g3{display:grid;grid-template-columns:1.05fr .95fr 1fr;gap:16px;margin:16px 0}.card h3{margin:0 0 15px;font-size:16px}.btn{background:var(--b);color:white;border:1px solid var(--b);padding:10px 14px;border-radius:9px;font-weight:700}.ghost{color:#4a5a73;background:#fff;border:1px solid var(--l);padding:9px 13px;border-radius:9px;font-weight:600}.ghost.on{background:var(--bb);border-color:#b7c9fc;color:var(--b)}.field{border:1px solid var(--l);padding:10px 12px;border-radius:8px;background:#fff;min-width:0;color:var(--t)}.progress{height:10px;border-radius:20px;background:#eaf0f8;overflow:hidden}.progress>span{display:block;background:linear-gradient(90deg,#315be8,#56a4ef);height:100%}.progress.gr>span{background:linear-gradient(90deg,#19ad83,#5bd9c2)}.rowline{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #eff2f7;align-items:center}.rowline:last-child{border:0}.muted{color:var(--m)}.tag{display:inline-flex;align-items:center;border-radius:20px;padding:4px 9px;background:#e9f0ff;color:#3157be;font-size:12px;font-weight:700}.tag.gold{background:#fff1c6;color:#96620d}.tag.green{background:#daf8ec;color:#007f5f}.tag.gray{background:#f0f2f6;color:#647085}.tag.red{background:#ffe7e8;color:#b63c44}.note{background:#ffc839;color:#362800;border-radius:5px;padding:2px 7px;font-size:12px;font-weight:800}.tblwrap{overflow:auto;margin-top:15px}.tbl{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}.tbl th{font-size:12px;color:var(--m);background:#f7f9fc;padding:13px 12px;font-weight:700}.tbl td{border-bottom:1px solid #edf0f5;padding:13px 12px}.tbl tr:hover td{background:#fbfcff}.click{cursor:pointer}.kan{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:12px;overflow:auto;margin-top:15px}.kan_col{background:#f0f3f9;border-radius:12px;padding:12px}.mini{background:white;border:1px solid var(--l);border-radius:10px;padding:12px;margin-top:10px;cursor:pointer}.mini strong{display:block;margin-bottom:7px}.bar{height:8px;border-radius:8px;background:#e9eff9;flex:1;overflow:hidden}.bar span{height:100%;display:block;background:var(--b)}.barrow{display:flex;align-items:center;gap:11px;margin:15px 0}.barrow label{width:110px;font-size:12px;flex-shrink:0}.number{font-size:12px;font-weight:700;width:38px;text-align:right}.check{accent-color:var(--b);width:17px;height:17px}.taskdone{text-decoration:line-through;opacity:.55}.drawerbg{position:fixed;inset:0;background:#121c34a3;z-index:10;display:flex;justify-content:flex-end}.drawer{width:min(600px,100%);height:100%;background:white;overflow:auto;padding:25px;box-shadow:-12px 0 40px #1112}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:20px 0}.formgrid>div{display:flex;flex-direction:column;gap:6px}.formgrid label{font-size:12px;font-weight:700;color:#66738a}.formgrid .full{grid-column:1/-1}.history{border-left:2px solid #d8e2ff;padding-left:15px;margin:14px 0}.entry{border-bottom:1px solid #edf0f5;padding:11px 0}.notice{position:fixed;bottom:22px;right:24px;z-index:20;background:#223861;color:#fff;border-radius:10px;padding:14px 18px;box-shadow:0 15px 30px #0002}.pill{display:inline-flex;align-items:center;gap:5px}.legend{font-size:12px;color:var(--m)}.tabbar{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.bullet{width:9px;height:9px;border-radius:3px;background:var(--b);display:inline-block}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.empty{padding:30px;text-align:center;color:var(--m)}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.g2,.g3{grid-template-columns:1fr}.kan{grid-template-columns:repeat(4,230px)}}@media(max-width:730px){.side{width:62px;padding:10px 4px}.brand{font-size:0;padding:8px 6px 20px}.logo{width:40px;height:40px}.side small{display:none}.nav{font-size:0;padding:13px 9px}.nav:before{content:'▦';font-size:20px}.content{padding:15px}.top{padding:0 12px}.top .right{gap:5px}.cards{gap:9px}.card{padding:14px}.metric{font-size:22px}.title{font-size:21px}.formgrid{grid-template-columns:1fr}}

/* V1 visual shell */
:root{--b:#2269d9;--bb:#eaf2ff;--t:#17263b;--m:#758398;--bg:#f4f7fb;--l:#e1e8f1}
body{font-size:14px;background:#f3f6fa}.side{width:272px;background:linear-gradient(160deg,#142f50 0%,#0a1d34 70%,#09182b 100%);color:#e9f2ff;border:0;padding:0 11px;box-shadow:inset -1px 0 0 #ffffff18}.brand{height:72px;border-bottom:1px solid #ffffff1a;margin:0 -11px;padding:13px 20px;font-size:15px;letter-spacing:.7px}.brand .logo{background:linear-gradient(135deg,#3d97fa,#1354c7);width:36px;height:36px;font-style:italic}.brandtext small{display:block;padding:3px 0 0!important;text-transform:none!important;letter-spacing:0;font-size:10px;color:#9caec5!important;font-weight:400}.side small{color:#869bb4;text-transform:uppercase;letter-spacing:1.2px;font-size:10px;padding:18px 12px 8px}.nav{color:#aabbd0;font-weight:500;font-size:14px;padding:12px 12px;margin:2px 0;display:flex;gap:12px;align-items:center}.nav.active{background:linear-gradient(100deg,#2d7ee9,#1556ad);color:white}.nav:hover{background:#ffffff16;color:white}.navicon{font-size:18px;display:inline-flex;width:21px;justify-content:center;opacity:.9}.sidefoot{position:absolute;bottom:0;left:0;right:0;padding:15px;border-top:1px solid #ffffff25;background:#0a1b2f}.org{background:#ffffff12;border:1px solid #ffffff23;color:white;padding:13px 10px;border-radius:11px;margin-top:18px;margin-bottom:9px;display:flex;align-items:center;gap:9px;font-weight:700}.orglogo{background:#226edd;border-radius:9px;padding:9px 12px}.sidefoot .legend{color:#90a7c4}.top{height:72px;padding:0 31px}.searchWrap{position:relative;max-width:550px;width:100%}.searchTop{width:100%;background:#f9fbfe;border:1px solid #dce5f0;border-radius:9px;padding:12px 42px;color:#193354;font-size:13px;outline:none}.searchTop:focus{border-color:#6da1e6;box-shadow:0 0 0 3px #cce0ff66}.searchIcon{position:absolute;top:11px;left:14px;color:#8da3bc;font-size:19px;pointer-events:none}.searchTop{padding-left:43px}.searchResults{position:absolute;top:50px;left:0;width:100%;z-index:30;background:#fff;border:1px solid #dee6ef;border-radius:12px;box-shadow:0 15px 42px #14294328;overflow:hidden}.searchHit{display:block;width:100%;border:0;background:#fff;padding:11px 14px;text-align:left;font-size:13px;color:var(--t);border-bottom:1px solid #edf1f5}.searchHit:hover{background:#f1f6ff}.searchHit small{display:block;color:#8191a6;margin-top:4px}.content{padding:30px 32px 50px}.title{font-size:28px;font-weight:700;letter-spacing:-.7px}.card{border-radius:12px}.cards{gap:16px;margin:19px 0}.metric{font-size:26px}.topRight{display:flex;align-items:center;gap:12px}.squareicon{width:36px;height:36px;border-radius:9px;border:1px solid #dfe6f0;background:white;display:grid;place-items:center;color:#657994}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.1px;color:#2673e8;text-transform:uppercase;margin-bottom:7px}.noticebar{border:1px solid #d6e6ff;background:#f0f6ff;color:#547096;padding:13px;border-radius:9px;margin:18px 0}.metricIcon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e7f0ff;color:#2f7bec;font-size:22px}.navBadge{margin-left:auto;background:#ffffff26;border-radius:12px;padding:2px 7px;font-size:11px}.dashCharts{display:grid;grid-template-columns:1.65fr 1fr;gap:16px;margin:16px 0}.monthbars{height:195px;display:flex;align-items:end;gap:8px;padding-top:20px;border-bottom:1px solid #e2eaf2;background:repeating-linear-gradient(to top,transparent 0px,transparent 47px,#edf2f7 48px)}.monthCol{flex:1;min-width:0;display:flex;align-items:center;flex-direction:column;justify-content:end;height:100%;gap:0}.monthFill{width:100%;background:linear-gradient(180deg,#4597fa,#1864d5);border-radius:5px 5px 0 0;min-height:5px}.monthLabel{font-size:10px;color:#8a98ab;margin-top:7px}.monthWrap{padding-bottom:24px}.statsSmall{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.statsSmall .card{padding:14px 16px}.statsSmall .metric{font-size:22px}.card h3{font-weight:700}.tasklist .rowline{min-height:58px}.role{border:1px solid #e0e7f0;padding:9px 12px;border-radius:9px;background:white;color:#334b6a}.pillnav{display:flex;align-items:center;gap:6px}@media(max-width:1200px){.dashCharts{grid-template-columns:1fr}.side{width:240px}}@media(max-width:730px){.side{width:64px;padding:0 5px}.brand{margin:0 -5px;padding:13px 12px}.brandtext,.org,.sidefoot,.side small{display:none!important}.nav{justify-content:center;padding:13px 3px;font-size:0}.navicon{font-size:21px}.navBadge{display:none}.top{padding:0 12px}.topRight .role{display:none}.content{padding:18px 12px}.statsSmall{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.searchTop{font-size:12px}}

.quickfilters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 14px}
.qchip{border:1px solid #d7dfed;background:#eef3ff;color:#2346b5;border-radius:999px;padding:9px 12px;font-weight:700;display:flex;align-items:center;gap:8px}
.qchip small{background:#315be8;color:#fff;min-width:22px;height:22px;display:grid;place-items:center;border-radius:999px;font-size:11px;padding:0 6px}
.qchip.on{background:#16387f;color:#fff;border-color:#16387f}
.qchip.on small{background:#fff;color:#16387f}
.tbl td .subrow,.tbl th .subrow{display:block;color:#7f8ba0;font-size:12px;margin-top:4px}
.tbl td strong{font-size:15px}
.statuspill{display:inline-block;padding:5px 10px;border-radius:999px;font-weight:700;font-size:12px}
.status-blue{background:#e7efff;color:#315be8}.status-orange{background:#fff0e3;color:#d37306}.status-red{background:#ffe9e5;color:#d6523f}.status-gray{background:#eff2f7;color:#6f7e95}.status-green{background:#e6f7f0;color:#108a67}.status-purple{background:#efe8ff;color:#6d44cc}
.assistantDock{position:fixed;right:22px;bottom:20px;display:flex;align-items:flex-end;gap:12px;z-index:9999;max-width:min(560px,calc(100vw - 280px));pointer-events:none}
.assistantDock *{pointer-events:auto}
.assistantDock.moving{animation:assistantRoam 17s linear infinite alternate}
@keyframes assistantRoam{0%{transform:translateX(0)}25%{transform:translateX(-60px)}50%{transform:translateX(-180px)}75%{transform:translateX(-90px)}100%{transform:translateX(-230px)}}
.assistantRobot{width:110px;height:auto;filter:drop-shadow(0 10px 18px rgba(26,46,86,.18))}
.assistantBubble{background:#fff;border:1px solid #d9e3f4;border-radius:18px;padding:14px 14px 12px;box-shadow:0 14px 30px rgba(31,55,95,.12);min-width:270px;max-width:390px;position:relative}
.assistantBubble:after{content:'';position:absolute;right:-10px;bottom:20px;border-width:10px 0 10px 12px;border-style:solid;border-color:transparent transparent transparent #fff;filter:drop-shadow(1px 0 0 #d9e3f4)}
.assistantHead{display:flex;align-items:center;gap:8px;margin-bottom:8px}.assistantBell{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef3ff;color:#315be8;font-size:15px}.assistantName{font-weight:800}.assistantTools{margin-left:auto;display:flex;gap:6px}.tooltiny{border:1px solid #d6dfed;background:#fff;border-radius:8px;padding:4px 7px;font-size:12px;color:#52627b}
.assistantText{color:#23324b;line-height:1.5}.assistantMeta{margin-top:8px;color:#7b879b;font-size:12px}.assistantEmpty .assistantBell{background:#e7f7ef;color:#1f9a72}
.lockbadge{display:inline-flex;align-items:center;gap:8px;border:1px solid #d8e1f0;background:#fff;border-radius:10px;padding:9px 12px;color:#516179;font-weight:700}
.drawnote{display:inline-flex;min-width:24px;height:24px;border-radius:8px;align-items:center;justify-content:center;background:#f6c945;color:#533b00;font-weight:800}
@media (max-width: 980px){.assistantDock{max-width:calc(100vw - 20px);right:10px;left:10px;bottom:10px}.assistantDock.moving{animation:none}.assistantRobot{width:82px}.assistantBubble{min-width:0;max-width:none}.quickfilters{overflow:auto;flex-wrap:nowrap;padding-bottom:6px}}


/* V1.6 enhancements; V1 shell stays frozen */
.qchip[data-filter="Lead nóng"]{background:#ffe1df;color:#bd3030;border-color:#ffc8c5}.qchip[data-filter="Lead nóng"] small{background:#d43f39}
.qchip[data-filter="Mới"]{background:#dff5ff;color:#067ba7;border-color:#bceaff}.qchip[data-filter="Mới"] small{background:#12a6d5}
.qchip[data-filter="Chưa tiếp cận"]{background:#fff7cf;color:#8c6a00;border-color:#f6eaa1}.qchip[data-filter="Chưa tiếp cận"] small{background:#d2a400}
.qchip[data-filter="Chưa đáp ứng"]{background:#ffead7;color:#aa570c;border-color:#ffcf9c}.qchip[data-filter="Chưa đáp ứng"] small{background:#e87518}
.qchip[data-filter="Sai đối tượng"]{background:#edf0f3;color:#667180;border-color:#d5d9df}.qchip[data-filter="Sai đối tượng"] small{background:#7c8592}
.qchip[data-filter="Sai ĐT ko nghe máy"]{background:#dee2e8;color:#303a48;border-color:#bcc3cf}.qchip[data-filter="Sai ĐT ko nghe máy"] small{background:#333d4b}
.qchip[data-filter="Tiếp cận"]{background:#e0efff;color:#2462a8;border-color:#b6d8ff}.qchip[data-filter="Tiếp cận"] small{background:#4a94ea}
.qchip[data-filter="Tiềm năng"]{background:#dff7e8;color:#137b45;border-color:#b0eccb}.qchip[data-filter="Tiềm năng"] small{background:#18a665}
.qchip[data-filter="Hẹn lại sau"]{background:#efe5ff;color:#6843aa;border-color:#d9c8f6}.qchip[data-filter="Hẹn lại sau"] small{background:#8b66cc}
.qchip.on{outline:3px solid #234eaa;outline-offset:1px;font-weight:800}
.assistantDock{transition:opacity .22s ease}.assistantDock.moving{animation:roamV16 23s ease-in-out infinite alternate}
.assistantRobot{transform-origin:50% 75%;animation:botBreathe 2.6s ease-in-out infinite;cursor:pointer}
.assistantRobot:hover{animation:botBreathe 1.3s ease-in-out infinite}
.botEyes{position:absolute;right:38px;bottom:84px;width:43px;height:17px;pointer-events:none;animation:botTurn 7s ease-in-out infinite}
.botEyes::before,.botEyes::after{content:'';position:absolute;top:0;width:8px;height:10px;background:#50d5fd;border-radius:50%;box-shadow:0 0 9px #79e6ff;animation:botBlink 5.5s infinite}
.botEyes::before{left:6px}.botEyes::after{right:6px}
@keyframes botBlink{0%,43%,47%,95%,100%{transform:scaleY(1)}45%,97%{transform:scaleY(.09)}}
@keyframes botTurn{0%,35%,100%{transform:translateX(0)}45%,55%{transform:translateX(-5px)}65%,75%{transform:translateX(5px)}}
@keyframes botBreathe{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}
@keyframes roamV16{0%{transform:translate(0,0)}20%{transform:translate(-90px,-50px)}40%{transform:translate(-170px,-8px)}65%{transform:translate(-110px,-110px)}85%{transform:translate(-220px,-45px)}100%{transform:translate(-100px,-15px)}}
.botClose{font-size:15px!important;color:#8a3f48!important}.botLauncher{position:fixed;right:20px;bottom:17px;z-index:9998;border:none;background:#2d63df;color:white;border-radius:50%;height:54px;width:54px;font-size:24px;box-shadow:0 8px 24px #243d7566;cursor:pointer}
.botConfig{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.botConfig label{display:block;color:#68778f;font-weight:700;font-size:12px;margin-bottom:6px}.botConfig input,.botConfig select{width:100%}
.workflowSteps{display:flex;overflow-x:auto;gap:8px;padding:12px 1px}.wfStep{border:1px solid #d7e0ef;background:#f6f8fc;border-radius:10px;padding:12px;min-width:114px;font-size:12px;text-align:center;white-space:nowrap}.wfStep.current{background:#e4edff;border:2px solid #315be8;font-weight:800;color:#1846b9}.wfStep.done{background:#e0f6ed;color:#097b51}.requirements{display:grid;gap:8px;margin-top:12px}.requirement{padding:12px;border-radius:11px;background:#fff1ed;color:#b44a34;border:1px solid #ffdbd3}.requirement.ok{background:#e9f8ef;color:#178451;border-color:#ccebd9}.docrow{padding:14px 16px;border:1px solid #dce3ef;border-radius:12px;margin:10px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.docrow strong{display:block}.detailTitle{font-size:22px;margin:24px 0 12px}.profileGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profileCell{background:#f6f8fb;padding:14px;border-radius:12px}.profileCell span{display:block;font-size:12px;color:#8290a7;margin-bottom:5px}.profileCell strong{font-size:14px}.inlineForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.inlineForm label{font-size:12px;color:#6d7b92;display:block;margin-bottom:6px}.inlineForm .field{width:100%}
@media(max-width:980px){.assistantDock.moving{animation:none}.botEyes{right:27px;bottom:67px;transform:scale(.75)}.profileGrid,.inlineForm,.botConfig{grid-template-columns:1fr}}

/* V1.7 overlay: retain original V1 shell */
.qchip[data-filter="Lead nóng"],.statuspill.status-hot{background:#ffe4e0!important;color:#c52b22!important;border-color:#f8b7ae!important}
.qchip[data-filter="Mới"],.statuspill.status-new{background:#daf5ff!important;color:#0874a8!important;border-color:#a5e4ff!important}
.qchip[data-filter="Chưa tiếp cận"],.statuspill.status-unreached{background:#fff4cb!important;color:#916c00!important;border-color:#f9db7f!important}
.qchip[data-filter="Chưa đáp ứng"],.statuspill.status-noresponse{background:#ffebd5!important;color:#b85410!important;border-color:#f9cc93!important}
.qchip[data-filter="Sai đối tượng"],.statuspill.status-mismatch{background:#e9ecef!important;color:#647184!important;border-color:#cdd4dc!important}
.qchip[data-filter="Sai ĐT ko nghe máy"],.statuspill.status-badphone{background:#dde1e7!important;color:#293344!important;border-color:#bdc4d0!important}
.qchip[data-filter="Tiếp cận"],.statuspill.status-contacted{background:#ddf0ff!important;color:#1867ae!important;border-color:#aedbff!important}
.qchip[data-filter="Tiềm năng"],.statuspill.status-potential{background:#dbf6e6!important;color:#0c8046!important;border-color:#9ce7bd!important}
.qchip[data-filter="Hẹn lại sau"],.statuspill.status-later{background:#ede5ff!important;color:#7047bd!important;border-color:#d1bdf7!important}
.qchip.on{box-shadow:inset 0 0 0 2px currentColor!important}
.qchip small{background:currentColor!important;color:#fff!important}
.stagepill{font-weight:800;padding:6px 11px;border-radius:8px;display:inline-block;font-size:12px}
.st-brief{background:#fee2e2;color:#b91c1c}.st-quote{background:#fff1bb;color:#936600}.st-pending{background:#d9ebff;color:#1261d5}.st-closed{background:#d9f7e5;color:#0c8744}.st-complete{background:#eee2ff;color:#7942b6}
.status-select{border:2px solid #d7dfec;border-radius:9px;padding:11px;background:white;width:100%}
.importPreview{max-height:270px;overflow:auto;border:1px solid #dbe3f0;border-radius:10px;margin:12px 0}.importPreview table{width:100%;border-collapse:collapse}.importPreview td,.importPreview th{border-bottom:1px solid #e7edf5;padding:8px;text-align:left;white-space:nowrap}
.reportTabs{display:flex;gap:8px;margin:18px 0}.reportTabs button.active{background:#1c56c6;color:white}
.projectSlot{margin-top:14px;padding:13px;border:1px dashed #8facdd;border-radius:10px;background:#f1f6ff}
.reportChartBar{height:16px;background:#e8eef8;border-radius:999px;overflow:hidden}.reportChartBar>i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#22a1ed);border-radius:999px}
@media(max-width:900px){.quickfilters{overflow-x:auto;flex-wrap:nowrap}.tblwrap{overflow-x:auto}}

/* V1.8 common semantic colours; V1 shell remains unchanged */
.quickfilters{gap:7px!important;align-items:center}.qchip{display:inline-flex!important;gap:7px!important;overflow:visible!important;white-space:nowrap!important;padding:7px 10px!important}.qchip small{position:static!important;display:inline-grid!important;visibility:visible!important;opacity:1!important;min-width:23px!important;line-height:21px!important;font-size:11px!important;border-radius:999px!important;padding:0 5px!important}
.qchip.on{box-shadow:0 0 0 2px #305bd9!important}.field,.inlineForm input,.inlineForm select{padding-right:28px!important}.inlineForm select{appearance:auto!important}
.st-brief{background:#fde8e7!important;color:#ba3030!important;border-color:#f5b3b0!important}.st-quote{background:#fff3ca!important;color:#946600!important;border-color:#f3df91!important}.st-pending{background:#e0ecff!important;color:#1353bc!important;border-color:#bdd4ff!important}.st-closed{background:#dff5e9!important;color:#137849!important;border-color:#b6e8cc!important}.st-complete{background:#eee6fb!important;color:#6a40a7!important;border-color:#dac7f3!important}
.wfStep.st-brief,.wfStep.st-quote,.wfStep.st-pending,.wfStep.st-closed,.wfStep.st-complete{border:1px solid!important}.wfStep.current{outline:2px solid currentColor!important;outline-offset:1px}
.v18money{font-weight:800;color:#19335d}.inlineForm .v18field{width:100%;min-width:0}.leadstatusselect{font-weight:700}.v18pricebox{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.v18pricebox>div{background:#f4f7fc;padding:13px;border-radius:10px}.v18pricebox strong{display:block;font-size:17px;margin-top:7px}.v18info{color:#70809b;font-size:12px}

/* V1.9: semantic status colours and dropdown padding */
.qchip small{font-variant-numeric:tabular-nums;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:23px!important;height:23px!important;padding:0 6px!important;line-height:1!important;font-size:12px!important;color:#fff!important;background:rgba(24,38,58,.45)!important;border-radius:99px!important;opacity:1!important;visibility:visible!important}
.qchip.on small{background:#fff!important;color:#173869!important}
.v19-pill{border-radius:999px;padding:6px 11px;font-weight:750;font-size:12px;display:inline-block;white-space:nowrap}
.v19-Brief{background:#ffe6e4;color:#b42421}.v19-Báogiá{background:#fff0c5;color:#956002}.v19-Chờchốt{background:#dfeeff;color:#1752bf}.v19-Chốt{background:#dbf5e6;color:#0b8542}.v19-Hoànthành{background:#eee4ff;color:#7247ba}.v19-Pending{background:#e5edf3;color:#48667b}.v19-Thấtbại{background:#fae1e9;color:#a32b60}
.v19-stage{border:2px solid transparent;cursor:pointer;border-radius:9px;padding:12px 9px;font-weight:700;flex:1;min-width:96px}.v19-stage.active{border-color:#245cf6;box-shadow:0 0 0 2px rgba(44,96,240,.12)}
.v19filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:12px 0}.v19filterbar select,.v19filterbar input,.v19select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23526785' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:40px!important;min-width:170px}
.v19filterbar select{border:1px solid #d7dfec;border-radius:9px;background-color:white;padding:11px 40px 11px 14px}
.v19-stagebox{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.v19-action{border:1px solid #dbe2ed;padding:10px 12px;border-radius:9px;background:#fff;cursor:pointer}.v19-action:hover{background:#f2f6fd}

/* V1.9 Mobile: responsive adaptation only. Desktop design is unchanged. */
.mobileToggle,.mobileDim,.mobileBottomNav{display:none}
@media(max-width:760px){
 html,body{width:100%;min-width:0;overflow-x:hidden;-webkit-text-size-adjust:100%}
 .app{display:block;min-width:0}
 .main{width:100%;min-width:0;max-width:100vw}
 .top{height:64px;position:sticky;top:0;z-index:800;padding:0 12px!important;gap:8px;box-shadow:0 1px 0 #e7ecf4}
 .mobileToggle{display:grid;place-items:center;border:1px solid #e0e8f3;border-radius:10px;width:40px;height:40px;flex:0 0 40px;background:white;color:#173b70;font-size:23px}
 .searchWrap{flex:1 1 auto;min-width:0;width:auto}
 .searchTop{font-size:13px!important;padding:12px 10px 12px 32px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
 .searchIcon{left:10px}
 .topRight{gap:7px}.topRight .avatar{width:31px;height:31px;font-size:12px}.squareicon{width:34px;height:34px}
 .content{padding:15px 12px 104px!important;max-width:100vw;overflow-x:hidden}
 .side{position:fixed!important;left:0;top:0;bottom:0;width:min(300px,80vw)!important;height:100dvh!important;z-index:1100;transform:translateX(-102%);transition:transform .25s ease;overflow-y:auto;display:block!important;padding:0 11px!important}
 .brand{font-size:18px!important;padding:13px 20px!important;margin:0 -11px!important}
 .brandtext,.org,.sidefoot,.side small{display:block!important}
 .nav{justify-content:flex-start!important;font-size:14px!important;padding:12px 14px!important}
 .nav:before{content:none!important}.navicon{font-size:18px!important}
 .navBadge{display:inline-flex!important}
 .app.mobileMenuOpen .side{transform:translateX(0)}
 .mobileDim{display:none;position:fixed;inset:0;background:rgba(10,28,49,.55);z-index:1000}
 .app.mobileMenuOpen .mobileDim{display:block}
 .mobileBottomNav{display:flex;position:fixed;left:0;bottom:0;right:0;z-index:900;height:calc(66px + env(safe-area-inset-bottom));padding:7px 8px calc(7px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e2e8f0;box-shadow:0 -3px 12px #18263b11;justify-content:space-around;align-items:center}
 .mobileBottomNav button{min-width:0;border:0;background:transparent;color:#66788d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;white-space:nowrap;font-size:10px;font-weight:700;padding:3px 0;border-radius:9px}
 .mobileBottomNav button span{font-size:21px;line-height:1.1}
 .mobileBottomNav button.selected{color:#2269d9;background:#ebf3ff}
 .title{font-size:21px!important}.hrow{gap:12px}.hrow .tools{width:100%;justify-content:flex-start;gap:8px}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin:12px 0!important}
 .statsSmall{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 .cards .card,.statsSmall .card{padding:11px!important;min-width:0}.metric{font-size:22px}
 .g2,.g3,.dashCharts{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:12px}
 .card{padding:13px!important;max-width:100%;min-width:0}
 .tools{gap:8px;max-width:100%}.tools .field{max-width:100%;min-width:0;flex:1 1 135px}
 .btnrow{max-width:100%;display:flex;flex-wrap:wrap;gap:6px}
 .tblwrap{overflow-x:auto!important;width:100%;max-width:100%;-webkit-overflow-scrolling:touch}
 .tbl{min-width:950px;font-size:13px}.tbl td,.tbl th{padding:11px 9px!important}
 .quickfilters{overflow-x:auto!important;flex-wrap:nowrap!important;overscroll-behavior-x:contain;scrollbar-width:thin;padding:3px 2px 9px}
 .qchip{flex-shrink:0!important;white-space:nowrap!important}
 .kan{display:flex!important;gap:12px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
 .kan_col{flex:0 0 255px;scroll-snap-align:start}
 .monthbars{height:150px}.monthCol{min-width:0}
 .barrow{gap:6px}.barrow label{min-width:75px;font-size:12px}
 .drawerbg{z-index:2000;align-items:stretch}
 .drawer,.drawerbg .drawer{width:100vw!important;max-width:100vw!important;height:100dvh;padding:15px 14px 100px!important;overflow-y:auto}
 .drawer h2{font-size:22px!important;overflow-wrap:anywhere}
 .formgrid,.inlineForm,.profileGrid,.botConfig{display:grid;grid-template-columns:minmax(0,1fr)!important}
 .workflowSteps,.v19-stagebox{overflow-x:auto;flex-wrap:nowrap!important;padding:5px 0 12px}
 .wfStep,.v19-stage{flex:0 0 auto;min-width:115px}
 .v18pricebox{grid-template-columns:minmax(0,1fr)!important}
 .v19filterbar{gap:7px}.v19filterbar select,.v19filterbar input{flex:1 1 145px;min-width:0!important;max-width:100%}
 .profileCell,.profileGrid>div{min-width:0;overflow-wrap:anywhere}
 .assistantDock{right:8px!important;left:8px!important;bottom:calc(78px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 16px)!important;transform:none!important;gap:4px;animation:none!important}
 .assistantBubble{max-width:calc(100vw - 80px)!important;min-width:0!important;padding:10px!important;font-size:12px}
 .assistantRobot{width:64px!important}
 .assistantDock.moving{animation:none!important}
 .botLauncher{bottom:calc(78px + env(safe-area-inset-bottom))!important}
 .assistantBubble .assistantText{font-size:12px;line-height:1.45}
 .assistantBubble .ghost{padding:7px!important}
 .notice{max-width:90vw;bottom:calc(83px + env(safe-area-inset-bottom))!important}
}
@media(max-width:380px){.content{padding:12px 9px 100px!important}.cards .card,.statsSmall .card{padding:9px!important}.label{font-size:11px}.searchTop{font-size:12px!important}.mobileBottomNav button{font-size:9px}}
@media(prefers-reduced-motion:reduce){.assistantDock,.assistantRobot,.botEyes,.assistantDock.moving{animation:none!important}}

/* Goku CRM V2.0 - preserve the V1 navy desktop shell and mobile layout */
.v2-role{max-width:190px;font-size:12px!important;padding:8px 24px 8px 10px!important;border-color:#cfdbf0}
.v2-filterpanel{padding-top:8px}
.v2-filtertop{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#738199;font-size:12px;font-weight:700;margin-bottom:8px}
.v2-filterpanel .quickfilters{margin:0 0 14px}
.v2-chipbox{display:inline-flex;flex-direction:column;align-items:center;gap:2px;flex:none;border-radius:15px}
.v2-chipbox .qchip{white-space:nowrap;touch-action:auto;user-select:none}
.v2-chipbox .qchip .v2-filtercount{display:inline-grid!important;place-items:center!important;min-width:22px!important;height:22px!important;border-radius:999px!important;padding:0 6px!important;background:rgba(12,32,76,.17)!important;color:inherit!important;font-weight:800!important;border:1px solid currentColor!important}
.v2-chipbox .qchip.on .v2-filtercount{background:rgba(255,255,255,.8)!important;color:#183b84!important}
.v2-sorting .v2-chipbox{cursor:grab;touch-action:none;outline:1px dashed #a1b5d9;padding:3px}
.v2-sorting .qchip{touch-action:none}
.v2-dragging{opacity:.6;border:2px dashed #315be8}
.v2-chipmoves{display:flex;gap:4px}.v2-chipmoves button{border:1px solid #ccd8ed;border-radius:7px;background:#fff;color:#3458a7;padding:1px 11px;cursor:pointer}
.v2-marketing{margin-top:17px}.v2-marketing h3{font-size:16px;margin:0 0 12px}.v2-marketing .between{margin:8px 0 17px}.v2-marketing-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:15px;margin-bottom:18px;border-bottom:1px solid #e2e8f4}
.v2-marketing-tabs button{flex:none;border:1px solid #e1e8f4;background:#fff;color:#52627d;padding:10px 13px;border-radius:9px;font-weight:800}.v2-marketing-tabs button.active{background:#285bc8;color:#fff;border-color:#285bc8}
.v2-access{background:#eef4ff;padding:10px 12px;color:#315baf;border-radius:10px;font-size:12px;font-weight:700}
.v2-metrics{margin-bottom:4px}.v2-metric{display:flex;flex-direction:column;gap:8px;padding:16px}.v2-metric>span{font-weight:700;color:#7b879f;font-size:12px;display:flex;justify-content:space-between}.v2-metric>span b{color:#315be8;font-size:19px}.v2-metric>strong{font-size:30px;color:#1b2740}.v2-metric>small{color:#168b6b;font-size:12px}
.v2-progress{border-radius:50px;background:#e6ebf4;height:10px;overflow:hidden;margin-top:16px}.v2-progress span{display:block;height:100%;background:linear-gradient(90deg,#315be8,#2cb894);border-radius:50px}
.v2-formwrap{padding:16px;margin:18px 0;border:1px solid #d9e4f5;border-radius:14px;background:#f8faff}.v2-formwrap[hidden]{display:none!important}.v2-gridform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:15px}.v2-gridform label{display:block;font-size:12px;font-weight:700;color:#718198;margin-bottom:6px}.v2-gridform input,.v2-gridform textarea,.v2-gridform select{width:100%}
.v2-table-scroll{overflow-x:auto;max-width:100%}.v2-table-scroll .tbl{min-width:780px}.v2-select-small{padding:7px 29px 7px 9px!important;font-size:12px!important;min-width:130px}.v2-row-buttons{display:flex;gap:5px;flex-wrap:wrap}.v2-row-buttons button{padding:7px 9px;border:1px solid #cbd9ee;background:#f6f9ff;border-radius:8px;color:#315be8;font-size:12px;font-weight:700}.v2-status{border-radius:99px;padding:5px 10px;font-size:11px;font-weight:800;white-space:nowrap}.v2s-blue{background:#e1efff;color:#2566c9}.v2s-green{background:#e1f7ea;color:#0b8850}.v2s-amber{background:#fff3d7;color:#ab720e}.v2s-slate{background:#eef1f6;color:#69778f}.v2s-red{background:#ffe6e2;color:#c54a35}
.v2-assistant{max-width:min(500px,calc(100vw - 30px))!important;animation:none!important;touch-action:none}.v2-grip{cursor:grab;background:#ecf2ff;color:#245acb;font-size:12px;font-weight:800;padding:6px 9px;border-radius:9px;touch-action:none;user-select:none;white-space:nowrap}
.v2-grip:active{cursor:grabbing}.v2-robot-zone{cursor:grab;touch-action:none;position:relative;animation:v2-bot-bob 3.3s ease-in-out infinite}.v2-robot-zone .assistantRobot{animation:v2-robot-turn 7.5s ease-in-out infinite;transform-origin:center bottom;pointer-events:none}.v2-bot-spark{position:absolute;top:0;right:0;color:#4c9df2;animation:v2-spark 2.5s ease-in-out infinite;pointer-events:none}
@keyframes v2-bot-bob{0%,100%{transform:translate(0,0)}20%{transform:translate(-9px,-7px)}55%{transform:translate(7px,8px)}77%{transform:translate(-3px,0px)}}
@keyframes v2-robot-turn{0%,30%,100%{transform:rotate(0)}40%{transform:rotate(-7deg)}70%{transform:rotate(6deg)}}@keyframes v2-spark{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:1;transform:scale(1.3)}}
@media(max-width:760px){.v2-role{max-width:120px!important;font-size:11px!important;padding:7px 21px 7px 5px!important}.v2-filtertop{flex-wrap:wrap}.v2-gridform{grid-template-columns:1fr}.v2-access{margin-top:8px}.v2-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v2-assistant{right:6px;left:auto;bottom:75px;align-items:flex-end}.v2-assistant .assistantBubble{width:min(278px,calc(100vw - 110px));min-width:0;padding:10px}.v2-assistant .assistantRobot{width:70px!important}.v2-assistant .assistantHead{gap:4px;flex-wrap:wrap}.v2-assistant .assistantTools{margin-left:auto}.v2-grip{padding:4px 7px}.v2-assistant .assistantText{font-size:12px}.v2-assistant .assistantMeta{font-size:11px}.v2-marketing .g2{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.v2-robot-zone,.v2-robot-zone .assistantRobot,.v2-bot-spark{animation:none!important}}

/* ===== id="v21-patch-css" ===== */
select.field,.v2-role,.roleSelect{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235f6f87' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:38px}
.topRight .role, .topRight .roleSelect{min-width:180px}
.v21-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
.v21-filters .field{min-width:170px}
.v21-filters .searchHide{display:none}
.v21-listTools{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.v21-listTools .left,.v21-listTools .right{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.v21-col-quote{font-weight:700;color:#315be8}
.v21-thin{font-size:12px;color:var(--m)}
.v21-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}
.v21-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--l);border-radius:10px;background:#fff}
.v21-form-code{background:#0f1729;color:#dbe7ff;border-radius:12px;padding:14px;white-space:pre-wrap;overflow:auto;font-size:12px}
.v21-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}
.v21-s-brief{background:#ffe9e5;color:#d6523f}
.v21-s-bao{background:#fff0d9;color:#c97a08}
.v21-s-cho{background:#e8f0ff;color:#315be8}
.v21-s-chot{background:#e5f7f0;color:#108a67}
.v21-s-hoanthanh{background:#efe8ff;color:#6d44cc}
.v21-s-pending{background:#edf2f9;color:#647085}
.v21-s-fail{background:#ffe0ea;color:#b33062}
.v21-k-wrap .kan_col{min-width:260px}
.v21-menu-note{font-size:12px;color:var(--m);margin-top:8px}
@media (max-width: 900px){.v21-filters .field{min-width:140px;flex:1 1 140px}}

/* ===== id="goku-v22-css" ===== */
/* Quote-detail controls: single chevron only, consistent edge spacing */
.v22-deal .inlineForm select.v22-select,.v22-deal select.v22-select,.v22-deal select.field.v22-select {
 appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;
 background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%235d6e88' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 15px center!important;
 padding:11px 42px 11px 14px!important; min-height:45px;border:1px solid #d9e3f1;border-radius:9px;
}
.v22-deal input.field,.v22-deal textarea.field{padding:11px 13px;min-height:45px;border:1px solid #d9e3f1;border-radius:9px}
.v22-deal textarea.field{min-height:80px}
.v22-deal input[type=date]{color:#23364f;min-width:0}
.v22-deal .inlineForm>div{min-width:0}
.v22-deal .inlineForm label{font-size:12px;color:#71819a;font-weight:600;margin-bottom:7px}
.v22-deal .drawer{padding:24px 26px 38px}
.v22-quote-head h2{font-size:26px;line-height:1.3;margin:7px 0 5px}
.v22-statebox{background:#f8faff;border:1px solid #dbe4f2;border-radius:13px;padding:16px 18px;margin:15px 0 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.v22-stateinline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.v22-stateinline .label{margin:0;font-size:13px;font-weight:700;color:#64758e}
.v22-currenttag{display:inline-flex;align-items:center;border-radius:9px;padding:7px 12px;font-size:13px;font-weight:800}
.v22-muted{color:#7a8ba6;font-size:12px}
.v22-section{margin-top:25px;padding-top:12px;border-top:1px solid #e8edf6}
.v22-section h3{font-size:18px;margin:0 0 7px}
.v22-section p{margin:0 0 15px;color:#78849a;font-size:12px}
.v22-mini-title{color:#1c2d4a;font-weight:800;font-size:14px;margin-bottom:12px}
.v22-serviceList{display:flex;flex-direction:column;gap:9px}
.v22-serviceRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.72fr) 36px;align-items:center;gap:10px}
.v22-serviceRow .field{min-width:0;width:100%}
.v22-remove{width:35px;height:42px;border:1px solid #ecd6d9;background:#fff3f4;border-radius:9px;color:#b53b4d;font-size:20px}
.v22-service-footer{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}
.v22-error{display:block;color:#a84226;background:#fff4e8;border:1px solid #f6d7bd;padding:10px 12px;border-radius:9px;font-size:12px;margin-top:10px}
.v22-ok{display:block;color:#168065;background:#e8f9f1;border:1px solid #bee8d3;padding:10px 12px;border-radius:9px;font-size:12px;margin-top:10px}
.v22-pricegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:13px 0}
.v22-pricecard{background:#f4f7fc;border-radius:10px;padding:12px}
.v22-pricecard .label{font-size:12px}.v22-pricecard b{display:block;font-size:16px;margin-top:6px;color:#193457}
.v22-report-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.v22-report-config{background:#f7f9fe;border:1px solid #dae5f6;border-radius:13px;padding:18px;margin:12px 0}
.v22-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.v22-config-grid label{display:block;font-size:12px;color:#718198;margin-bottom:5px}
.v22-config-grid select{width:100%}
.v22-checkboxes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px}
.v22-checkboxes label{border:1px solid #dae4f3;background:#fff;border-radius:9px;padding:8px 10px;font-size:12px;cursor:pointer}
.v22-checkboxes input{accent-color:#285ddc}
.v22-report-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:15px 0}
.v22-kpi{background:#fff;border:1px solid #e0e7f1;border-radius:12px;padding:15px}
.v22-kpi .label{font-size:12px;display:block}.v22-kpi b{font-size:21px;display:block;margin:10px 0 4px;overflow-wrap:anywhere}
.v22-kpi small{color:#7590a6}
.v22-hint{padding:11px 13px;background:#f3f7ff;border-radius:10px;color:#556e99;font-size:12px;margin:11px 0}
.v22-table{overflow:auto;margin:14px 0}
.v22-table .tbl{width:100%}.v22-table th{white-space:nowrap}.v22-table td{vertical-align:middle}
.v22-formRow{display:flex;flex-direction:column;gap:5px;min-width:0}
.v22-commissionTop{padding:14px;border-radius:13px;background:#eef5ff;border:1px solid #d6e5fa;margin:12px 0}
.v22-commissionTop p{margin:6px 0 0;color:#63738f;font-size:12px}
.v22-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:15px 0}
.v22-status-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.v22-note{font-size:12px;color:#60728d}
.v22-calc-details{font-size:12px;line-height:1.7;color:#687995;margin-top:12px}
.v22-mkt-commission{margin-top:15px}
.v22-tabs{display:flex;gap:8px;overflow-x:auto;flex-wrap:wrap;margin:15px 0}
.v22-tabs button{padding:10px 13px;border:1px solid #d5e1f2;border-radius:10px;background:#fff;color:#415573;font-weight:700}
.v22-tabs button.on{background:#e9f0ff;color:#2050c8;border-color:#b8cbf5}
.v22-value{font-weight:750;color:#173c80;white-space:nowrap}
@media (max-width:760px){.v22-deal .drawer{padding:16px}.v22-serviceRow{grid-template-columns:minmax(0,1fr) minmax(130px,.8fr) 34px}.v22-pricegrid{grid-template-columns:1fr 1fr}.v22-quote-head h2{font-size:21px}.v22-report-cards{grid-template-columns:1fr 1fr}.v22-kpi b{font-size:18px}}
@media (max-width:850px){body:has(.v22-deal) .assistantDock,body:has(.v22-deal) .botLauncher{display:none!important}}
@media (max-width:420px){.v22-pricegrid{grid-template-columns:1fr}.v22-serviceRow{grid-template-columns:minmax(0,1fr);gap:6px}.v22-remove{width:100%;height:30px}.v22-report-cards{grid-template-columns:1fr}}

/* ===== id="goku-v23-css" ===== */
/* Goku CRM V2.3 — service VAT, shared team calendar, Lark Mail connection preview */
.v22-deal .v22-serviceRow.v23-serviceRow{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(145px,.9fr) 100px minmax(120px,.7fr) 36px;gap:9px;align-items:center}
.v23-service-head{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(145px,.9fr) 100px minmax(120px,.7fr) 36px;gap:9px;font-size:11px;font-weight:800;color:#7383a1;margin-bottom:8px;padding:0 4px}
.v23-rowVat{font-size:12px;font-weight:800;text-align:right;color:#214776;white-space:nowrap}
.v23-tax-note{margin:12px 0 0!important;font-size:12px!important;line-height:1.6;background:#f3f7fe;border-radius:10px;padding:12px}
.v23-private-value{display:flex;align-items:center;min-height:44px;background:#eff6ff;border:1px solid #cfe0f7;border-radius:10px;padding:10px 13px;color:#204a90;font-size:17px}
.v23-layout{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:710px;background:#fff;border:1px solid #e3e9f2;border-radius:14px;overflow:hidden;margin-top:19px}
.v23-side{border-right:1px solid #e3e9f2;background:#f8fafc;padding:17px}
.v23-side h3{font-size:15px;margin:0 0 12px}
.v23-calendar-main{min-width:0;padding:17px 18px}
.v23-cal-tools,.v23-cal-filters{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.v23-cal-tools{padding-bottom:17px;border-bottom:1px solid #e9edf4}
.v23-cal-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.v23-cal-actions button,.v23-segment button,.v23-minibtn{border:1px solid #dce4f0;background:#fff;border-radius:9px;min-height:35px;padding:7px 12px;color:#425773;font-weight:700}
.v23-cal-actions button.on,.v23-segment button.on{color:#2459dd;background:#e8f0ff;border-color:#b8cdfb}
.v23-segment{display:flex;border:1px solid #dce4f0;border-radius:10px;padding:3px;background:#f7faff;gap:3px}
.v23-segment button{border:0;background:transparent;min-height:31px}
.v23-minihead{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;font-size:14px;font-weight:800}
.v23-minihead button{border:0;background:transparent;padding:3px 7px;color:#64758c;font-size:21px}
.v23-miniweek,.v23-minigrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.v23-miniweek{color:#91a0b5;font-size:11px;margin-bottom:7px}
.v23-minigrid button{border:0;background:transparent;height:31px;border-radius:50%;font-size:12px;color:#344562;cursor:pointer;position:relative}
.v23-minigrid button.muted{color:#b2bdcd}
.v23-minigrid button.today{background:#285de0;color:#fff}
.v23-minigrid button.selected:not(.today){box-shadow:inset 0 0 0 2px #3e70e9}
.v23-minigrid button.has-event:after{content:'';position:absolute;width:4px;height:4px;background:#e65469;border-radius:50%;bottom:1px;left:calc(50% - 2px)}
.v23-filter-option{display:flex;gap:8px;align-items:center;font-size:13px;padding:8px 0;color:#536079}
.v23-filter-option input{accent-color:#3260df}
.v23-tag-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}
.v23-team-status{padding:10px 0;border-bottom:1px solid #e6ebf4;display:flex;gap:8px;justify-content:space-between;align-items:center;font-size:12px}
.v23-team-status .v23-person{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v23-team-status .v23-onleave{color:#bc4281;font-weight:750}
.v23-team-status .v23-working{color:#19906a;font-weight:750}
.v23-monthweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #e9eef5;border-top:1px solid #e9eef5}
.v23-weekday{text-align:center;font-weight:800;font-size:12px;color:#72829a;padding:12px 5px;background:#f7f9fc}
.v23-daycell{min-height:116px;padding:8px 5px;border-bottom:1px solid #e9eef5;border-right:1px solid #e9eef5;min-width:0;background:#fff;cursor:pointer;overflow:hidden}
.v23-daycell.other{background:#fbfcff;color:#a0aaba}
.v23-daycell.selected{background:#f0f5ff}
.v23-daynum{font-size:14px;font-weight:800;margin-bottom:6px;display:inline-grid;place-items:center;min-width:26px;height:26px}
.v23-daynum.today{color:#fff;background:#235fe0;border-radius:50%}
.v23-eventchip{display:block;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;border-left:3px solid var(--evcolor,#315be8);background:color-mix(in srgb,var(--evcolor,#315be8) 13%,white);color:#314259;font-size:11px;padding:4px 4px 4px 6px;margin:3px 0;border-radius:5px;font-weight:700}
.v23-more{font-size:10px;color:#8392ab;padding:2px 4px}
.v23-daylist{margin-top:15px;border-top:1px solid #e6ebf2;padding-top:13px}
.v23-daylist .v23-line{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid #f0f2f6;cursor:pointer}
.v23-daylist .v23-line:hover{background:#f5f9ff}
.v23-daylist .v23-line>div:nth-child(2){flex:1;min-width:0}
.v23-daylist .v23-line small{display:block;color:#79869b;margin-top:3px}
.v23-weeks{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));overflow-x:auto;min-height:440px}
.v23-weekcol{border-right:1px solid #e7ebf4;min-width:0;padding:9px}
.v23-weekcol .v23-weekname{font-size:13px;font-weight:800;margin-bottom:14px;color:#465b7c}
.v23-one-day{min-height:410px}
.v23-one-day .v23-line{padding:14px!important}
.v23-overline{font-size:12px;color:#8190a9;margin:0 0 10px}
.v23-modalbg{position:fixed;inset:0;z-index:10010;background:rgba(12,25,48,.55);display:grid;place-items:center;padding:15px}
.v23-modal{width:min(620px,95vw);max-height:92vh;overflow:auto;border-radius:16px;background:#fff;box-shadow:0 20px 85px #0004;padding:25px}
.v23-modal h2{margin:0 0 15px;font-size:21px}
.v23-formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v23-formgrid>label{font-size:12px;color:#697a96;font-weight:750;display:grid;gap:7px}
.v23-formgrid .field{width:100%;min-width:0}
.v23-formgrid .full{grid-column:1/-1}
.v23-softnote{padding:12px;border-radius:10px;background:#f2f7ff;border:1px solid #e0ebff;color:#526888;font-size:12px;line-height:1.6;margin:12px 0}
.v23-mail-toolbar{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.v23-mail-toolbar .field{min-width:200px;max-width:330px;flex:1}
.v23-mailgrid{display:grid;grid-template-columns:minmax(225px,.42fr) minmax(0,.58fr);gap:0;border:1px solid #e3e8f0;border-radius:13px;overflow:hidden;background:#fff;min-height:580px}
.v23-maillist{border-right:1px solid #e8edf5;background:#fbfcff;overflow:auto;max-height:630px}
.v23-mailitem{display:block;text-align:left;background:transparent;border:0;border-bottom:1px solid #edf1f6;width:100%;padding:14px;cursor:pointer}
.v23-mailitem.active{background:#ecf3ff}
.v23-mailitem strong{display:block;font-size:13px;color:#1d2b46;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v23-mailitem small{display:block;font-size:11px;color:#8995a7;margin:5px 0}
.v23-mailbody{padding:20px;overflow:auto;min-width:0}
.v23-mailbody h3{font-size:19px;margin:2px 0 11px}
.v23-mailbody .v23-content{white-space:pre-wrap;line-height:1.7;color:#465771;word-wrap:break-word}
.v23-warn{display:flex;align-items:center;gap:8px;background:#fff4e5;border:1px solid #ffe0b0;border-radius:10px;padding:12px;font-size:12px;color:#8b5c13;margin-bottom:13px}
.v23-mailnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.v23-mailnav button{border:1px solid #dce5f0;border-radius:8px;background:#fff;padding:9px 11px;font-weight:750;color:#5b6d89}
.v23-mailnav button.active{background:#e9f0ff;color:#235bd2;border-color:#b7cdff}
@media(max-width:1100px){.v23-layout{grid-template-columns:190px minmax(0,1fr)}.v23-side{padding:12px}.v23-daycell{min-height:92px}.v23-eventchip{font-size:10px}}
@media(max-width:800px){.v23-layout{grid-template-columns:1fr}.v23-side{display:none}.v23-calendar-main{padding:12px}.v23-daycell{min-height:82px;padding:4px}.v23-mailgrid{grid-template-columns:1fr}.v23-maillist{max-height:260px;border-bottom:1px solid #e8edf5;border-right:0}.v23-mailbody{min-height:270px}}
@media(max-width:480px){.v23-monthweek{grid-template-columns:repeat(7,minmax(0,1fr))}.v23-daycell{min-height:64px;padding:2px}.v23-eventchip{height:6px;font-size:0;padding:0;margin:5px 2px;border:0;border-radius:2px}.v23-daynum{font-size:11px}.v23-cal-tools{gap:8px}.v23-segment button{padding:5px 7px;font-size:12px}.v23-formgrid{grid-template-columns:1fr}.v23-service-head{display:none}.v22-deal .v22-serviceRow.v23-serviceRow{grid-template-columns:minmax(0,1fr) 1fr 88px;gap:5px;border:1px solid #e4eaf2;padding:9px;border-radius:10px}.v23-serviceRow>select:first-child{grid-column:1/-1}.v23-serviceRow .v23-rowVat{text-align:left}.v23-serviceRow .v22-remove{grid-column:3;grid-row:2}}
/* Keep the quote editing workspace unobstructed by the floating assistant. */
body:has(.v22-deal) .assistantDock,body:has(.v22-deal) .botLauncher{display:none!important}

/* ===== id="goku-v24-css" ===== */
/* Goku CRM V2.4 Admin Center */
.v24-content{max-width:none!important}
.v24-hero{background:linear-gradient(115deg,#122d5a,#224b87);color:white;border-radius:17px;padding:25px 28px;display:flex;gap:25px;align-items:center;justify-content:space-between}
.v24-eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#5e8fd6}.v24-hero .v24-eyebrow{color:#9dc0f5}.v24-hero h1{font-size:28px;letter-spacing:-.7px;margin:8px 0 4px;color:#fff}.v24-hero p{margin:0;line-height:1.6;color:#c9dafa;font-size:13px;max-width:640px}.v24-heroside{display:flex;flex-direction:column;gap:10px;align-items:flex-end;flex-shrink:0}.v24-heroside small{font-size:11px;color:#afc6ec}
.v24-pill{display:inline-flex;align-items:center;background:#ecf1fa;color:#4d6184;border-radius:100px;font-size:11px;font-weight:800;padding:6px 11px;white-space:nowrap}.v24-pill.blue{background:#dceaff;color:#1e54aa}.v24-hero .v24-pill{background:#dce9ff;color:#133d7e}
.v24-banner{margin-top:14px;border:1px solid #f1ddaa;background:#fff9ec;color:#8a621b;border-radius:11px;padding:12px 15px;font-size:12px;line-height:1.55}
.v24-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:17px 0 19px}.v24-metric{border:1px solid #dce5f2;background:#fff;border-radius:13px;min-height:110px;padding:15px 18px;display:flex;flex-direction:column;gap:7px}.v24-metric>span{display:flex;justify-content:space-between;gap:5px}.v24-metric>span b{color:#315be8}.v24-metric>strong{font-size:25px;line-height:1;color:#193050}.v24-metric>small{font-size:11px;color:#8a97ac}.v24-muted{font-size:12px;color:#7e8ba2}
.v24-layout{display:grid;grid-template-columns:222px minmax(0,1fr);gap:17px;align-items:start}.v24-subnav{background:#fff;border:1px solid #dfe7f2;border-radius:14px;padding:11px;position:sticky;top:80px;display:flex;flex-direction:column;gap:4px}.v24-subnav button{width:100%;background:transparent;border:0;text-align:left;padding:11px 12px;border-radius:9px;color:#566983;font-weight:700;font-size:12.5px;display:flex;align-items:center;gap:12px}.v24-subnav button span{width:18px;text-align:center;font-size:16px;color:#7188ad}.v24-subnav button:hover{background:#f3f6fc}.v24-subnav button.on{background:#e7eeff;color:#2859c0}.v24-subnav button.on span{color:#2859c0}.v24-panel{min-width:0;min-height:480px;border:1px solid #dfe7f2;border-radius:14px;background:#fff;padding:23px 25px}.v24-crumb{color:#8898b3;font-size:11px;font-weight:700;margin-bottom:18px}.v24-crumb span{margin:0 8px;color:#bbc4d4}.v24-tooltitle{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:16px}.v24-tooltitle h3{font-size:19px;letter-spacing:-.4px;margin:0 0 7px;color:#1c2e47}.v24-tooltitle p{color:#8390a5;font-size:12px;margin:0;line-height:1.6;max-width:730px}.v24-tooltitle .btn{white-space:nowrap}.v24-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.v24-userTools{justify-content:space-between;margin:15px 0}.v24-userTools .field{min-width:175px}.v24-inputSearch{display:flex;align-items:center;gap:10px;color:#8b9ebc;border:1px solid #e1e8f2;border-radius:10px;padding-left:13px}.v24-inputSearch .field{border:0;width:min(390px,50vw);outline:none}.v24-inputSearch:focus-within{border-color:#a9bffc}
.v24-table{min-width:650px}.v24-table th{background:#f5f8fd!important;font-size:11px!important;color:#8792a5!important}.v24-table td{font-size:12px;color:#42536b}.v24-table b{font-weight:800;color:#293c58}.v24-table .ghost{padding:7px 10px;font-size:11px}.v24-scroll{overflow-x:auto;border:1px solid #e9eef5;border-radius:10px}.v24-note{margin:12px 0;color:#8d9aac;font-size:11.5px;line-height:1.6}.v24-green{font-weight:700;color:#0f9d78;font-size:11px}.v24-red{font-weight:700;color:#d77763;font-size:11px}.v24-yes{color:#099f7a;font-weight:900}.v24-no{color:#b8c1cf}
.v24-overviewGrid{display:grid;grid-template-columns:1.6fr 1fr;gap:15px}.v24-welcome{background:#f0f5ff;border-radius:12px;padding:24px}.v24-welcome h2{font-size:20px;margin:10px 0 8px;color:#244a91}.v24-welcome p{font-size:12px;color:#58708f;max-width:530px;line-height:1.7}.v24-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:19px}.v24-statcard{border:1px solid #dde8f6;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:13px}.v24-big{font-size:43px;font-weight:800;letter-spacing:-2px;color:#2455b1}.v24-big span{font-size:20px;color:#96a5ba}.v24-statcard strong{color:#2b3e5e}.v24-statcard p{font-size:11px;color:#8c9aaf;margin:0}.v24-progress{height:9px;background:#e8eef7;border-radius:30px;overflow:hidden}.v24-progress i{display:block;height:100%;background:#44b896;border-radius:30px}
.v24-blocks{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.v24-block{padding:19px;border:1px solid #e2e9f5;border-radius:12px}.v24-block h3{font-size:14px;margin:0 0 16px}.v24-block h3 span{margin-right:8px;color:#315be8}.v24-minirow{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px 0;border-bottom:1px solid #eff3f8}.v24-minirow:last-child{border:0}.v24-minirow b{font-size:12px}.v24-minirow small{font-size:10px;color:#909cad;display:block;margin-top:3px}.v24-actionline{width:100%;background:none;border:0;border-bottom:1px solid #eff2f7;padding:12px 0;color:#466082;text-align:left;font-size:12px;display:flex;justify-content:space-between;align-items:center}.v24-actionline:last-child{border:0}.v24-actionline:hover{color:#315be8}.v24-help{border:1px solid #dce8fa;border-radius:10px;background:#f5f8ff;color:#526b8f;font-size:12px;line-height:1.65;padding:15px;margin-top:17px}
.v24-deptgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.v24-deptcard{border:1px solid #e1e9f4;border-radius:12px;padding:17px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px}.v24-depticon{width:38px;height:38px;border-radius:10px;background:#eaf1ff;color:#3461be;display:grid;place-items:center;font-size:20px}.v24-deptcard h3{margin:1px 0 2px;font-size:15px}.v24-deptcard span{font-size:11px;color:#8798b3}.v24-deptcard p{grid-column:1/-1;margin:3px 0 0;font-size:12px;color:#6e7f99}.v24-deptfoot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}
.v24-matrix td:not(:first-child),.v24-matrix th:not(:first-child){text-align:center}.v24-switch input{position:absolute;opacity:0}.v24-switch span{display:inline-block;position:relative;width:37px;height:21px;background:#d6dfec;border-radius:20px;vertical-align:middle;cursor:pointer;transition:background .2s}.v24-switch span:after{content:'';position:absolute;top:3px;left:3px;width:15px;height:15px;background:white;border-radius:50%;transition:transform .2s;box-shadow:0 1px 2px #0002}.v24-switch input:checked+span{background:#3561db}.v24-switch input:checked+span:after{transform:translateX(16px)}
.v24-subsection{border:1px solid #e1e9f4;padding:16px;border-radius:10px;margin-top:19px}.v24-subsection .v24-tooltitle{margin-bottom:12px}.v24-chips{display:flex;gap:9px;flex-wrap:wrap}.v24-sourcechip{display:inline-flex;gap:9px;align-items:center;border:1px solid #dbe5f6;border-radius:100px;padding:7px 12px;font-size:12px;color:#31529a;background:#eef4ff}.v24-sourcechip button{border:0;background:none;color:#8496af;font-size:16px;line-height:1}
.v24-selectrow{display:flex;align-items:center;gap:15px;margin:12px 0 18px}.v24-selectrow label{font-size:12px;color:#71829f}.v24-selectrow select{min-width:180px}.v24-workflow{border:1px solid #e0e8f5;border-radius:12px;padding:18px}.v24-workflow>.v24-eyebrow{margin-bottom:12px}.v24-workrow{display:flex;align-items:center;gap:13px;border-bottom:1px solid #edf1f7;padding:9px 0}.v24-step{font-size:12px;font-weight:800;color:#3159a9;background:#eaf1ff;border-radius:7px;width:34px;height:32px;display:grid;place-items:center;flex-shrink:0}.v24-workrow>span:nth-child(2){flex:1;font-size:13px;font-weight:700}.v24-workbuttons{display:flex;gap:6px}.v24-workbuttons button{padding:5px 8px;font-size:11px}.v24-workflow>.v24-row input{flex:1;min-width:100px}
.v24-menugrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.v24-menuitem{border:1px solid #e1e9f4;border-radius:10px;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.v24-menuitem b{font-size:12px;display:block;margin-bottom:4px}.v24-menuitem small{font-size:10px;color:#8b9cb5}.v24-menuitem input{width:18px;height:18px;accent-color:#315be8}.v24-menuitem.off{background:#f6f7f9;opacity:.6}.v24-integgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.v24-integration{border:1px solid #e1e8f2;border-radius:12px;padding:17px;display:grid;grid-template-columns:40px 1fr;gap:9px}.v24-integicon{width:36px;height:36px;display:grid;place-items:center;background:#eaf1ff;color:#315be8;border-radius:9px;font-size:19px}.v24-integration h3{margin:2px 0 6px;font-size:13px}.v24-integration p{font-size:11px;color:#8796a9;line-height:1.55;margin:0}.v24-integration>div:nth-child(3){grid-column:1/-1}.v24-integration>button{grid-column:1/-1;justify-self:start}
.v24-new{border-radius:6px;padding:2px 5px;font-size:9px!important;color:#fff!important;background:#285ac2;margin-left:auto!important;font-weight:800}.v24-modalshade{position:fixed;inset:0;z-index:21000;background:#071b37ad;display:flex;align-items:center;justify-content:center;padding:15px}.v24-modal{width:min(690px,100%);max-height:93vh;overflow-y:auto;background:#fff;padding:26px;border-radius:17px;box-shadow:0 15px 80px #0b1e4770}.v24-modal h2{font-size:21px;margin:0 0 13px}.v24-modalgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.v24-formField{display:flex;flex-direction:column;gap:8px;margin:5px 0}.v24-formField>span{font-size:12px;color:#6f8099;font-weight:700}.v24-formField .field{width:100%;min-height:41px}.v24-checkrow{display:flex;align-items:center;gap:20px;margin-top:20px}.v24-checkbox{font-size:13px;display:flex;align-items:center;gap:7px}.v24-checkbox input{accent-color:#315be8}.v24-modfoot{margin-top:23px;display:flex;justify-content:flex-end;gap:10px}.v24-dynamicQuote,.v24-dynamicLead{border:1px dashed #c8d8ed;background:#f8faff;border-radius:12px;padding:14px;margin-top:17px}.v24-dynTitle{font-weight:800;color:#506c9b;font-size:12px;margin-bottom:10px}.v24-dynGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v24-dynGrid .field{max-width:100%;min-width:0}
@media(max-width:1100px){.v24-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.v24-layout{grid-template-columns:175px minmax(0,1fr)}.v24-subnav button{padding:10px 8px}.v24-panel{padding:18px}.v24-integgrid{grid-template-columns:1fr}}
@media(max-width:760px){.v24-layout{display:flex;flex-direction:column}.v24-subnav{position:static;display:flex;flex-direction:row;overflow-x:auto;max-width:100%;width:100%;padding:8px}.v24-subnav button{width:auto;flex-shrink:0;white-space:nowrap;padding:9px 10px}.v24-subnav button span{display:none}.v24-panel{width:100%;padding:17px}.v24-hero{padding:20px;flex-direction:column;align-items:flex-start;gap:14px}.v24-hero h1{font-size:23px}.v24-heroside{align-items:flex-start}.v24-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v24-metric{padding:12px;min-height:90px}.v24-metric>strong{font-size:22px}.v24-overviewGrid,.v24-blocks,.v24-deptgrid,.v24-menugrid{grid-template-columns:1fr}.v24-tooltitle{flex-wrap:wrap}.v24-tooltitle .btn{width:100%}.v24-userTools{align-items:stretch}.v24-inputSearch{width:100%}.v24-inputSearch input{width:100%}.v24-modalgrid,.v24-dynGrid{grid-template-columns:1fr}.v24-workrow{gap:7px}.v24-workbuttons{gap:2px}.v24-workbuttons button{padding:4px}}
@media(max-width:760px){
 .mobileBottomNav{overflow-x:auto!important;justify-content:flex-start!important;scrollbar-width:none;overscroll-behavior-x:contain}
 .mobileBottomNav::-webkit-scrollbar{display:none}
 .mobileBottomNav button{flex:0 0 62px!important;min-width:62px!important;max-width:70px!important}
 .mobileBottomNav button small{font-size:9px!important;line-height:1.2!important}
}

/* ===== id="v25-css" ===== */
/* Goku CRM v2.5 — AI báo giá, giữ style V1 */
.v25-hero{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.v25-tag{font-size:11px;color:#2f58a5;background:#edf3ff;border:1px solid #d8e4ff;border-radius:100px;padding:6px 12px;font-weight:800}
.v25-intro{background:linear-gradient(110deg,#f1f5ff,#fff);border:1px solid #dfe8fa;border-radius:14px;padding:15px 18px;margin:12px 0 18px;line-height:1.75;color:#52657d}
.v25-tabs{display:flex;overflow-x:auto;gap:7px;padding:0 0 13px;border-bottom:1px solid #e1e8f2;scrollbar-width:thin;margin-bottom:17px}
.v25-tabs button{background:white;border:1px solid #dde6f6;color:#596b89;font-size:13px;font-weight:800;white-space:nowrap;border-radius:9px;padding:10px 15px}
.v25-tabs button.active{background:#315be8;color:white;border-color:#315be8}
.v25-cols{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:17px;align-items:start}
.v25-panel{padding:19px;border:1px solid #e1e8f3;border-radius:14px;background:white;box-shadow:0 4px 13px #19345a08}
.v25-panel h3{font-size:17px;margin:0 0 7px;color:#202e47}
.v25-panel h4{font-size:14px;margin:15px 0 9px}
.v25-muted{color:#718198;font-size:12px;line-height:1.7;margin:4px 0 14px}
.v25-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v25-form{display:flex;flex-direction:column;gap:6px;min-width:0}
.v25-form>span{font-weight:750;font-size:12px;color:#67778e}
.v25-form input,.v25-form textarea,.v25-form select{width:100%;border:1px solid #dce4f1;border-radius:9px;padding:11px 12px;color:#20304c;background:#fff;min-width:0;font-family:inherit}
.v25-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23687992' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}
.v25-form textarea{min-height:116px;resize:vertical;line-height:1.55}
.v25-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px}
.v25-outline{border:1px solid #cbd8ef;background:#f8faff;border-radius:8px;color:#315bc4;font-weight:700;padding:10px 14px}
.v25-badge{border-radius:999px;font-weight:750;padding:5px 10px;font-size:11px;background:#eef4ff;color:#355eb8;display:inline-flex;align-items:center;gap:4px}
.v25-warn{margin:14px 0;background:#fff5e7;border:1px solid #ffdc9d;color:#916421;padding:12px 14px;border-radius:11px;line-height:1.7;font-size:12px}
.v25-ok{background:#eaf9f2;border:1px solid #badfcc;color:#137951;padding:10px 13px;border-radius:10px;margin:12px 0;font-size:12px}
.v25-empty{border:1px dashed #ccdaee;border-radius:12px;padding:34px 16px;color:#657791;text-align:center;line-height:1.7;background:#fafcff;margin-top:15px}
.v25-table-wrap{overflow-x:auto;margin-top:14px}
.v25-table{border-collapse:collapse;width:100%;font-size:12px;min-width:600px}
.v25-table th{background:#f4f7fd;color:#637593;font-weight:800;text-align:left;padding:11px;border-bottom:1px solid #dde6f4;white-space:nowrap}
.v25-table td{padding:11px;border-bottom:1px solid #edf1f6;vertical-align:top}
.v25-table .v25-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.v25-table input{width:74px;border:1px solid #dce5f2;border-radius:7px;padding:8px}
.v25-total{margin:14px 0 0;border-radius:11px;background:#f5f8fe;border:1px solid #e2e9f7;padding:13px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.v25-total span{display:block;font-size:11px;color:#6c7f99;margin-bottom:7px}.v25-total b{font-size:16px;color:#1d3352}
.v25-headline{display:flex;align-items:center;gap:9px;justify-content:space-between;flex-wrap:wrap}
.v25-faq-list{max-height:320px;overflow:auto;padding:0;margin:10px 0}
.v25-faq{border:1px solid #e4ebf6;border-radius:10px;margin:9px 0;padding:11px 13px}
.v25-faq strong{color:#1d3254}.v25-faq p{color:#536881;line-height:1.6;font-size:12px;margin:6px 0}
.v25-chat{background:#f7f9fd;border:1px solid #e3eafa;border-radius:12px;min-height:260px;max-height:390px;overflow:auto;padding:12px}
.v25-chatline{display:flex;margin:10px 0}.v25-chatline.user{justify-content:flex-end}.v25-bubble{max-width:92%;padding:10px 13px;line-height:1.65;white-space:pre-wrap;font-size:13px;border-radius:13px;background:white;border:1px solid #e0e9f7;color:#263b59}.v25-chatline.user .v25-bubble{background:#315be8;color:white;border-color:#315be8}
.v25-chatInput{display:flex;gap:9px;margin:13px 0}.v25-chatInput input{flex:1;min-width:0;border:1px solid #d7e1f1;border-radius:10px;padding:12px}
.v25-card-sm{padding:11px 13px;border:1px solid #e3ebf6;border-radius:10px;margin-top:12px;background:#fbfcff}
.v25-card-sm strong{font-size:13px}
.v25-row-actions{display:flex;flex-wrap:wrap;gap:6px}
.v25-row-actions button{background:#f1f5ff;color:#315bc4;border:1px solid #d8e2f5;padding:5px 9px;border-radius:6px;font-size:11px}
.v25-quote-btn{padding:9px 12px!important;font-size:12px!important;white-space:normal}
.v25-service-preview{background:#f7faff;border-radius:11px;padding:14px;line-height:1.7;font-size:12px;color:#506481}
.v25-helpdesk{font-size:12px;padding:12px 0 0;color:#687993;line-height:1.7}
.v25-adminOnly{border-left:3px solid #315be8;padding:11px 13px;background:#f7faff;margin:15px 0;border-radius:0 9px 9px 0}
.v25-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v25-usage-grid>div{border-radius:11px;background:#f4f7ff;padding:15px}.v25-usage-grid span{font-size:12px;display:block;color:#6d7f98}.v25-usage-grid b{font-size:22px;color:#234eb8;display:block;margin-top:7px}
.v25-bookmark{font-size:12px;color:#596d87;font-weight:600}
@media(max-width:980px){.v25-cols{grid-template-columns:1fr}.v25-usage-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.v25-grid{grid-template-columns:1fr}.v25-panel{padding:13px}.v25-total{grid-template-columns:1fr}.v25-usage-grid{grid-template-columns:1fr}.v25-hero{align-items:flex-start}}

.v25-item-selector{display:block;width:100%;max-width:270px;border:1px solid #dce5f2;background:white;border-radius:7px;padding:6px 9px;margin-top:8px;font-size:11px} .v25-estimate-output{margin-top:12px;border-radius:9px;padding:13px 16px;background:#eaf3ff;color:#1947a9;font-weight:800;font-size:15px}
/* In AI báo giá, keep the draggable robot small to avoid covering quote actions. */
body:has(.v25-panel) #v2-assistant .assistantBubble{display:none!important}
body:has(.v25-panel) #v2-assistant .assistantRobot{max-width:56px!important;max-height:70px!important}
body:has(.v25-panel) #v2-assistant{max-width:80px!important}
@media(max-width:560px){body:has(.v25-panel) #v2-assistant{display:none!important}}

/* ===== id="v26-css" ===== */
/* Goku CRM V2.6 quotation workspace */
.v26-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.v26-hero h1{margin:0;color:#192b46;font-size:26px}.v26-hero p{margin:5px 0 0;color:#71809a}.v26-pill{display:inline-flex;align-items:center;border:1px solid #bbd2fb;border-radius:99px;background:#ecf3ff;color:#2355b5;font-weight:800;font-size:11px;letter-spacing:.4px;padding:8px 12px}
.v26-tabs{display:flex;gap:7px;overflow:auto;border-bottom:1px solid #e5ebf5;margin-bottom:16px;padding-bottom:13px}.v26-tabs button{flex:none;border:1px solid #dce6f4;border-radius:9px;background:#fff;color:#51617b;font-weight:700;padding:10px 14px}.v26-tabs button.on{background:#2359d5;color:#fff;border-color:#2359d5}
.v26-cols{display:grid;grid-template-columns:minmax(330px,.92fr) minmax(350px,1.08fr);gap:16px;align-items:start}.v26-card{background:white;border:1px solid #e1e9f5;border-radius:14px;padding:17px 19px;min-width:0;box-shadow:0 3px 14px rgba(26,57,98,.025)}.v26-card h3{font-size:16px;margin:0 0 5px}.v26-desc{color:#7b8aa1;font-size:12px;line-height:1.6;margin:0 0 14px}.v26-notice{border:1px solid #d5e4fc;background:#f1f6ff;padding:13px;border-radius:10px;color:#355681;font-size:13px;line-height:1.6;margin:13px 0}.v26-warning{background:#fff6e9;border:1px solid #fae0ac;color:#976020;border-radius:10px;padding:12px;font-size:12px;line-height:1.55}.v26-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v26-form{display:flex;flex-direction:column;gap:6px;min-width:0}.v26-form span{font-size:12px;font-weight:700;color:#64748b}.v26-form input,.v26-form textarea,.v26-form select{width:100%;border:1px solid #d8e3f1;border-radius:9px;padding:10px 12px;color:#20304b;background-color:white;box-sizing:border-box}.v26-form textarea{min-height:128px;resize:vertical;line-height:1.6}.v26-form select{appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2367778e' stroke-width='2.3'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat}.v26-actions{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.v26-btn{background:#255bd8;color:white;padding:11px 16px;border-radius:9px;border:1px solid #255bd8;font-weight:800}.v26-btn:disabled{opacity:.46}.v26-outline{background:white;color:#3154a4;padding:10px 13px;border:1px solid #cbdaf0;border-radius:9px;font-weight:700}.v26-outline:disabled{opacity:.5}.v26-tablewrap{overflow:auto}.v26-table{width:100%;min-width:650px;border-collapse:collapse;font-size:12px}.v26-table th{text-align:left;padding:11px 8px;background:#f3f6fc;color:#7585a0;white-space:nowrap;font-weight:800}.v26-table td{padding:10px 8px;border-bottom:1px solid #edf1f8;vertical-align:top}.v26-table input,.v26-table select{font:inherit;border:1px solid #dbe4f1;border-radius:7px;padding:7px;max-width:150px;min-width:56px}.v26-table td:first-child{max-width:210px}.v26-code{font-size:10px;color:#275ac1;font-weight:800}.v26-sub{display:block;font-size:11px;color:#7c8aa1;margin-top:3px;line-height:1.5}.v26-money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.v26-totals{max-width:390px;margin:14px 0 5px auto}.v26-totals>div{display:flex;justify-content:space-between;padding:6px 0;gap:12px}.v26-totals strong{font-variant-numeric:tabular-nums}.v26-totals .last{border-top:2px solid #dfe7f2;margin-top:6px;padding-top:11px;font-weight:800;color:#164fbd}.v26-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.v26-tag{display:inline-block;padding:3px 8px;font-size:11px;border-radius:99px;background:#edf7f0;color:#117853;font-weight:700}.v26-tag.wait{background:#fff1da;color:#a3660d}.v26-bank{background:#f9fbff;border:1px solid #e6edf7;border-radius:10px;padding:12px;margin-bottom:9px}.v26-bank strong{font-size:13px}.v26-bank small{display:block;color:#7e8da4;margin:5px 0}.v26-mini-title{color:#6680a8;font-weight:800;font-size:11px;letter-spacing:.5px;margin-bottom:6px}.v26-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.v26-stat{padding:12px;border:1px solid #e2eaf7;border-radius:9px;background:#fafcff}.v26-stat span{display:block;font-size:11px;color:#8090a7}.v26-stat strong{display:block;font-size:21px;margin-top:5px}.v26-status{color:#315bb4;font-weight:700}.v26-rate-table{min-width:720px}.v26-info{margin-top:12px;font-size:12px;color:#718198;line-height:1.7}.v26-modal{border:1px solid #e1e9f4;border-radius:10px;padding:14px;background:#fbfdff;margin-top:10px}.v26-empty{display:grid;place-items:center;border:1px dashed #d2def1;min-height:150px;border-radius:12px;color:#7b89a0;text-align:center;padding:16px}.v26-models{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v26-provider{border:1px solid #d6e2f5;border-radius:12px;padding:16px}.v26-provider h3{margin-bottom:6px}.v26-provider p{font-size:12px;color:#72819a;line-height:1.65}.v26-provider.on{border-color:#3269dc;background:#f7faff}.v26-kb{padding:10px 12px;border-bottom:1px solid #edf1f8}.v26-kb:last-child{border:0}
@media(max-width:1050px){.v26-cols{grid-template-columns:1fr}.v26-models{grid-template-columns:1fr}}@media(max-width:620px){.v26-grid{grid-template-columns:1fr}.v26-grid-3{grid-template-columns:1fr 1fr}.v26-card{padding:13px}.v26-hero h1{font-size:21px}.v26-actions button{flex:1}}
/* Keep assistant available but avoid covering quotation editor, especially mobile. */
.v26-active .assistantBubble{display:none!important}
.v26-active .assistantDock{max-width:70px!important;right:8px!important;bottom:74px!important}
.v26-active .assistantRobot{width:60px!important}

/* ===== id="goku-v27-css" ===== */
/* Goku CRM V2.7 — configurable AI quotation permissions + flexible Excel quote */
.v27-resources{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:linear-gradient(120deg,#f4f8ff,#fff);border:1px solid #dce7f7;border-radius:13px;padding:14px 17px;margin:17px 0 0}
.v27-resources-title{display:flex;align-items:center;gap:10px;font-weight:800;color:#18365b;font-size:14px}
.v27-resources-title small{display:block;font-weight:400;color:#7687a2;font-size:11px;margin-top:3px}
.v27-resource-links{display:flex;gap:9px;flex-wrap:wrap}
.v27-resource{display:inline-flex;align-items:center;gap:7px;border-radius:9px;border:1px solid #d1dff1;background:white;color:#2151ad;text-decoration:none;padding:10px 13px;font-weight:750;font-size:12px;cursor:pointer}
.v27-resource-primary{background:#2359d5;border-color:#2359d5;color:white}
.v27-hero-badge{background:#eaf3ff;border:1px solid #cdddff;border-radius:999px;padding:8px 12px;color:#255abb;font-weight:800;font-size:11px}
.v27-welcome{padding:14px 16px;background:#f6faff;border:1px solid #dce9fb;border-radius:12px;margin-bottom:15px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.v27-pills{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 17px}
.v27-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #cfdcef;background:#fff;color:#345078;border-radius:9px;padding:9px 11px;font-size:12px;font-weight:750;cursor:pointer}
.v27-toggle:has(input:checked){border-color:#3c6fe1;background:#ecf3ff;color:#2352b2}
.v27-toggle input{accent-color:#245dde}
.v27-ratepicker{max-height:270px;overflow:auto;border:1px solid #e1e9f3;border-radius:10px}
.v27-ratepicker>div{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;gap:12px;border-bottom:1px solid #e9edf6}
.v27-ratepicker>div:last-child{border-bottom:none}
.v27-ratepicker strong{font-size:12px;color:#2b3c56}
.v27-ratepicker small{display:block;color:#8190a4;font-size:11px;margin-top:4px}
.v27-ratepicker button{white-space:nowrap}
.v27-quote-table{min-width:920px}
.v27-quote-table input,.v27-quote-table select{max-width:none;width:100%;min-width:60px}
.v27-quote-table input[type=number]{max-width:132px}
.v27-quote-table td{vertical-align:middle}
.v27-quote-table td:nth-child(2){min-width:170px}
.v27-line-name{min-width:190px!important}
.v27-line-desc{min-width:230px!important}
.v27-hint{font-size:12px;color:#7c8b9f;line-height:1.6}
.v27-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:17px 0}
.v27-summary>div{border:1px solid #e3ebf7;background:#fff;border-radius:11px;padding:14px}
.v27-summary small{display:block;color:#7687a0;font-size:11px;font-weight:700}
.v27-summary strong{font-size:19px;display:block;color:#203c69;margin-top:4px}
.v27-flag{background:#fff6e7;border:1px solid #f4d9a3;border-radius:10px;padding:12px;color:#8c5c15;font-size:12px;margin:14px 0;line-height:1.6}
.v27-preview-note{font-size:12px;color:#6c7e95;margin-top:13px}
.v27-mini-link{text-decoration:none;color:#2e5ec4;font-weight:700}
.v27-admin-access{background:#f7faff;padding:15px;border-radius:12px;border:1px solid #dfe9fa;margin:16px 0 0}
.v27-admin-access h3{font-size:14px;margin:0 0 7px;color:#233f69}
.v27-admin-access p{font-size:12px;color:#70829b;line-height:1.6;margin:0 0 13px}
.v27-admin-table{width:100%;border-collapse:collapse;font-size:12px}
.v27-admin-table th{color:#64738d;background:#eef4fd;padding:11px;text-align:center}
.v27-admin-table td{text-align:center;padding:12px;border-bottom:1px solid #e1e9f3}
.v27-admin-table td:first-child{text-align:left;font-weight:800}
.v27-admin-table input{width:18px;height:18px;accent-color:#255dda}
.v27-blank{padding:13px;border-radius:10px;background:#eef8f9;border:1px solid #cde7e5;color:#176a78;font-size:12px;line-height:1.6}
.v27-textarea{font-size:12px;line-height:1.5;min-height:48px;resize:vertical;border:1px solid #dce5f1;border-radius:7px;padding:8px;width:100%;font-family:inherit}
.v27-statusline{font-size:12px;color:#6b7d95;margin-top:12px}
@media(max-width:850px){.v27-summary{grid-template-columns:1fr 1fr}.v27-resources{align-items:stretch}.v27-resource-links{width:100%}.v27-resource{flex:1;justify-content:center}}
@media(max-width:560px){.v27-summary{grid-template-columns:1fr}.v27-resource-links{flex-direction:column}.v27-resources{margin-top:12px}.v27-welcome{padding:11px}.v27-toggle{flex:1 1 40%}}

/* V2.7 uses a full-width quote editor so all financial columns are visible. */
.v27-page .v26-cols{grid-template-columns:1fr!important}
.v27-page .v26-table{min-width:900px}
.v27-page .v27-ratepicker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:330px}
.v27-page .v27-ratepicker>div:nth-last-child(-n+2){border-bottom:0}
@media(max-width:680px){.v27-page .v27-ratepicker{grid-template-columns:1fr}}
/* Keep mobile quote fields unobstructed; assistant remains available on other pages. */
@media(max-width:620px){body.v26-active .assistantDock{display:none!important}}

/* ===== id="goku-v28-css" ===== */
/* V2.8 returns the V2.6 two-column quote UI; only extends its editor and catalog */
.v28-info{display:flex;align-items:flex-start;gap:7px;background:#f4f7ff;border:1px solid #e0e9fa;border-radius:9px;padding:10px 12px;color:#526785;font-size:12px;line-height:1.55}
.v28-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 11px;scrollbar-width:thin;margin-top:10px}
.v28-tabs button{font:inherit;border:1px solid #dce4f2;border-radius:9px;background:#fff;color:#405875;font-weight:700;padding:9px 15px;white-space:nowrap;cursor:pointer}
.v28-tabs button.active{background:#275ed4;color:#fff;border-color:#275ed4}
.v28-form-group{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0 15px}
.v28-service-toggle{border:1px solid #d6e1f1;background:#f7f9fe;border-radius:9px;padding:8px 11px;display:flex;gap:7px;align-items:center;color:#324866;font-size:12px;font-weight:750;cursor:pointer}
.v28-service-toggle input{accent-color:#2863db}
.v28-picker{border:1px solid #e1e8f3;border-radius:9px;overflow:hidden;margin:10px 0;max-height:270px;overflow-y:auto}
.v28-picker-row{padding:10px 12px;display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid #e9edf4}
.v28-picker-row:last-child{border-bottom:0}
.v28-picker-row strong{font-size:12px;line-height:1.4;color:#24364f}
.v28-picker-row small{font-size:11px;color:#8190a4;display:block;margin-top:4px;line-height:1.45}
.v28-picker-row button{border:1px solid #bfd0ed;border-radius:7px;color:#2459ba;background:#fff;padding:6px 9px;cursor:pointer;flex:none;font-weight:750}
.v28-picker-row button:hover{background:#eff5ff}
.v28-split{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.v28-count{display:inline-block;border-radius:100px;background:#eef4ff;padding:4px 8px;color:#345da0;font-weight:750;font-size:11px}
.v28-rate-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:13px 0}
.v28-rate-toolbar input,.v28-rate-toolbar select{border:1px solid #dce4f2;border-radius:9px;padding:10px 12px;min-width:150px;flex:1;background:#fff;color:#293a55}
.v28-rate-table{width:100%;border-collapse:collapse;font-size:12px;min-width:790px}
.v28-rate-table th{background:#e9eef5;color:#49617d;text-align:left;padding:11px 10px;white-space:nowrap}
.v28-rate-table td{padding:10px;border-bottom:1px solid #edf1f7;vertical-align:top;line-height:1.5}
.v28-rate-table td strong{color:#203453;display:block}
.v28-rate-table td small{color:#7b8ba1}
.v28-rate-table td .v28-source{color:#687d98;display:block;font-size:10px}
.v28-wait{color:#99671b;font-weight:700}
.v28-reference{color:#64748b;font-style:italic;font-size:11px}
.v28-draft-table{min-width:760px}
.v28-draft-table th:nth-child(1){min-width:220px}
.v28-draft-table th:nth-child(2){min-width:65px}
.v28-draft-table th:nth-child(3){min-width:145px}
.v28-draft-table th:nth-child(4){min-width:87px}
.v28-draft-table th:nth-child(5){min-width:115px}
.v28-draft-table th:nth-child(6){min-width:125px}
.v28-draft-table td{vertical-align:top}
.v28-draft-table input[type=number]{min-width:68px;width:100%}
.v28-draft-title{display:block;color:#202f48;font-size:13px;font-weight:750;line-height:1.35}
.v28-draft-sub{color:#7c8aa0;font-size:10px;display:block;margin-top:4px}
.v28-desc-edit{width:100%;min-height:34px;max-height:96px;resize:vertical;border:1px solid #edf1f7;border-radius:6px;font-size:11px;background:#fbfcff;color:#66758a;margin-top:6px;padding:5px}
.v28-prices{display:grid;gap:6px;margin-top:12px;max-width:420px;margin-left:auto}
.v28-prices div{display:flex;gap:15px;justify-content:space-between;color:#64758e;font-size:12px}
.v28-prices div b{color:#243850}
.v28-prices .v28-total{border-top:1px solid #dce5f3;padding-top:10px;margin-top:3px;font-weight:800;color:#1d4ec6;font-size:14px}
.v28-prices .v28-total b{color:#1d4ec6}
.v28-flag{margin-top:12px;background:#fff9ed;border:1px solid #f5d8a2;border-radius:8px;padding:10px 12px;color:#926520;font-size:12px}
.v28-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 0}
.v28-pager button{border:1px solid #d5deec;background:white;border-radius:7px;padding:7px 12px;color:#3157a6;cursor:pointer}
.v28-card{background:white;border:1px solid #e1e8f4;border-radius:14px;padding:19px;margin-top:15px}
.v28-doc{font-size:12px;color:#708199;line-height:1.7}
.v28-muted-label{font-size:12px;color:#697d9d;font-weight:700}
.v28-hero{margin-bottom:16px}
.v28-brief .v26-card h3{font-size:16px}
.v28-brief .v26-grid input,.v28-brief .v26-form select,.v28-brief .v26-form textarea{min-width:0}
.v28-noticebar{display:flex;justify-content:space-between;gap:15px;align-items:center;background:#fff;border:1px solid #dfe7f3;border-radius:11px;padding:14px 17px;margin:16px 0}
.v28-noticebar small{display:block;color:#8393a9;margin-top:4px}
@media(max-width:1000px){.v26-cols{grid-template-columns:1fr!important}.v28-rate-toolbar input,.v28-rate-toolbar select{min-width:135px}.v28-brief .v26-card{min-width:0}}

/* ===== id="goku-v29-css" ===== */
/* Goku CRM V2.9 • compact assistant and Zalo OA workspace */
.v29-assistant{position:fixed;z-index:1100;width:68px;height:74px;touch-action:none;user-select:none;-webkit-user-select:none;transition:none}
.v29-assistant.v29-dragging{filter:drop-shadow(0 15px 18px #20345f44)}
.v29-assistant .v29-ai-trigger{width:68px;height:68px;border:2px solid #dbe5f8;border-radius:24px;background:linear-gradient(150deg,#fff,#eaf1ff);box-shadow:0 8px 28px #294b9140;display:grid;place-items:center;padding:3px;cursor:grab;touch-action:none;position:relative}
.v29-assistant .v29-ai-trigger:active{cursor:grabbing}
.v29-assistant .v29-ai-trigger img{width:61px;height:61px;max-width:100%;object-fit:contain;pointer-events:none;animation:v29-bob 4.5s ease-in-out infinite}
.v29-assistant .v29-ai-trigger .v29-ai-count{position:absolute;right:-6px;top:-6px;min-width:22px;height:22px;display:grid;place-items:center;background:#275ee5;color:#fff;border:2px solid white;border-radius:100px;font:800 10px 'Open Sans',Arial,sans-serif}
@keyframes v29-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.v29-assistant .v29-ai-panel{position:absolute;right:calc(100% + 12px);bottom:0;width:305px;max-width:calc(100vw - 90px);background:#fff;border:1px solid #dce7f8;border-radius:17px;box-shadow:0 20px 60px #142b5173;overflow:hidden;touch-action:auto;user-select:text;-webkit-user-select:text}
.v29-assistant.v29-panel-right .v29-ai-panel{right:auto;left:calc(100% + 12px)}
.v29-ai-panel .v29-ai-head{background:linear-gradient(110deg,#1a3c83,#2e65ca);color:white;padding:14px 15px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.v29-ai-panel .v29-ai-head span{display:block;color:#d5e2ff;font-size:11px;margin-top:3px}
.v29-ai-panel .v29-ai-head button{color:#fff;border:0;background:#ffffff24;border-radius:7px;padding:4px 8px}
.v29-ai-panel .v29-ai-body{padding:15px;font-size:12px;line-height:1.65}
.v29-ai-panel .v29-ai-links{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 14px 15px}
.v29-ai-panel .v29-ai-links button{background:#edf3ff;color:#2e56ad;font-weight:700;border:1px solid #d6e3f8;border-radius:9px;padding:9px 6px;font-size:11px}
.v29-ai-panel .v29-ai-grip{color:#a9c3f2;font-size:11px;display:block;padding-top:4px}
.v29-assistant.v29-hide{display:none}
.v29-zalo .v29-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:0 0 14px}
.v29-zalo .v29-hero h1{margin:3px 0 5px;font-size:25px;color:#14243d;letter-spacing:-.7px}
.v29-zalo .v29-hero p{margin:0;color:#74849b;font-size:13px}
.v29-zalo .v29-eyebrow{font-size:10px;letter-spacing:1.5px;color:#315fba;font-weight:800}
.v29-zalo .v29-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.v29-zalo .v29-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dae3f2;padding:9px 14px;border-radius:9px;background:#fff;color:#41618d;font-size:12px;font-weight:750;cursor:pointer}
.v29-zalo .v29-button.primary{background:#275ee4;border-color:#275ee4;color:#fff}
.v29-zalo .v29-badge{display:inline-flex;align-items:center;border-radius:6px;padding:6px 9px;font-size:10px;font-weight:800;border:1px solid #e2e9f3;color:#677d97;background:#f4f7fc}
.v29-zalo .v29-badge.green{color:#11785d;background:#e7f8ef;border-color:#c9f0de}
.v29-zalo .v29-badge.amber{color:#9e6a00;background:#fff3d9;border-color:#ffe7ab}
.v29-zalo .v29-badge.red{color:#bf4e57;background:#ffeef1;border-color:#f9d6dc}
.v29-zalo .v29-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:9px 0 16px}
.v29-zalo .v29-metric{border-radius:13px;background:#fff;border:1px solid #e3eaf5;padding:16px;min-height:102px}
.v29-zalo .v29-metric .label{font-size:11px;color:#7889a3}
.v29-zalo .v29-metric strong{display:block;font-size:25px;margin:8px 0 2px;color:#1f3357}
.v29-zalo .v29-metric small{color:#8c9bb0;font-size:10px}
.v29-zalo .v29-tabs{display:flex;gap:5px;border-bottom:1px solid #e4eaf5;margin-bottom:15px;overflow-x:auto}
.v29-zalo .v29-tabs button{border:0;border-bottom:3px solid transparent;color:#63758e;background:transparent;padding:12px 15px;font-weight:750;white-space:nowrap;font-size:12px}
.v29-zalo .v29-tabs button.active{border-bottom-color:#2860e9;color:#245ed1}
.v29-zalo .v29-panel{border:1px solid #e1e8f4;background:#fff;border-radius:14px;overflow:hidden}
.v29-zalo .v29-inbox{display:grid;grid-template-columns:minmax(270px,36%) minmax(0,1fr);min-height:520px}
.v29-zalo .v29-threadlist{border-right:1px solid #e6ecf5;min-width:0}
.v29-zalo .v29-inbox-tools{padding:14px;border-bottom:1px solid #e7ecf4;display:flex;gap:8px;align-items:center}
.v29-zalo input,.v29-zalo select,.v29-zalo textarea{border:1px solid #d9e3f1;background:#fff;border-radius:9px;color:#253650;min-height:38px;outline:none;padding:9px 11px;font-size:12px;max-width:100%;font-family:inherit}
.v29-zalo input:focus,.v29-zalo textarea:focus,.v29-zalo select:focus{border-color:#4c81e3;box-shadow:0 0 0 3px #4c81e319}
.v29-zalo .v29-inbox-tools input{width:100%;min-width:0}
.v29-zalo .v29-inbox-filter{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid #e7ecf4}
.v29-zalo .v29-inbox-filter button{border-radius:100px;background:#f4f6fa;border:1px solid #e3e7f0;padding:6px 10px;font-size:10px;font-weight:750;color:#687b96}
.v29-zalo .v29-inbox-filter button.active{background:#e8f0ff;border-color:#bbd0fa;color:#315acc}
.v29-zalo .v29-thread{padding:13px 15px;text-align:left;width:100%;border:0;border-bottom:1px solid #edf1f8;background:#fff;display:flex;gap:11px;align-items:flex-start;cursor:pointer}
.v29-zalo .v29-thread.active{background:#eff4ff;border-left:3px solid #3a6ce9;padding-left:12px}
.v29-zalo .v29-thread:hover{background:#f8faff}
.v29-zalo .v29-avatar{width:36px;height:36px;border-radius:12px;background:#e3edff;color:#2c62cc;display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}
.v29-zalo .v29-threadname{display:flex;justify-content:space-between;gap:5px;align-items:center;font-weight:800;font-size:12px;color:#283955;margin-bottom:4px}
.v29-zalo .v29-threadname small{font-weight:500;font-size:10px;color:#8898ad}
.v29-zalo .v29-thread p{margin:0;line-height:1.4;color:#8190a5;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:225px}
.v29-zalo .v29-thread small.v29-tag{display:inline-block;margin-top:7px;border-radius:5px;background:#e3ebfa;color:#5173ad;padding:3px 6px;font-size:9px}
.v29-zalo .v29-chat{min-width:0;display:flex;flex-direction:column}
.v29-zalo .v29-chathead{padding:13px 17px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #e7ecf5;flex-wrap:wrap}
.v29-zalo .v29-chathead strong{font-size:13px}
.v29-zalo .v29-chathead .meta{font-size:10px;color:#8899ae;margin-top:4px}
.v29-zalo .v29-chatmeta{padding:9px 16px;border-bottom:1px solid #e8eef7;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.v29-zalo .v29-chatmeta label{display:flex;align-items:center;gap:5px;color:#7a8aa3;font-size:10px}
.v29-zalo .v29-chatmeta select{padding:6px 24px 6px 8px;min-height:30px;max-width:160px}
.v29-zalo .v29-messages{min-height:290px;max-height:380px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:17px;background:#f8fafe;flex:1}
.v29-zalo .v29-msg{max-width:82%;border-radius:12px 12px 12px 3px;background:#fff;border:1px solid #e0e8f4;padding:11px 12px;color:#33435e;font-size:12px;line-height:1.6;align-self:flex-start;word-break:break-word}
.v29-zalo .v29-msg.out{align-self:flex-end;background:#e7f0ff;border-color:#ccdcf8;border-radius:12px 12px 3px 12px}
.v29-zalo .v29-msg.bot{align-self:flex-end;background:#e6f8f1;border-color:#bfead7;border-radius:12px 12px 3px 12px}
.v29-zalo .v29-msg small{display:block;margin-top:5px;color:#9aa8bb;font-size:9px}
.v29-zalo .v29-write{border-top:1px solid #e9eef6;padding:13px 16px;display:grid;gap:8px}
.v29-zalo .v29-write textarea{resize:vertical;width:100%;min-height:66px}
.v29-zalo .v29-writeActions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.v29-zalo .v29-info{font-size:11px;color:#70829b;line-height:1.65;margin-top:11px}
.v29-zalo .v29-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}
.v29-zalo .v29-segcard{border:1px solid #e2eaf5;background:#fff;border-radius:12px;padding:15px}
.v29-zalo .v29-segcard strong{font-size:13px;color:#233c62}
.v29-zalo .v29-segcard span{display:block;font-size:21px;font-weight:850;color:#2856af;margin:9px 0}
.v29-zalo .v29-segcard small{font-size:10px;color:#8a9bb1}
.v29-zalo .v29-config{padding:18px}
.v29-zalo .v29-formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v29-zalo .v29-formfield{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#71839d;font-weight:750}
.v29-zalo .v29-formfield input,.v29-zalo .v29-formfield select,.v29-zalo .v29-formfield textarea{width:100%}
.v29-zalo .v29-rule{padding:14px;border:1px solid #e6ecf4;background:#f8faff;border-radius:12px;margin:14px 0;line-height:1.65;color:#58708d;font-size:12px}
.v29-zalo .v29-logrow{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #ecf0f7;padding:10px 0;font-size:11px;align-items:center}
.v29-zalo .v29-logrow small{color:#91a0b4}
.v29-zalo .v29-kbrow{display:grid;grid-template-columns:170px 1fr auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #e8edf6;font-size:11px}
.v29-zalo .v29-kbrow strong{color:#23447b}
@media(max-width:1100px){.v29-zalo .v29-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.v29-zalo .v29-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.v29-zalo .v29-inbox{display:flex;flex-direction:column}.v29-zalo .v29-threadlist{border-right:0;border-bottom:1px solid #edf1f9}.v29-zalo .v29-threadcollection{display:flex;overflow-x:auto}.v29-zalo .v29-thread{width:245px;flex:0 0 245px;border-right:1px solid #e5ebf5;border-bottom:0}.v29-zalo .v29-messages{min-height:200px;max-height:270px}.v29-zalo .v29-formgrid{grid-template-columns:1fr}.v29-zalo .v29-cards{grid-template-columns:1fr}.v29-zalo .v29-kbrow{grid-template-columns:1fr}.v29-assistant .v29-ai-panel{right:0;left:auto!important;bottom:calc(100% + 12px);width:min(300px,calc(100vw - 24px))}.v29-assistant.v29-panel-right .v29-ai-panel{left:auto!important;right:0}}

/* ===== id="goku-v30-css" ===== */
/* Goku CRM V3.0: borderless floating assistant and discovery chat */
#v29-assistant{display:none!important}
.v30-robot{position:fixed;z-index:2100;width:86px;height:94px;pointer-events:none;user-select:none;-webkit-user-select:none;}
.v30-robot button{pointer-events:auto;}
.v30-robot-button{width:82px;height:84px;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;display:flex;align-items:center;justify-content:center;padding:0!important;position:relative;cursor:grab;touch-action:none;filter:drop-shadow(0 11px 12px #26487930);}
.v30-robot-button:hover img{transform:translateY(-5px) scale(1.06)}
.v30-robot-button:focus-visible{outline:2px solid #4f76ec!important;border-radius:18px!important}
.v30-robot-button:active{cursor:grabbing}
.v30-robot-button img{width:82px;max-width:100%;height:82px;object-fit:contain;pointer-events:none;animation:v30-float 4s ease-in-out infinite;transition:filter .2s}
@keyframes v30-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.v30-counter{position:absolute;right:-4px;top:1px;display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:40px;background:#db283b;color:white;border:3px solid white;box-shadow:0 5px 14px #cb132f50;font-weight:900;font-size:12px;z-index:3;animation:v30-attention 2.7s ease-in-out infinite}
@keyframes v30-attention{0%,82%,100%{transform:scale(1)}90%{transform:scale(1.13)}}
.v30-float-label{pointer-events:none;position:absolute;top:77px;left:50%;transform:translateX(-50%);background:#1f3765ed;color:#fff;border-radius:20px;padding:4px 9px;white-space:nowrap;font-size:10px;font-weight:800;box-shadow:0 4px 11px #09285329}
.v30-notice{position:fixed;z-index:2098;width:min(328px,calc(100vw - 25px));border:1px solid #dce7f8;border-radius:16px;background:#fff;box-shadow:0 18px 46px #20345235;overflow:hidden;max-height:min(340px,55vh);font-size:12px;color:#273854}
.v30-notice-head{background:linear-gradient(110deg,#1a3c83,#2e65ca);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;gap:12px}
.v30-notice-title{display:flex;align-items:center;gap:9px;color:#fff;font-size:12.5px;font-weight:800;min-width:0}
.v30-notice-title small{display:block;font-size:10px;color:#d8e7ff;font-weight:600;margin-top:2px}
.v30-bell{font-size:18px;color:#fff;background:#ffffff25;border-radius:9px;display:grid;place-items:center;height:31px;width:31px;flex-shrink:0}
.v30-notice-close{border:0!important;background:#ffffff25;color:white;border-radius:8px;min-width:27px;height:27px;cursor:pointer;font-weight:800;font-size:17px}
.v30-notice-content{padding:13px 15px 0}
.v30-notice-main{line-height:1.65;color:#455571;font-size:12px}
.v30-notice-main strong.v30-count-text{color:#cd3044;font-weight:850;background:transparent!important;padding:0!important;border:0!important}
.v30-due-note{color:#718097;font-weight:700}
.v30-notice-row{margin-top:9px;font-size:12px;color:#61708a;border-top:1px solid #e9eef7;padding-top:10px;display:flex;flex-direction:column;gap:4px}
.v30-notice-row>span{font-size:10px;color:#718098;font-weight:700}
.v30-notice-row .v30-task-title{color:#cc3044;font-size:12px;font-weight:750;background:transparent!important;border:0!important;padding:0!important;border-radius:0!important;line-height:1.5}
.v30-notice .v30-red{background:transparent!important;color:#cc3044!important;padding:0!important}
.v30-notice-actions{display:flex;gap:8px;margin:13px 15px 14px}
.v30-notice-actions button{flex:1;border:1px solid #dce5f1;background:#f6f9ff;color:#3159aa;font-size:11px;font-weight:800;padding:9px 10px;border-radius:8px;cursor:pointer}
.v30-notice-actions .v30-primary{border-color:#2a5fc4;background:#2a5fc4;color:#fff}
.v30-chat{position:fixed;z-index:2110;width:min(445px,calc(100vw - 24px));height:min(680px,calc(100dvh - 32px));display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 24px 72px #11264b5c;border:1px solid #dbe5f2;font-size:12px;color:#25334c}
.v30-chat *{box-sizing:border-box}
.v30-chat-head{padding:13px 15px;background:linear-gradient(115deg,#152f61,#315fc8);color:white;display:flex;gap:9px;align-items:center}
.v30-head-icon{background:#ffffff24;width:33px;height:33px;display:grid;place-items:center;border-radius:10px;font-size:17px;flex:none}
.v30-chat-head h3{font-size:14px;color:#fff;margin:0 0 4px;font-weight:850}
.v30-chat-head p{font-size:10px;color:#dce8ff;margin:0}
.v30-chat-head .v30-x{margin-left:auto;align-self:flex-start;border:0;background:#ffffff26;color:white;font-size:17px;width:27px;height:27px;border-radius:8px;cursor:pointer}
.v30-mode{display:flex;align-items:center;gap:8px;justify-content:space-between;background:#f0f5ff;padding:8px 12px;border-bottom:1px solid #dce7f5}
.v30-mode small{color:#5b6b87;font-size:10px;font-weight:700}
.v30-mode select,.v30-mode button{border:1px solid #d3dfec;background:white;border-radius:8px;padding:6px 9px;font-size:11px;color:#234272}
.v30-toolbar{display:flex;gap:0;border-bottom:1px solid #e7edf5;flex-shrink:0;}
.v30-toolbar button{flex:1;border:0;border-bottom:2px solid transparent;background:#fff;color:#65758e;padding:11px 2px;font-size:11px;font-weight:750}
.v30-toolbar button.on{color:#2f5cd2;border-bottom-color:#2f5cd2;background:#f8faff}
.v30-chat-scroll{flex:1;overflow:auto;background:#fbfcff;padding:15px;scrollbar-width:thin;min-height:0}
.v30-msg{display:flex;margin:8px 0;}
.v30-msg.user{justify-content:flex-end}
.v30-msg .bubble{max-width:92%;border:1px solid #e0e7f4;background:#fff;border-radius:13px 13px 13px 4px;padding:10px 12px;line-height:1.6;font-size:12px;white-space:pre-wrap;word-break:break-word}
.v30-msg.user .bubble{background:#eaf1ff;border-color:#d5e2ff;border-radius:13px 13px 4px 13px;color:#214c9b}
.v30-msg .bubble em{color:#ce2e4d;font-style:normal;font-weight:800}
.v30-msg .bubble small{display:block;color:#8292a6;font-size:10px;margin-top:6px}
.v30-msg.api .bubble{border-left:3px solid #4974e0}
.v30-missing{border:1px solid #ebdfc0;border-radius:12px;background:#fffcf3;padding:11px;margin:10px 0;font-size:11px;line-height:1.55;color:#665638}
.v30-missing strong{color:#ad7615}
.v30-progress{height:6px;background:#e8effa;border-radius:12px;overflow:hidden;margin:8px 0}
.v30-progress span{display:block;height:100%;background:#3b6ee8;transition:width .2s}
.v30-promptbuttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.v30-promptbuttons button{border:1px solid #dbe6f5;background:#fff;color:#315dba;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:750}
.v30-inputarea{border-top:1px solid #e0e8f3;background:white;padding:10px 12px 12px;display:flex;gap:8px;align-items:flex-end}
.v30-inputarea textarea{resize:vertical;min-height:43px;max-height:100px;flex:1;background:#f8fafd;border:1px solid #dce5f2;border-radius:10px;padding:10px;font:inherit;line-height:1.45;color:#243855}
.v30-send{background:#2b60d4;color:white;border:none;border-radius:9px;padding:11px 12px;font-size:11px;font-weight:850;min-height:43px}
.v30-footer{display:flex;gap:7px;padding:8px 12px 11px;background:white;border-top:1px solid #f2f4fa}
.v30-footer button{flex:1;background:#eff4ff;color:#2c55a3;border:1px solid #d9e4f7;border-radius:8px;padding:9px 5px;font-size:10px;font-weight:800}
.v30-footer button.v30-ready{color:white;background:#1a9c76;border-color:#1a9c76}
.v30-brief-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v30-brief-form label{display:flex;flex-direction:column;gap:5px;color:#566784;font-size:10px;font-weight:800;min-width:0}
.v30-brief-form label.wide{grid-column:1/-1}
.v30-brief-form input,.v30-brief-form select,.v30-brief-form textarea{width:100%;background:#fff;border:1px solid #dce5f1;border-radius:8px;padding:9px;color:#243751;min-width:0;font:inherit;line-height:1.3;font-weight:450;}
.v30-brief-form textarea{min-height:74px;resize:vertical}
.v30-brief-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.v30-brief-actions button{border:0;border-radius:9px;background:#3063d3;color:#fff;padding:10px 12px;font-size:11px;font-weight:850}
.v30-brief-actions .outline{background:#fff;border:1px solid #cedbf2;color:#3d5eab}
.v30-form-help{font-size:11px;color:#63748d;line-height:1.6;margin:0 0 12px}
.v30-servicechecks{display:flex;flex-wrap:wrap;gap:7px}
.v30-servicechecks label{width:auto;display:inline-flex;flex-direction:row;align-items:center;gap:6px;background:#eef3ff;padding:7px 9px;border-radius:8px;font-weight:700}
.v30-servicechecks input{width:auto;accent-color:#2d5fca}
.v30-summary-table{display:grid;grid-template-columns:115px 1fr;gap:5px 8px}
.v30-summary-table span{color:#697e99;font-size:10px}
.v30-summary-table strong{font-size:11px;color:#253d68;overflow-wrap:anywhere}
.v30-account-chip{margin-left:auto;font-size:10px;color:#cadcfb;border:1px solid #ffffff4d;padding:4px 7px;border-radius:7px}
.v30-oa-card{border:1px solid #cfdef6;border-radius:12px;background:#f5f9ff;padding:14px;margin-top:12px;color:#344566;font-size:12px;line-height:1.65}
.v30-oa-card strong{color:#1e4e9a}
.v30-oa-card a{color:#315fbe;text-decoration:underline}
@media(max-width:640px){
 .v30-chat{left:10px!important;right:10px!important;top:10px!important;bottom:95px!important;width:auto!important;height:auto!important;max-height:none!important;border-radius:15px}
 .v30-notice{left:10px!important;right:10px!important;top:auto!important;bottom:192px!important;width:auto!important;max-height:40vh}
 .v30-robot{z-index:2105}
 .v30-brief-form{grid-template-columns:1fr 1fr}
}

/* ===== id="goku-v31-style" ===== */
/* Goku CRM V3.1 · Ratecard manager + single caret */
select:not([multiple]){
  appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%235b718b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-size:15px 15px!important;
  background-position:right 13px center!important;padding-right:42px!important;
}
.v31-rate {font-family:'Open Sans',Arial,sans-serif;color:#1d2a42}
.v31-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.v31-top h2{margin:0 0 5px;font-size:20px;letter-spacing:-.3px}.v31-top p{font-size:12px;color:#72839c;margin:0;line-height:1.8}
.v31-actions,.v31-mini-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.v31-btn{border:1px solid #d2def1;background:#fff;color:#2c4e89;padding:9px 13px;border-radius:9px;font-size:12px;font-weight:700;min-height:38px;display:inline-flex;align-items:center;gap:7px;justify-content:center;cursor:pointer}
.v31-btn:hover{background:#eef4ff;border-color:#b5c9ed}.v31-btn.primary{background:#245ad5;color:#fff;border-color:#245ad5}.v31-btn.primary:hover{background:#1a49b9}.v31-btn.warn{border-color:#f2c6cb;color:#b72e43}.v31-btn.warn:hover{background:#fff1f3}.v31-btn:disabled{opacity:.4;cursor:not-allowed}
.v31-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.v31-stat{border:1px solid #e3eaf5;background:#fbfcff;border-radius:12px;padding:14px}.v31-stat b{font-size:22px;display:block;color:#1e417e}.v31-stat span{font-size:11px;color:#7387a5;font-weight:700}
.v31-flex{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.v31-groupchip{border-radius:19px;padding:7px 12px;border:1px solid #dde7f5;background:#fff;font-size:12px;color:#526889;font-weight:700;cursor:pointer}.v31-groupchip.active{background:#e8f0ff;border-color:#85a5e8;color:#1f57bc}.v31-groupchip small{font-size:10px;color:#8091aa;margin-left:5px}
.v31-groupcreate{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.v31-groupcreate input{width:200px}
.v31-filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0}.v31-filters input,.v31-filters select,.v31-groupcreate input{height:39px;border:1px solid #d9e3f2;border-radius:9px;background-color:#fff;color:#253a57;padding:8px 12px;font:inherit;font-size:12px}.v31-filters input{flex:1 1 230px}.v31-filters select{min-width:165px}.v31-separator{height:1px;background:#e8eef7;margin:16px 0}
.v31-tablewrap{overflow-x:auto;border:1px solid #e1e9f4;border-radius:12px}
.v31-table{border-collapse:collapse;width:100%;min-width:950px;text-align:left}.v31-table th{font-size:11px;font-weight:800;white-space:nowrap;background:#f2f6fb;color:#60748f;padding:13px 11px}.v31-table td{border-top:1px solid #ebf0f8;padding:12px 11px;font-size:12px;vertical-align:middle}.v31-table tr:hover td{background:#fbfcff}.v31-table td strong{font-size:12px}.v31-table small{display:block;color:#8796a9;line-height:1.5;margin-top:4px;max-width:400px}.v31-table input[type=checkbox]{height:16px;width:16px;accent-color:#285ed6;cursor:pointer}
.v31-codes{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#365f9b;font-size:11px;font-weight:800;white-space:nowrap}.v31-badge{display:inline-flex;padding:4px 8px;border-radius:99px;background:#e8f1ff;color:#245aa9;font-size:11px;font-weight:700;white-space:nowrap}.v31-badge.wait{color:#996215;background:#fff3d8}.v31-muted{font-size:12px;color:#8190a5}.v31-err{color:#af354b;font-size:12px}.v31-note{background:#f4f8fd;border:1px solid #e4ebf5;border-radius:10px;padding:12px 14px;color:#5a708d;font-size:12px;line-height:1.7;margin-top:13px}
.v31-pager{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}.v31-pager button{background:#fff;border:1px solid #d5e2f2;padding:8px 13px;border-radius:8px;color:#3d5d94;cursor:pointer}
.v31-modalwrap{position:fixed;inset:0;background:rgba(17,33,59,.6);z-index:12000;display:flex;align-items:center;justify-content:center;padding:16px}.v31-modal{background:#fff;border-radius:17px;max-width:800px;width:100%;max-height:90vh;overflow:auto;padding:23px;box-shadow:0 25px 70px #10204840}.v31-modal h2{margin:0;font-size:19px}.v31-modal p{color:#7688a2;font-size:12px;line-height:1.7}.v31-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v31-grid label{font-size:12px;font-weight:700;color:#596c89;display:flex;flex-direction:column;gap:6px}.v31-grid label.full{grid-column:1/-1}.v31-grid input,.v31-grid select,.v31-grid textarea{padding:10px 12px;border:1px solid #d8e2f1;border-radius:9px;font-size:13px;max-width:100%;background-color:#fff;color:#253a57}.v31-grid textarea{min-height:100px;resize:vertical}
.v31-uploader{border:1px dashed #9cb2d3;background:#f7faff;border-radius:12px;padding:15px;margin:13px 0}.v31-uploader input{max-width:100%}.v31-import-summary{font-size:12px;background:#f2f6fc;padding:11px;border-radius:9px;margin:14px 0}.v31-import-preview{max-height:270px;overflow:auto;border:1px solid #e5eaf4;border-radius:10px}.v31-import-preview table{border-collapse:collapse;width:100%;font-size:11px}.v31-import-preview th,.v31-import-preview td{border-bottom:1px solid #edf1f8;text-align:left;padding:8px 10px;vertical-align:top}.v31-import-preview th{position:sticky;top:0;background:#f2f6fd;color:#5e708a}
@media(max-width:800px){.v31-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.v31-top{flex-direction:column}.v31-groupcreate{margin:0;width:100%}.v31-filters input,.v31-filters select{flex:1 1 180px}.v31-grid{grid-template-columns:1fr}.v31-modal{padding:16px}.v31-actions>*{flex:1}.v31-top .v31-actions{width:100%}}
