/* ==========================================================================
   GLS Films DMS - design system
   Same layout and component language as the MG Aftersales portal: deep navy navigation,
   light canvas, one brand colour (teal) for identity and primary actions.
   ========================================================================== */

:root{
  --navy-900:#0A1424; --navy-800:#12213A; --navy-700:#24344F;
  --canvas:#F4F6F9; --card:#FFFFFF; --line:#E3E8EF; --line-soft:#EEF1F6; --surface-2:#F7F9FC; --surface:var(--card);
  --ink:#0F1E2E; --ink-2:#41536A; --ink-3:#7A8CA3; --ink-inv:#EAF1F8;
  --brand:#0E7C86; --brand-rgb:14,124,134; --brand-dark:#0A6169; --brand-soft:#E6F4F5; --brand-line:#B5DDE0;
  --good:#1E9E6A; --good-soft:#E6F5EF; --good-ink:#16704C;
  --warn:#E0A02C; --warn-soft:#FDF3E1; --warn-ink:#9A6A10;
  --bad:#D24A44;  --bad-soft:#FBECEB;  --bad-ink:#A8322D;
  --info:#2C6FB8; --info-soft:#E9F1FA; --info-ink:#1F568F;
  --row-hover:#F7F9FC;
  --radius:12px; --radius-sm:8px;
  --shadow:0 1px 2px rgba(16,32,48,.06), 0 4px 14px rgba(16,32,48,.05);
  --shadow-lg:0 18px 50px rgba(10,25,40,.22);
  --sidebar-w:232px;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --canvas:#0B0D10; --card:#14171C; --line:#262B33; --line-soft:#1D2128; --surface-2:#181C22; --surface:var(--card);
  --ink:#E8EDF3; --ink-2:#AAB6C4; --ink-3:#77869A;
  --brand:#3FBFC9; --brand-rgb:63,191,201; --brand-dark:#0E7C86; --brand-soft:#0F2A2D; --brand-line:#1D4A4F;
  --good-soft:#12291F; --good-ink:#6FD6A8; --warn-soft:#2B2210; --warn-ink:#F0C060;
  --bad-soft:#2E1514; --bad-ink:#FF9A94; --info-soft:#13233A; --info-ink:#8DBBEF;
  --row-hover:#1A1E25;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 4px 14px rgba(0,0,0,.3);
  color-scheme:dark;
}

*{box-sizing:border-box}
/* "hidden" must win over component display rules such as .btn{display:inline-flex} */
[hidden]{display:none !important}
html,body{margin:0;padding:0}
body{
  font-family:"Segoe UI Variable Display","Segoe UI",Inter,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  background:var(--canvas); color:var(--ink); font-size:13.5px; line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}
.i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ============================== LAYOUT ================================== */
.app{display:flex;min-height:100vh}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.canvas{flex:1;padding:16px 20px 20px;width:100%}

/* ============================== SIDEBAR ================================= */
.sidebar{
  width:var(--sidebar-w);flex:0 0 var(--sidebar-w);
  background:linear-gradient(178deg,var(--navy-800) 0%,var(--navy-900) 100%);
  color:var(--ink-inv);display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;transition:width .2s,flex-basis .2s;z-index:50;
}
.brand{display:flex;gap:9px;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.07);min-height:54px}
.brand img{width:32px;height:32px;flex:0 0 32px;object-fit:contain}
/* the black logo is for light surfaces; flip it in dark mode */
:root[data-theme="dark"] .logo-dark{filter:invert(1)}
.brand-name{font-weight:600;font-size:14px;letter-spacing:.01em;white-space:nowrap}
.brand-sub{font-size:10px;color:#8FA6C0;letter-spacing:.08em;text-transform:uppercase;margin-top:0;white-space:nowrap;font-size:9px}
.nav{flex:1;overflow-y:auto;padding:8px 8px 10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
.nav-item,.nav-group-btn{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;
  padding:8px 10px;border-radius:8px;color:#C3D2E0;font-size:13px;margin-bottom:2px;
  transition:background .13s,color .13s;text-decoration:none;
}
.nav-item:hover,.nav-group-btn:hover{background:rgba(255,255,255,.06);color:#fff;text-decoration:none}
.nav-item.active{background:rgba(14,124,134,.18);color:#fff;box-shadow:inset 3px 0 0 #0E7C86}
.nav-item .i,.nav-group-btn .i{width:17px;height:17px;opacity:.9}
.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-group-btn .chev{width:14px;height:14px;transition:transform .15s;opacity:.6}
.nav-group.open .chev{transform:rotate(90deg)}
.nav-children{display:none;padding-left:14px;margin:0 0 4px 8px;border-left:1px solid rgba(255,255,255,.08)}
.nav-group.open .nav-children{display:block}
.nav-children .nav-item{font-size:12.8px;padding:7px 10px}
.soon{font-size:9px;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(255,255,255,.18);
  color:#93A6BA;border-radius:10px;padding:1px 6px;flex:0 0 auto}
.sidebar-foot{padding:10px 14px;border-top:1px solid rgba(255,255,255,.07);font-size:10px;line-height:1.6;
  color:#5D738C;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;overflow:hidden}

/* collapsed: icons only */
.app.collapsed .sidebar{width:68px;flex-basis:68px}
.app.collapsed .brand{justify-content:center;padding:16px 10px}
.app.collapsed .brand-text,.app.collapsed .nav-label,.app.collapsed .soon,
.app.collapsed .chev,.app.collapsed .sidebar-foot{display:none}
.app.collapsed .nav-item,.app.collapsed .nav-group-btn{justify-content:center;padding:10px}
.app.collapsed .nav-children{padding-left:0;margin-left:0;border-left:0}

/* ============================== TOPBAR ================================== */
.topbar{
  background:var(--card);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:12px;padding:7px 20px;position:sticky;top:0;z-index:40;min-height:54px;
}
.icon-btn{
  width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);
  background:var(--card);border-radius:9px;color:var(--ink-2);flex:0 0 34px;
}
.icon-btn:hover{border-color:var(--ink-3);color:var(--ink)}
.icon-btn .i{width:17px;height:17px}
/* link to the module's shared comparison page, beside the light / dark button */
.share-btn{position:relative}
.sharemenu{position:relative}
.sharemenu>summary{list-style:none;display:inline-flex;align-items:center;justify-content:center}
.sharemenu>summary::-webkit-details-marker{display:none}
.sharepanel{position:absolute;right:0;top:calc(100% + 8px);width:340px;background:var(--card);
  border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:6px;z-index:60}
.sharehead{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:8px 10px 6px}
.shareitem{display:block;padding:8px 10px;border-radius:7px;text-decoration:none;color:inherit}
.shareitem:hover{background:var(--panel-2,rgba(127,127,127,.09))}
.shareitem .st{display:block;font-size:13px;font-weight:600}
.shareitem .sd{display:block;font-size:11px;color:var(--ink-3);margin-top:1px}
.share-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  background:#c2410c;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}
.tenant{display:flex;align-items:center;gap:8px}
.tenant-dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.tenant-name{font-weight:600;font-size:13.5px}
.tenant-tag{font-size:10.5px;color:var(--warn-ink);background:var(--warn-soft);border:1px solid #F1D9A8;border-radius:5px;padding:1px 7px}
.topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.ai-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:9px;background:#0E7C86;color:#fff;
  font-weight:600;font-size:13px;text-decoration:none;box-shadow:0 2px 8px rgba(14,124,134,.28);white-space:nowrap}
.ai-btn:hover{background:#0A6169;color:#fff}
.ai-btn .i{width:16px;height:16px;fill:currentColor;stroke:none}
@media (max-width:700px){.ai-btn span{display:none}.ai-btn{padding:0 9px}}
.usermenu{position:relative}
.user-btn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:11px;padding:4px 10px 4px 4px}
.user-btn:hover{border-color:var(--ink-3)}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px}
.user-meta{display:flex;flex-direction:column;text-align:left;line-height:1.25}
.user-name{font-weight:600;font-size:12.6px}
.user-role{font-size:10.5px;color:var(--ink-3)}
.user-pop{
  position:absolute;right:0;top:calc(100% + 6px);width:250px;background:var(--card);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;z-index:60;
}
.user-pop[hidden]{display:none}
.up-head{padding:8px 10px 10px;border-bottom:1px solid var(--line-soft);margin-bottom:6px}
.up-name{font-weight:600}
.up-sub{font-size:11.5px;color:var(--ink-3);word-break:break-all}
.up-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;background:none;border-radius:8px;color:var(--ink);text-align:left;font-size:13px}
.up-item:hover{background:var(--surface-2);text-decoration:none}

/* ============================== PAGE ==================================== */
.crumb{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--ink-3);margin-bottom:6px}
.crumb b{color:var(--brand);font-weight:600}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.page-title{font-size:21px;font-weight:600;letter-spacing:-.02em}
.page-sub{font-size:12.8px;color:var(--ink-2);margin-top:4px;max-width:820px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.card-title{font-size:13.5px;font-weight:600}
.card-note{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.card-body{padding:16px}
.grid{display:grid;gap:14px;margin-bottom:14px}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.g-32{grid-template-columns:3fr 2fr}
@media(max-width:1240px){.g-5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.g-2,.g-32{grid-template-columns:1fr}.g-5{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ============================== BUTTONS / FORMS ========================= */
.btn{
  display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--ink);
  padding:7px 14px;border-radius:8px;font-size:13px;font-weight:500;white-space:nowrap;text-decoration:none;
  transition:background .13s,border-color .13s,box-shadow .13s,transform .1s;
}
.btn:hover{border-color:var(--ink-3);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn .i{width:15px;height:15px}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 10px rgba(var(--brand-rgb),.28)}
.btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);box-shadow:0 6px 18px rgba(var(--brand-rgb),.36)}
.btn-ghost{background:transparent}
.btn-danger{color:var(--bad-ink);border-color:var(--bad-soft);background:var(--bad-soft)}
.btn-danger:hover{border-color:var(--bad)}
.btn-sm{padding:5px 10px;font-size:12px;border-radius:7px}
.btn-block{width:100%;justify-content:center;padding:9px 14px;font-size:13.5px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.form-grid .full{grid-column:1/-1}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px}
.field>span,.lbl{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.field .req{color:var(--brand)}
.input,select.input,textarea.input{
  width:100%;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:8px 11px;font-size:13.5px;
  transition:border-color .13s,box-shadow .13s;
}
.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.14)}
.input[readonly]{background:var(--surface-2);color:var(--ink-2)}
.hint{font-size:11px;color:var(--ink-3)}
.check{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;user-select:none}
.check input{width:16px;height:16px;accent-color:var(--brand)}
.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}

/* ============================== ALERTS ================================== */
.alert{display:flex;gap:8px;align-items:center;padding:9px 14px;border-radius:9px;font-size:13px;margin-bottom:12px;border:1px solid}
.alert .i{margin-top:1px}
.alert-success{background:var(--good-soft);color:var(--good-ink);border-color:#BFE3D2}
.alert-error{background:var(--bad-soft);color:var(--bad-ink);border-color:#F3C7C4}
.alert-info{background:var(--info-soft);color:var(--info-ink);border-color:#C6DDF3}
.alert-warn{background:var(--warn-soft);color:var(--warn-ink);border-color:#F1D9A8}
:root[data-theme="dark"] .alert{border-color:transparent}

/* ============================== TABLE =================================== */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.toolbar .search{position:relative}
.toolbar .search .i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.toolbar .search .input{padding-left:30px;width:240px}
.toolbar select.input{width:auto;min-width:120px;max-width:190px}
.table-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{
  text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
  padding:9px 14px;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;
}
.tbl td{padding:8px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.tbl tbody tr:hover{background:var(--row-hover)}
.tbl .center{text-align:center}
.tbl .right{text-align:right}
.ucell{display:flex;align-items:center;gap:8px}
.ucell .avatar{width:28px;height:28px;font-size:11px;background:var(--navy-700)}
.ucell b{font-weight:600}
.ucell small{color:var(--ink-3);font-size:11.5px;margin-left:6px}
.muted{color:var(--ink-3)}
.row-actions{display:flex;gap:4px;justify-content:flex-end}
.row-actions form{display:inline}
.act{width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;background:none;border-radius:7px;color:var(--ink-2)}
.act:hover{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
.act.danger:hover{color:var(--bad);border-color:var(--bad-soft);background:var(--bad-soft)}
.empty{padding:18px;text-align:center;color:var(--ink-3)}

.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;border-radius:20px;padding:2px 9px;white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.plain::before{display:none}
.b-good{background:var(--good-soft);color:var(--good-ink)}
.b-bad{background:var(--bad-soft);color:var(--bad-ink)}
.b-warn{background:var(--warn-soft);color:var(--warn-ink)}
.b-info{background:var(--info-soft);color:var(--info-ink)}
.b-brand{background:var(--brand-soft);color:var(--brand-dark)}
:root[data-theme="dark"] .b-brand{color:var(--brand)}

.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.pages{display:flex;gap:4px}
.pages a,.pages span{min-width:30px;height:30px;display:grid;place-items:center;padding:0 8px;border-radius:8px;border:1px solid var(--line);color:var(--ink-2);background:var(--card)}
.pages a:hover{border-color:var(--ink-3);text-decoration:none;color:var(--ink)}
.pages .on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.pages .off{opacity:.45}
.pager select.input{width:auto;padding:5px 8px}

/* ============================== TABS ==================================== */
.tabs{display:flex;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px;width:max-content;max-width:100%;overflow-x:auto;margin-bottom:12px}
.tab{display:flex;align-items:center;gap:7px;padding:7px 14px;font-size:13px;color:var(--ink-2);border-radius:10px;white-space:nowrap;text-decoration:none}
.tab:hover{color:var(--ink);background:rgba(var(--brand-rgb),.06);text-decoration:none}
.tab.on{color:var(--brand);font-weight:600;background:var(--card);box-shadow:0 1px 3px rgba(16,32,48,.1),0 0 0 1px rgba(var(--brand-rgb),.16)}
.tab .i{width:15px;height:15px}
.tab .cnt{font-size:10px;background:var(--line-soft);color:var(--ink-3);padding:1px 7px;border-radius:10px;font-weight:600}

/* ============================== MODAL =================================== */
.modal{position:fixed;inset:0;background:rgba(8,12,18,.55);display:grid;place-items:center;z-index:100;padding:16px;backdrop-filter:blur(2px)}
.modal[hidden]{display:none}
.modal-card{background:var(--card);border-radius:14px;box-shadow:var(--shadow-lg);width:100%;max-width:460px;border:1px solid var(--line)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line-soft)}
.modal-head h3{font-size:15px}
.modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line-soft)}

/* ============================== ACCESS MATRIX =========================== */
.matrix td.grp{background:var(--surface-2);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.matrix td.child{padding-left:30px}
.matrix .mod{display:flex;align-items:center;gap:10px}
.matrix .mod .i{color:var(--ink-3)}
.matrix input[type=checkbox]{width:17px;height:17px;accent-color:var(--brand);cursor:pointer}
.matrix input[disabled]{cursor:not-allowed}

/* ============================== AUTH PAGES ============================== */
.auth{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
.auth-brand{
  position:relative;overflow:hidden;color:#EAF1F8;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;
  background:radial-gradient(1000px 500px at 85% -10%,rgba(14,124,134,.38),transparent 60%),
             radial-gradient(700px 500px at -10% 110%,rgba(14,124,134,.18),transparent 60%),
             linear-gradient(160deg,#16294A 0%,#0A1424 100%);
}
.auth-brand::after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;
  background:url("../img/logo-white.svg") center/contain no-repeat;opacity:.06;transform:rotate(-12deg)}
.ab-logo{display:flex;align-items:center;gap:14px}
.ab-logo img{width:54px;height:54px;object-fit:contain}
.ab-logo b{display:block;font-size:18px;font-weight:600}
.ab-logo small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8EA2B8}
.auth-brand h1{font-size:40px;line-height:1.12;letter-spacing:-.03em;margin:0 0 16px;font-weight:600}
.auth-brand h1 span{color:#3FBFC9}
.auth-brand p{color:#B4C1CE;max-width:470px;font-size:14.5px;line-height:1.6;margin:0 0 22px}
.ab-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;font-size:13.5px;color:#CBD5E0}
.ab-list li{display:flex;gap:10px;align-items:center}
.ab-list i{width:22px;height:22px;border-radius:50%;background:rgba(14,124,134,.22);color:#7FD6DD;display:grid;place-items:center;font-style:normal;font-size:12px}
.ab-foot{font-size:11px;color:#6F8297;letter-spacing:.05em}
.auth-panel{display:grid;place-items:center;padding:40px 24px;background:var(--canvas)}
.auth-card{width:100%;max-width:410px}
.auth-card h2{font-size:24px;letter-spacing:-.02em;margin-bottom:6px}
.auth-card .lede{color:var(--ink-2);margin:0 0 24px;font-size:13.5px}
.auth-card form{display:flex;flex-direction:column;gap:16px}
.auth-card .input{padding:11px 13px;font-size:14px}
.auth-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px}
.auth-foot{margin-top:28px;font-size:11.5px;color:var(--ink-3);text-align:center}
.pw-wrap{position:relative}
.pw-wrap .input{padding-right:42px}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--ink-3);font-size:11px;font-weight:600;padding:6px}
.pw-toggle:hover{color:var(--ink)}
.mobile-logo{display:none}
@media(max-width:900px){
  .auth{grid-template-columns:1fr}
  .auth-brand{display:none}
  .mobile-logo{display:flex;align-items:center;gap:10px;margin-bottom:22px}
  .mobile-logo img{width:40px;height:40px}
}

/* ============================== DASHBOARD =============================== */
.hero{
  position:relative;overflow:hidden;border-radius:16px;padding:22px 26px;margin-bottom:14px;color:#EAF1F8;
  background:radial-gradient(800px 300px at 0% 0%,rgba(14,124,134,.28),transparent 60%),linear-gradient(135deg,#16294A,#0A1424);
  display:flex;gap:28px;align-items:center;box-shadow:var(--shadow-lg);
}
.hero-body{flex:1;min-width:0}
.hero-eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#C6CCD4;display:flex;align-items:center;gap:8px;margin-bottom:14px;font-weight:600}
.hero-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:#3FBFC9;box-shadow:0 0 0 4px rgba(63,191,201,.2)}
.hero-stats{display:flex;gap:26px;flex-wrap:wrap}
.hs{min-width:0}
.hs + .hs{padding-left:26px;border-left:1px solid rgba(255,255,255,.1)}
.hs-l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#93A2B3;font-weight:600}
.hs-v{font-size:30px;font-weight:600;letter-spacing:-.03em;margin:4px 0 4px}
.hs-v small{font-size:14px;color:#AAB6C4;margin-left:3px;font-weight:500}
.hs-v.bad{color:#FF9A94}.hs-v.good{color:#6FD6A8}
.hs-s{font-size:11.5px;color:#AAB6C4}
.pill{display:inline-block;font-size:10.5px;border-radius:12px;padding:2px 9px;font-weight:600}
.pill.bad{background:rgba(210,74,68,.22);color:#FF9A94;border:1px solid rgba(255,154,148,.3)}
.pill.good{background:rgba(30,158,106,.2);color:#6FD6A8;border:1px solid rgba(111,214,168,.3)}
.hero-bar{height:5px;border-radius:5px;background:rgba(255,255,255,.1);margin:18px 0 8px;max-width:560px;overflow:hidden}
.hero-bar span{display:block;height:100%;background:linear-gradient(90deg,#0E7C86,#3FBFC9);border-radius:5px}
.ring{position:relative;width:132px;height:132px;flex:0 0 132px}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring-v{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.ring-v b{font-size:24px;font-weight:600;display:block;letter-spacing:-.02em}
.ring-v small{font-size:10px;color:#93A2B3}
.ring-l{text-align:center;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#93A2B3;margin-top:6px;font-weight:600}
.kpi{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent,var(--brand))}
.kpi.k-bad{--accent:var(--bad)}.kpi.k-warn{--accent:var(--warn)}.kpi.k-good{--accent:var(--good)}.kpi.k-info{--accent:var(--info)}
.kpi-l{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.kpi-v{font-size:26px;font-weight:600;letter-spacing:-.03em;margin:6px 0 4px}
.kpi-v small{font-size:12px;color:var(--ink-3);font-weight:500;margin-left:2px}
.kpi-s{font-size:11.5px;color:var(--ink-3);display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.brief{border-radius:16px;padding:20px 22px;color:#EAF1F8;background:linear-gradient(160deg,#16294A,#0A1424);box-shadow:var(--shadow-lg)}
.brief-eyebrow{display:inline-flex;gap:7px;align-items:center;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid rgba(63,191,201,.4);background:rgba(14,124,134,.14);color:#9FE0E5;border-radius:20px;padding:4px 11px;font-weight:600}
.brief h2{font-size:19px;margin:14px 0 4px;line-height:1.3}
.brief h2 + p{color:#8E9AA8;font-size:16px;margin:0 0 16px}
.brief-item{display:flex;gap:14px;align-items:center;padding:13px 14px;border:1px solid #2C323A;border-radius:12px;margin-bottom:9px;background:rgba(255,255,255,.02)}
.brief-item .n{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:11.5px;font-weight:700;flex:0 0 24px;background:rgba(14,124,134,.2);color:#9FE0E5}
.brief-item .t{flex:1;min-width:0}
.brief-item b{display:block;font-size:13.5px;margin-bottom:3px}
.brief-item span{font-size:12px;color:#9AA6B4;line-height:1.5}
.brief-item .v{text-align:right;flex:0 0 auto}
.brief-item .v b{font-size:18px;color:#FF9A94}
.brief-item .v b.good{color:#6FD6A8}
.brief-item .v small{display:block;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#77869A}
.prio{border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:12px;padding:14px 16px;margin-bottom:10px;background:var(--card)}
.prio.crit{border-left-color:var(--bad)}
.prio.med{border-left-color:var(--info)}
.prio-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.prio-title{font-weight:600;font-size:13.5px;margin-bottom:10px;line-height:1.4}
.prio-nums{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.prio-nums div{background:var(--surface-2);border-radius:8px;padding:8px 10px}
.prio-nums small{display:block;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.prio-nums b{font-size:15px;color:var(--bad-ink)}
.prio-nums b.good{color:var(--good-ink)}
.conf{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-2);margin-top:10px}
.conf .bar{width:60px;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.conf .bar span{display:block;height:100%;background:var(--good)}
.demo-note{font-size:11.5px;color:var(--ink-3);margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}

/* ============================== PLACEHOLDER ============================= */
.soon-card{text-align:center;padding:44px 20px}
.soon-ico{width:44px;height:44px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;margin:0 auto 18px}
.soon-ico .i{width:20px;height:20px}
.soon-card h2{font-size:16px;margin-bottom:4px}
.soon-card p{color:var(--ink-2);max-width:520px;margin:0 auto}

.footer{padding:9px 20px;font-size:11px;color:var(--ink-3);border-top:1px solid var(--line);background:var(--card)}

@media(max-width:760px){
  .canvas{padding:8px}
  .topbar{padding:8px 16px}
  .user-meta,.topbar-sub{display:none}
  .app:not(.collapsed) .sidebar{position:fixed;left:0;top:0}
  .toolbar .search .input{width:100%}
}

/* ============================== NOTIFICATION SWITCHES ================== */
.notif-cat{padding:8px 16px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;background:var(--surface-2);border-top:1px solid var(--line-soft)}
.notif{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--line-soft)}
.notif-ico{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--line-soft);color:var(--ink-3);flex:0 0 32px}
.notif-ico.on{background:var(--brand-soft);color:var(--brand)}
.notif-body{flex:1;min-width:0}
.notif-name{font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notif-desc{font-size:12.5px;color:var(--ink-2);margin-top:3px}
.notif-to{font-size:11px;font-weight:500;color:var(--ink-3);display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:10px;padding:0 7px}
.notif-to .i{width:11px;height:11px}
.notif-switch{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.switch{position:relative;width:44px;height:24px;border-radius:24px;border:0;padding:0;background:var(--neutral, #C9D3DE);transition:background .18s;cursor:pointer}
.switch .knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s}
.switch.on{background:var(--good)}
.switch.on .knob{transform:translateX(20px)}
.switch:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.switch[disabled]{cursor:not-allowed;opacity:.6}
.switch-lbl{font-size:12px;font-weight:600;color:var(--ink-3);width:24px}
.switch-lbl.on{color:var(--good-ink)}
:root[data-theme="dark"] .switch:not(.on){background:#3A414B}
@media(max-width:640px){.notif{flex-wrap:wrap}.notif-switch{margin-left:40px}}

/* compact status chip used instead of full-width banners */
.chip-warn{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--warn-ink);
  background:var(--warn-soft);border:1px solid #F1D9A8;border-radius:20px;padding:2px 10px;white-space:nowrap;text-decoration:none}
a.chip-warn:hover{border-color:var(--warn);text-decoration:none}
:root[data-theme="dark"] .chip-warn{border-color:transparent}
.card-head.compact{padding:9px 16px}
/* wide screens: three fields per row so settings forms don't leave the right side empty */
@media(min-width:1400px){.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* page title lives in the top bar - no separate title row on pages */
.topbar-title{font-size:16.5px;font-weight:600;letter-spacing:-.01em;margin:0;white-space:nowrap}
.topbar-sub{font-size:12px;color:var(--ink-3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.card-head .toolbar{gap:8px}


/* ---------- menu: expand / collapse all ---------- */
.nav-tools{display:flex;justify-content:flex-end;padding:6px 14px 0}
.nav-all{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.14);background:transparent;color:rgba(255,255,255,.7);
  font:inherit;font-size:11.5px;padding:3px 9px;border-radius:999px;cursor:pointer}
.nav-all:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.nav-all .i{width:13px;height:13px;transition:transform .15s;transform:rotate(90deg)}
.nav-all.is-open .i{transform:rotate(-90deg)}
.app.collapsed .nav-tools{display:none}

/* ---------------------------------------------------------------- Ask Aftersales AI */
.as-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:stretch;height:calc(100vh - 150px);min-height:480px}
.as-side{display:flex;flex-direction:column;gap:8px;padding:12px;min-height:0}
.as-new{justify-content:center}
.as-side-title{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-top:6px}
.as-chats{flex:1;overflow:auto;display:flex;flex-direction:column;gap:2px;min-height:0}
.as-chat{display:flex;flex-direction:column;padding:7px 9px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-size:12.5px}
.as-chat:hover{background:var(--row-hover);text-decoration:none}
.as-chat.on{background:rgba(var(--brand-rgb),.08);color:var(--ink)}
.as-chat-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.as-chat-d{font-size:11px;color:var(--ink-3)}
.as-del{margin:0}
.as-model{border-top:1px solid var(--line-soft);padding-top:8px}
.as-main{display:flex;flex-direction:column;min-height:0;padding:0}
.as-thread{flex:1;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-height:0}
.as-empty{margin:auto;text-align:center;max-width:720px}
.as-empty h3{margin:0 0 6px;font-size:18px}
.as-examples{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.as-ex{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 13px;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.as-ex:hover{border-color:var(--brand);color:var(--brand)}
.as-msg{display:flex;flex-direction:column;max-width:min(900px,92%)}
.as-user{align-self:flex-end;align-items:flex-end}
.as-ai{align-self:flex-start}
.as-bubble{padding:10px 14px;border-radius:12px;font-size:13.5px;line-height:1.55}
.as-user .as-bubble{background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.as-ai .as-bubble{background:var(--surface-2);border:1px solid var(--line-soft);border-bottom-left-radius:4px}
.as-ai .as-bubble p{margin:0 0 8px}.as-ai .as-bubble p:last-child{margin-bottom:0}
.as-ai .as-bubble ul,.as-ai .as-bubble ol{margin:4px 0 8px;padding-left:20px}
.as-ai .as-bubble code{background:var(--card);padding:1px 4px;border-radius:4px;font-size:12px}
.as-h{font-weight:700;margin:8px 0 4px}
.as-tbl{font-size:12.5px;margin:6px 0}
.as-tbl td,.as-tbl th{padding:5px 9px}
.as-steps{margin-top:6px;font-size:12px;color:var(--ink-2)}
.as-steps>summary{cursor:pointer;color:var(--ink-3)}
.as-steps ol{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:3px}
.as-steps li.bad>span:first-child{color:var(--bad)}
.as-err{color:var(--bad)}
.as-raw{display:inline-block;margin-left:6px}.as-raw>summary{cursor:pointer;color:var(--ink-3);font-size:11px}
.as-raw pre{max-height:260px;overflow:auto;background:var(--card);border:1px solid var(--line-soft);border-radius:6px;padding:8px;font-size:11px;white-space:pre-wrap;word-break:break-word}
.as-meta{font-size:11px;color:var(--ink-3);margin-top:4px}
.as-working{color:var(--ink-2)}
.as-errbox{background:rgba(196,18,48,.07)!important;border-color:rgba(196,18,48,.3)!important;color:var(--bad)}
.as-dots{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--brand);margin-right:6px;animation:as-pulse 1s infinite ease-in-out}
@keyframes as-pulse{0%,100%{opacity:.25}50%{opacity:1}}
.as-ask{display:flex;gap:10px;padding:12px 14px;border-top:1px solid var(--line-soft)}
.as-ask textarea{flex:1;resize:none;font-size:13.5px}
.as-foot{padding:0 14px 10px}
@media(max-width:900px){.as-layout{grid-template-columns:1fr;height:auto}.as-side{max-height:240px}.as-main{min-height:70vh}}
/* AI Assist: charts, like / dislike, feedback review */
.as-chart{margin:8px 0 4px;background:var(--card);border:1px solid var(--line-soft);border-radius:10px;padding:6px 6px 2px}
.as-chart svg{display:block;max-width:100%;height:auto}
.as-chart-bar{display:flex;align-items:center;gap:4px;margin:2px 0 4px 4px;flex-wrap:wrap}
.as-chart-bar .btn{font-size:11.5px}
.as-copied{font-size:11.5px;color:var(--good,#059669);margin-left:6px}
.as-rbtn.as-copy{filter:none;font-size:11.5px;color:var(--ink-2)}
.as-pre{background:var(--card);border:1px solid var(--line-soft);border-radius:8px;padding:8px 10px;font-size:12px;overflow-x:auto;white-space:pre-wrap}
.as-foot-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.as-foot-row .as-meta{margin-top:0}
.as-rate{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink-3)}
.as-rbtn{border:1px solid var(--line);background:var(--card);border-radius:7px;padding:1px 7px;font-size:13px;line-height:20px;cursor:pointer;filter:grayscale(1);opacity:.75}
.as-rbtn:hover{opacity:1;filter:none}
.as-rbtn.on{filter:none;opacity:1;border-color:var(--brand);background:rgba(var(--brand-rgb),.08)}
.as-rate-note{margin-left:4px}
.as-fb{display:flex;gap:6px;align-items:center}
.as-fb .input{height:28px;font-size:12px;min-width:240px;padding:3px 8px}

/* ========================================================================= */
/* ============================== GLS FILMS DMS ============================ */
/* ========================================================================= */
.small{font-size:12px}
.mono{font-family:Consolas,"Cascadia Mono",Menlo,monospace;font-size:12px}
.txt-good{color:var(--good-ink)}.txt-bad{color:var(--bad-ink)}.txt-warn{color:var(--warn-ink)}
.nowrap{white-space:nowrap}
.ellipsis{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3{grid-template-columns:1fr}}
@media(max-width:640px){.g-4{grid-template-columns:1fr}}

/* role chips (user list, profile, sources) */
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;border-radius:20px;padding:2px 9px;
  background:var(--info-soft);color:var(--info-ink);white-space:nowrap}
.chip.brand{background:var(--brand-soft);color:var(--brand-dark)}
:root[data-theme="dark"] .chip.brand{color:var(--brand)}
.chip.muted{background:var(--line-soft);color:var(--ink-3)}
/* multi-select picker (roles on a user, roles on a source) */
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.pick{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;background:var(--card);
  transition:border-color .13s,background .13s}
.pick:hover{border-color:var(--ink-3)}
.pick input{margin-top:2px;width:16px;height:16px;accent-color:var(--brand);flex:0 0 auto}
.pick b{display:block;font-size:13px}
.pick small{display:block;color:var(--ink-3);font-size:11.5px;margin-top:2px}
.pick:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.pick.off{opacity:.6}
fieldset.box{border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px 14px;margin:16px 0 0}
fieldset.box legend{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);padding:0 6px}
fieldset.box[disabled]{opacity:.55}

/* profile */
.pf-wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:1000px){.pf-wrap{grid-template-columns:1fr}}
.pf-head{display:flex;gap:14px;align-items:center;padding:18px 18px 6px}
.pf-avatar{width:56px;height:56px;font-size:20px}
.pf-head h2{font-size:18px}
.dv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 18px 18px}
.dv-grid>div{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:10px;padding:9px 12px;min-width:0}
.dv-grid span{display:block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.dv-grid b{display:block;font-weight:600;margin-top:3px;overflow-wrap:anywhere}
.dv-grid .wide{grid-column:1/-1}
.pf-form{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px}
.pf-actions{display:flex;gap:8px;flex-wrap:wrap}
.lib-list{list-style:none;margin:0;padding:10px 16px 16px;display:flex;flex-direction:column;gap:8px}
.lib-list li{display:flex;gap:10px;align-items:flex-start;font-size:13px}
.lib-list .i{color:var(--brand);margin-top:2px}

/* status dots for sources / jobs */
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-3);margin-right:6px;vertical-align:middle}
.dot.ok{background:var(--good)}.dot.bad{background:var(--bad)}.dot.run{background:var(--info);animation:as-pulse 1s infinite ease-in-out}
.src-meta{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.src-meta a{color:var(--ink-2)}
.statline{display:flex;gap:6px;flex-wrap:wrap}
.lib-pick{display:flex;gap:8px;align-items:center}
.lib-pick select{flex:1}

/* KPI strip (dashboard, monitor) */
.kpi a{color:inherit}
.kpi-v.sm{font-size:20px}
.bars{display:flex;align-items:flex-end;gap:6px;height:170px;padding:16px 16px 10px}
.bars .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;height:100%;justify-content:flex-end}
.bars .bar span{display:block;width:100%;max-width:34px;background:var(--brand);border-radius:6px 6px 2px 2px;min-height:2px;opacity:.85}
.bars .bar:hover span{opacity:1}
.bars .bar small{font-size:10px;color:var(--ink-3);white-space:nowrap}
.bars .bar b{font-size:10.5px;color:var(--ink-2);font-weight:600}
.health{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:14px 16px 16px}
.health>div{border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px;background:var(--surface-2)}
.health span{display:block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.health b{display:block;font-size:15px;margin-top:3px;overflow-wrap:anywhere}

/* hero on the dashboard */
.dms-hero{border-radius:16px;padding:20px 24px;margin-bottom:14px;color:#EAF1F8;box-shadow:var(--shadow-lg);
  background:radial-gradient(800px 300px at 0% 0%,rgba(14,124,134,.38),transparent 60%),linear-gradient(135deg,#16294A,#0A1424);
  display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.dms-hero h2{font-size:20px;margin:6px 0 4px}
.dms-hero p{margin:0;color:#B4C1CE;max-width:640px}
.dms-hero .btn{margin-left:auto}
.eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9FE0E5;font-weight:600}

/* ============================== KNOWLEDGE SEARCH ======================== */
.ks-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;height:calc(100vh - 128px);min-height:520px}
@media(max-width:900px){.ks-layout{grid-template-columns:1fr;height:auto}.ks-layout .as-side{max-height:240px}.ks-layout .as-main{min-height:72vh}}
.ks-libs{border-top:1px solid var(--line-soft);padding-top:8px;font-size:12px;color:var(--ink-2)}
.ks-libs ul{margin:4px 0 0;padding-left:16px}
.ks-libs li{margin:2px 0}
.as-chat.on{background:rgba(var(--brand-rgb),.09)}
.ks-answer{display:flex;flex-direction:column;gap:10px;width:100%}
.as-ai.ks-wide{max-width:min(980px,96%)}
.ks-summary{border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.5}
.ks-summary .lbl{display:flex;align-items:center;gap:6px;margin-bottom:3px;color:var(--brand-dark)}
:root[data-theme="dark"] .ks-summary .lbl{color:var(--brand)}
.ks-summary .lbl .i{width:14px;height:14px}
.ks-conf{margin-left:auto;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:none}
.cite{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin:0 1px;border-radius:5px;
  background:var(--brand-soft);color:var(--brand-dark);font-size:10.5px;font-weight:700;text-decoration:none;vertical-align:1px;border:1px solid var(--brand-line);cursor:pointer}
.cite:hover{background:var(--brand);color:#fff;text-decoration:none}
:root[data-theme="dark"] .cite{color:var(--brand)}
.ks-srcs-title{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:8px}
.ks-srcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.ks-src{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:var(--card);display:flex;flex-direction:column;gap:4px;min-width:0;
  transition:border-color .15s,box-shadow .15s}
.ks-src.flash{border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.18)}
.ks-src.related{opacity:.8}
.ks-src-h{display:flex;gap:8px;align-items:flex-start}
.ks-n{flex:0 0 auto;min-width:20px;height:20px;border-radius:6px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.ks-src.related .ks-n{background:var(--ink-3)}
.ks-src-t{font-weight:600;font-size:12.8px;line-height:1.35;overflow-wrap:anywhere}
.ks-src-t a{color:var(--ink)}
.ks-src-t a:hover{color:var(--brand)}
.ks-type{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:1px 5px;background:var(--line-soft);color:var(--ink-2)}
.ks-type.pdf{background:#FDECEC;color:#B42318}.ks-type.docx,.ks-type.doc{background:#E8F0FD;color:#1F5BB8}
.ks-type.xlsx,.ks-type.xls,.ks-type.csv{background:#E6F5EC;color:#17723F}.ks-type.pptx,.ks-type.ppt{background:#FDF0E6;color:#B54708}
:root[data-theme="dark"] .ks-type{background:var(--line);color:var(--ink-2)}
.ks-src-m{font-size:11px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:2px 8px}
.ks-src-s{font-size:11.8px;color:var(--ink-2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ks-open{font-size:11.5px;font-weight:600;display:inline-flex;gap:4px;align-items:center;margin-top:2px}
.ks-open .i{width:12px;height:12px}
.ks-fb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3)}
.ks-fb .as-rbtn{display:inline-flex;align-items:center;gap:4px;filter:none;opacity:1;color:var(--ink-2);font-size:11.5px;padding:2px 8px}
.ks-fb .as-rbtn .i{width:13px;height:13px}
.ks-fb .as-rbtn.on.up{border-color:var(--good);background:var(--good-soft);color:var(--good-ink)}
.ks-fb .as-rbtn.on.down{border-color:var(--bad);background:var(--bad-soft);color:var(--bad-ink)}
.ks-fb form{display:flex;gap:6px;flex:1;min-width:240px}
.ks-fb form .input{height:28px;font-size:12px;padding:3px 8px}
.ks-thanks{color:var(--good-ink)}
.ks-q-rewrite{font-size:11px;color:rgba(255,255,255,.75);margin-top:3px}
.as-ai .as-bubble table{border-collapse:collapse;margin:6px 0;font-size:12.5px}
.as-ai .as-bubble th,.as-ai .as-bubble td{border:1px solid var(--line);padding:4px 8px;text-align:left;vertical-align:top}
.as-ai .as-bubble th{background:var(--card)}
.as-ai .as-bubble h3,.as-ai .as-bubble h4{font-size:13.5px;margin:10px 0 4px}
.ks-warn{margin:0 14px 10px}

/* feedback review */
.fb-list{display:flex;flex-direction:column;gap:10px;padding:12px 16px 16px}
.fb-item{border:1px solid var(--line);border-left:4px solid var(--bad);border-radius:10px;padding:10px 12px;background:var(--card)}
.fb-item.up{border-left-color:var(--good)}
.fb-item.done{opacity:.7}
.fb-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.fb-q{flex:1;font-weight:600;font-size:13.5px;min-width:200px}
.fb-comment{margin:6px 0 0;font-size:13px;color:var(--ink-2);font-style:italic}
.fb-item details{margin-top:6px;font-size:12.5px}
.fb-item details summary{cursor:pointer;color:var(--ink-3)}
.fb-item details pre{white-space:pre-wrap;background:var(--surface-2);border-radius:8px;padding:8px 10px;max-height:320px;overflow:auto;font-size:12px;font-family:inherit}
.set-sub{padding-top:8px;border-top:1px solid var(--line-soft);margin-top:2px}
.set-sub>span{color:var(--brand-dark)}
:root[data-theme="dark"] .set-sub>span{color:var(--brand)}
.ks-basis{display:inline-flex;align-items:center;gap:2px;margin-left:8px;font-size:11px;color:var(--ink-3);font-weight:500}
.ks-basis .cite{margin-left:3px}
.ks-more>summary{cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:2px 0}
.ks-more[open]>summary{margin-bottom:8px}
.ks-more .ks-src{opacity:.85}

/* ============================== COST ANALYSIS =========================== */
.cost-total{color:#2E86DE}.cost-search{color:var(--brand)}.cost-index{color:#7C5CFF}.cost-ocr{color:#E0A02C}
.cost-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:12px 16px;margin-bottom:12px}
.cost-filters .field{min-width:150px}
.cost-filters .field:nth-child(5){min-width:220px;flex:1}
.cost-actions{display:flex;gap:8px;align-items:center}
.cost-xls{background:#1E8E5A;border-color:#1E8E5A;color:#fff}.cost-xls:hover{background:#177449;color:#fff}.cost-xls .i{stroke:#fff}
.cost-tog{border:1px solid var(--line);background:var(--card);border-radius:6px;width:24px;height:24px;cursor:pointer;color:var(--ink-2);font-size:15px;line-height:1;transition:transform .15s}
.cost-tog.open{transform:rotate(90deg)}
.cost-n{display:inline-block;min-width:24px;padding:1px 7px;border-radius:999px;background:var(--surface-2);font-size:11.5px;font-weight:700;text-align:center}
.cost-ref{max-width:380px}
.cost-ref b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
tr.cost-calls>td{background:var(--surface-2);padding-top:4px;padding-bottom:10px}
.cost-sub{background:var(--card);border-radius:8px}
.cost-sub th,.cost-sub td{padding:5px 10px;font-size:12px}
.cost-bar{height:8px;border-radius:6px;background:var(--line-soft);overflow:hidden}
.cost-bar span{display:block;height:100%;background:var(--brand);border-radius:6px}
.cost-prices .input-sm{max-width:150px}
.cost-prices td.right .input{margin-left:auto}
.input-sm{padding:4px 8px;font-size:12.5px}
.input.right{text-align:right}

/* ============================== DOCUMENT SEARCH ========================= */
.ds-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:900px){.ds-layout{grid-template-columns:1fr}}
.ds-facets{padding:10px 12px;position:sticky;top:66px;max-height:calc(100vh - 90px);overflow:auto}
.ds-facets-head{display:flex;justify-content:space-between;align-items:center;padding:2px 2px 8px;border-bottom:1px solid var(--line-soft)}
.ds-facet{border-bottom:1px solid var(--line-soft);padding:8px 0}
.ds-facet>summary{cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);padding:2px;list-style-position:inside}
.ds-opt{display:flex;align-items:center;gap:8px;padding:4px 4px;border-radius:6px;font-size:12.8px;cursor:pointer}
.ds-opt:hover{background:var(--row-hover)}
.ds-opt input{width:15px;height:15px;accent-color:var(--brand);flex:0 0 auto}
.ds-opt-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-cnt{font-size:11px;color:var(--ink-3);background:var(--surface-2);border-radius:10px;padding:0 7px;font-weight:600}
.ds-opt input:checked~.ds-opt-l{font-weight:600;color:var(--brand-dark)}
:root[data-theme="dark"] .ds-opt input:checked~.ds-opt-l{color:var(--brand)}
.ds-more{border:0;background:none;color:var(--brand);font-size:12px;padding:4px;cursor:pointer}
.ds-ver{border-bottom:0;padding-top:10px}
.ds-ver .hint{margin:4px 0 0 24px}
.ds-main{min-width:0;display:flex;flex-direction:column;gap:10px}
.ds-bar{display:flex;gap:8px;align-items:center;padding:10px 12px}
.ds-q{position:relative;flex:1}
.ds-q .i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.ds-q .input{padding-left:34px;font-size:14.5px;height:40px}
.ds-tips{margin-top:-4px;padding-left:4px}
.ds-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between}
.ds-summary .toolbar select.input{min-width:0;padding:4px 8px}
.ds-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.ds-chip{border:0;cursor:pointer}
.ds-results{display:flex;flex-direction:column;gap:10px}
.ds-hit{padding:12px 16px;display:flex;flex-direction:column;gap:5px}
.ds-hit-h{display:flex;align-items:center;gap:8px}
.ds-title{font-size:15px;font-weight:600;margin:0;line-height:1.35;overflow-wrap:anywhere}
.ds-title a{color:var(--ink)}
.ds-title a:hover{color:var(--brand)}
.ds-pass{margin:2px 0 0;font-size:12.8px;color:var(--ink-2);line-height:1.5}
.ds-pass mark{background:#FFF2B3;color:inherit;padding:0 1px;border-radius:2px}
:root[data-theme="dark"] .ds-pass mark{background:#5A4A00}
.ds-page{display:inline-block;font-size:10.5px;font-weight:700;color:var(--ink-3);border:1px solid var(--line);border-radius:5px;padding:0 5px;margin-right:6px}
.ds-none{padding:26px}

/* ============================== HELP GUIDE ============================== */
.hg-tabs{max-width:100%}
.hg{padding:18px 22px 22px;max-width:1180px}
.hg h2{font-size:18px;margin:0 0 10px}
.hg h3{font-size:14px;margin:22px 0 8px;color:var(--brand-dark)}
:root[data-theme="dark"] .hg h3{color:var(--brand)}
.hg p{color:var(--ink-2);line-height:1.6;margin:0 0 10px;max-width:920px}
.hg a{font-weight:600}
.hg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0 4px}
.hg-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px}
.hg-card .i{width:22px;height:22px;color:var(--brand)}
.hg-card b{font-size:14px}
.hg-card span{font-size:12.8px;color:var(--ink-2);line-height:1.5}
.hg-steps{margin:6px 0 10px;padding-left:22px;line-height:1.6;color:var(--ink-2);max-width:960px}
.hg-steps li{margin:4px 0}
.hg-steps b,.hg-steps i{color:var(--ink)}
.hg-tbl{margin:8px 0 12px}
.hg-tbl td{vertical-align:top;line-height:1.5}
.hg-total td{background:var(--brand-soft)}
.hg-faq dt{font-weight:600;margin-top:14px}
.hg-faq dd{margin:4px 0 0;color:var(--ink-2);line-height:1.55}
.hg .kpi{box-shadow:none}
/* diagrams */
.hg-dia{display:block;width:100%;height:auto;margin:6px 0 10px;max-width:1000px}
.hg-arch{max-width:1060px}
.dg-box rect{fill:var(--card);stroke:var(--line);stroke-width:1.5}
.dg-box text{fill:var(--ink);font-size:13px;font-weight:600;text-anchor:middle;font-family:inherit}
.dg-box text.dg-sub,.dg-sub{fill:var(--ink-3);font-size:10.5px;font-weight:400;font-family:inherit}
.hg-dia>text.dg-sub{text-anchor:start}
.dg-hi rect{fill:var(--brand-soft);stroke:var(--brand)}
.dg-ext rect{fill:var(--info-soft);stroke:#9CC3EA}
.dg-store rect{fill:var(--warn-soft);stroke:#E7C887}
:root[data-theme="dark"] .dg-ext rect{stroke:#2E5B8A}
:root[data-theme="dark"] .dg-store rect{stroke:#6A5520}
.dg-line{fill:none;stroke:var(--ink-3);stroke-width:1.6}
.dg-dash{stroke-dasharray:5 4}
.dg-arrow{fill:var(--ink-3)}
.dg-zone{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:6 5}
.dg-zone-t{fill:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-family:inherit}
