/* Friendlier look for the whole app (loaded last, so it refines the older styles). */
:root{--r:14px;--shadow:0 1px 2px #1024380d,0 4px 14px #1024380a;--shadow-hover:0 2px 6px #10243814,0 10px 26px #10243812;--teal-50:#ecf7f4;--blue:#2563eb;--blue-50:#eef4ff;--red:#d92d20;--red-50:#fdeeec;--violet:#7c3aed;--violet-50:#f4efff;--green:#16a34a;--green-50:#eaf7ee;--amber-50:#fff5e6;--ink:#16283a}
body{background:linear-gradient(180deg,#f6f8f9 0,#eef2f4 100%) fixed}
/* Top bar: sticky, light glass */
.topbar{position:sticky;top:0;z-index:30;background:#ffffffe6;backdrop-filter:saturate(1.4) blur(8px)}
/* Buttons */
.workspace button,.workspace .button,.page-body button{border-radius:10px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}
.workspace button:not(.primary):not(.danger):not(.link):not([role=tab]):hover,.workspace .button:hover{border-color:#b8cbc8;background:#f7fbfa}
.workspace button.primary,.page-body button.primary{background:linear-gradient(180deg,#0b8a7c,#087268);border-color:#077066;box-shadow:0 1px 2px #0870684d,inset 0 1px 0 #ffffff26}
.workspace button.primary:hover,.page-body button.primary:hover{box-shadow:0 4px 12px #08706840;transform:translateY(-1px)}
.workspace button:focus-visible,.workspace a:focus-visible,.workspace input:focus-visible,.workspace select:focus-visible,.workspace textarea:focus-visible{outline:3px solid #0e766e40;outline-offset:2px}
.row-btn{padding:5px 10px!important;font-size:12px!important;border-radius:8px!important}
.actions.no-print{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
/* Inputs */
.workspace input:not([type=checkbox]):not([type=radio]),.workspace select,.workspace textarea,dialog input:not([type=checkbox]):not([type=radio]),dialog select,dialog textarea{border-radius:10px;border-color:#d5dee5;transition:border-color .15s,box-shadow .15s}
.workspace input:focus,.workspace select:focus,.workspace textarea:focus,dialog input:focus,dialog select:focus,dialog textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0e766e22;outline:0}
/* Page heading */
.page-head h1{letter-spacing:-.02em}
.project-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fact{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12.5px;color:#38495a;font-weight:550}
.fact.stage{background:var(--teal-50);border-color:#bfe0d7;color:#0b6b61}
/* Cards and panels */
.panel,.stat{border-radius:var(--r);box-shadow:var(--shadow);border-color:#e1e8ed}
.stat{position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}.stat:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent,var(--teal))}
.stat.teal{--accent:var(--teal);--accent-50:var(--teal-50)}.stat.blue{--accent:var(--blue);--accent-50:var(--blue-50)}.stat.red{--accent:var(--red);--accent-50:var(--red-50)}.stat.violet{--accent:var(--violet);--accent-50:var(--violet-50)}.stat.green{--accent:var(--green);--accent-50:var(--green-50)}
.stat-label{justify-content:flex-start!important;align-items:center;gap:10px;font-weight:600;color:#4b5b6b}
.stat-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-50,var(--teal-50));color:var(--accent,var(--teal));font-size:16px;font-weight:700;flex:none}
.panel-head,.panel>header{background:linear-gradient(180deg,#fbfcfd,#f6f9fa)}
/* Tables */
.workspace table thead th{background:#f6f9fa;color:#5d6b78;font-size:11.5px;letter-spacing:.04em}
.workspace table tbody tr{transition:background .12s}.workspace table tbody tr:hover{background:#f5faf9}
/* Grouped project tabs */
.tabs.tab-groups{position:sticky;top:73px;z-index:20;display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;margin:18px 0 26px;padding:10px;border:1px solid #e1e8ed;border-radius:var(--r);background:#ffffffeb;backdrop-filter:blur(8px);box-shadow:var(--shadow);overflow:visible}
.tab-group{display:flex;flex-direction:column;gap:6px;padding:0 10px 0 0;border-right:1px solid #e6ecf0}.tab-group:last-child{border-right:0}
.tab-group-label{padding-left:8px;font-size:10.5px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:#8a98a6}
.tab-group-items{display:flex;flex-wrap:wrap;gap:4px}
.tabs.tab-groups button[role=tab]{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid transparent;border-radius:10px;color:#4b5b6b;font-size:13.5px;font-weight:600;background:transparent;white-space:nowrap}
.tabs.tab-groups button[role=tab]:hover{background:#f2f6f8;color:var(--ink)}
.tabs.tab-groups button[role=tab].active{background:var(--teal);color:#fff;border-color:var(--teal);box-shadow:0 2px 8px #0870683d}
.tab-icon{display:inline-grid;place-items:center;width:18px;font-size:13px;opacity:.85}
/* Portfolio quick actions */
.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:-4px 0 18px}
.quick-actions>button,.quick-actions>a.button{display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px;padding:14px 16px!important;border:1px solid #e1e8ed;border-radius:var(--r)!important;background:#fff;text-align:left;box-shadow:var(--shadow);color:var(--ink);text-decoration:none;white-space:normal}
.quick-actions>button:hover,.quick-actions>a.button:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px);border-color:#bfe0d7!important}
.quick-actions strong{display:block;font-size:14px}.quick-actions small{display:block;margin-top:2px;color:#6b7a88;font-size:12px;font-weight:500;line-height:1.35}
.qa-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:18px;font-weight:700}
.qa-icon.teal{background:var(--teal-50);color:var(--teal)}.qa-icon.blue{background:var(--blue-50);color:var(--blue)}.qa-icon.amber{background:var(--amber-50);color:#b45309}.qa-icon.violet{background:var(--violet-50);color:var(--violet)}
/* Tags and notices */
.tag{border-radius:999px!important;padding:3px 10px!important}
.notice{border-radius:12px}
/* Empty states */
.empty{padding:40px 20px;text-align:center}.empty h3::before{content:"🗂";display:block;margin:0 auto 12px;width:56px;height:56px;line-height:56px;border-radius:16px;background:var(--teal-50);font-size:26px}
/* Dialogs and toast */
dialog#modal{border-radius:18px;box-shadow:0 24px 60px #10243840}
dialog#modal::backdrop{background:#0b1a2a73;backdrop-filter:blur(2px)}
#toast.visible{border-radius:12px;box-shadow:0 10px 30px #10243840}
/* Sidebar polish */
.sidebar nav button,.sidebar .legal-nav{border-radius:10px;transition:background .15s,color .15s}
.sidebar nav button:hover,.sidebar .legal-nav:hover{background:#ffffff14;color:#fff}
@media(max-width:1100px){.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs.tab-groups{top:0}}
@media(max-width:760px){
 .quick-actions{grid-template-columns:1fr}
 .tabs.tab-groups{position:static;flex-wrap:nowrap;overflow-x:auto;padding:8px}
 .tab-group{flex:none}.tab-group-items{flex-wrap:nowrap}
 .topbar{position:static}
 .sidebar{padding:12px 14px!important;gap:10px!important}
 .sidebar-navigation{padding:0!important}
 .sidebar nav{display:flex!important;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
 .sidebar nav button,.sidebar nav .legal-nav{flex:none!important;display:inline-flex!important;align-items:center;gap:6px;height:38px;min-height:38px!important;padding:0 12px!important;border-radius:999px!important;white-space:nowrap!important;background:#ffffff10}
 .sidebar nav button.active{background:var(--teal)!important;color:#fff!important}
 .sidebar nav .legal-nav span{white-space:nowrap}
 .sidebar-footer{display:none!important}
}
@media print{.quick-actions,.project-facts,.tabs.tab-groups{display:none!important}.stat::before{display:none}}
.content,.workspace{min-width:0}.table-wrap{overflow-x:auto;max-width:100%}.panel{max-width:100%}
.portfolio-layout{grid-template-columns:minmax(0,1fr)!important}.portfolio-layout>*{min-width:0}
.toolbar>button,.toolbar>a.button{align-self:flex-start}

/* ===== Left menu (v2): deep gradient, soft glow, colour-coded icon tiles ===== */
.sidebar{background:radial-gradient(120% 60% at 0% 0%,#14524c 0,transparent 60%),radial-gradient(90% 50% at 100% 100%,#123a5c 0,transparent 65%),linear-gradient(180deg,#0b2730 0%,#081a24 100%)!important;background-size:auto!important;border-right:1px solid #ffffff10;box-shadow:inset -1px 0 0 #ffffff08}
.sidebar::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#ffffff0d 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(180deg,#000 0,transparent 70%)}
.sidebar{position:sticky;isolation:isolate}.sidebar>*{position:relative;z-index:1}
.sidebar .brand{padding:4px 6px 14px;border-bottom:1px solid #ffffff14}
.sidebar .brand-icon{box-shadow:0 6px 18px #00000040;border-radius:12px}
.sidebar .nav-label{margin:16px 10px 6px;font-size:10.5px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:#8fb3b0!important;opacity:.9}
.sidebar-navigation>.nav-label:first-child{margin-top:6px}
.sidebar nav{display:flex;flex-direction:column;gap:3px}
.sidebar .nav-item{display:flex!important;align-items:center;gap:11px;width:100%;min-height:42px!important;padding:6px 10px!important;border-radius:12px!important;color:#d6e4ec!important;font-size:13.5px!important;font-weight:550!important;text-decoration:none;line-height:1.3!important;background:transparent;border:1px solid transparent!important}
.sidebar .nav-item:hover{background:#ffffff12!important;color:#fff!important}
.sidebar .nav-item .nav-symbol{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--ic) 22%,transparent);color:var(--ic);transition:transform .15s,background .15s}
.sidebar .nav-item:hover .nav-symbol{transform:scale(1.06);background:color-mix(in srgb,var(--ic) 32%,transparent)}
.sidebar .nav-item .sidebar-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sidebar .nav-item .nav-text{flex:1;min-width:0}
.sidebar .nav-item.active{background:linear-gradient(90deg,#ffffff26,#ffffff10)!important;color:#fff!important;border-color:#ffffff22!important;box-shadow:0 4px 14px #00000030}
.sidebar .nav-item.active::before{content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--ic)}
.sidebar .nav-item{position:relative}
.sidebar .nav-item.active .nav-symbol{background:var(--ic);color:#08202a}
.nav-count{flex:none;min-width:22px;padding:1px 7px;border-radius:999px;background:#ffffff1f;color:#fff;font-size:11px;font-weight:700;text-align:center}
.nav-go{opacity:.55;font-size:12px}
.c-teal{--ic:#2dd4bf}.c-blue{--ic:#60a5fa}.c-amber{--ic:#fbbf24}.c-violet{--ic:#a78bfa}.c-pink{--ic:#f472b6}.c-cyan{--ic:#22d3ee}.c-slate{--ic:#94a3b8}
.sidebar-footer{border-top:1px solid #ffffff14;padding-top:12px!important}
.side-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;background:#ffffff0d;border:1px solid #ffffff12}
.side-avatar{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2dd4bf,#0e766e);color:#062022;font-weight:800}
.side-who{flex:1;min-width:0}.side-who strong{display:block;color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis}.side-who small{display:block;color:#9fb6c0;font-size:11.5px}
.sidebar .side-out{flex:none;display:grid!important;place-items:center;width:34px!important;height:34px;min-height:34px!important;padding:0!important;border-radius:10px!important;color:#cfe0e8!important;font-size:16px!important;background:#ffffff10!important}
.sidebar .side-out:hover{background:#f8717133!important;color:#fecaca!important}
.side-version{display:block;margin:10px 4px 0;color:#7f9aa6;font-size:11px}
/* ===== Page background ===== */
body{background:radial-gradient(900px 420px at 100% -80px,#d9f0ea 0,transparent 70%),radial-gradient(700px 380px at 30% -160px,#e3ecfb 0,transparent 70%),linear-gradient(180deg,#f5f8f9 0,#eef2f5 100%) fixed!important}
.topbar{background:#ffffffcc!important;border-bottom-color:#e3eaee!important}
.page-head h1{background:linear-gradient(90deg,#10283a,#0b6b61);-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:760px){
 .sidebar::after{display:none}
 .sidebar .nav-label{display:none}
 .sidebar-navigation{display:flex;gap:6px;overflow-x:auto!important;max-width:100%;min-width:0;scrollbar-width:none}
 .sidebar nav{flex-direction:row!important;flex:none}
 .sidebar .nav-item{width:auto;min-height:38px!important;padding:3px 12px 3px 4px!important;border-radius:999px!important;background:#ffffff10}
 .sidebar .nav-item .nav-symbol{width:30px;height:30px;border-radius:50%}
 .sidebar .nav-item.active::before{display:none}
 .nav-go{display:none}
}
@media print{.page-head h1{color:#000;background:none}}
@media(min-width:1101px){.shell{grid-template-columns:256px minmax(0,1fr)!important}}
@media(min-width:761px) and (max-width:1100px){.shell{grid-template-columns:232px minmax(0,1fr)!important}}
/* ===== Notification bell ===== */
.bell-menu{position:relative}
.bell-menu>summary.bell-button{list-style:none;position:relative;display:grid;place-items:center;width:40px;height:40px;padding:0!important;border:1px solid var(--line);border-radius:12px;background:#fff;color:#38495a;cursor:pointer}
.bell-menu>summary::-webkit-details-marker{display:none}
.bell-menu>summary.bell-button:hover,.bell-menu[open]>summary.bell-button{border-color:var(--teal);color:var(--teal);background:#f3faf8}
.bell-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:11px;font-weight:800;line-height:19px;text-align:center;box-shadow:0 0 0 2px #fff;animation:bell-pop .4s ease}
@keyframes bell-pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}100%{transform:scale(1)}}
.bell-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(400px,calc(100vw - 24px));max-height:min(560px,75vh);overflow:auto;border:1px solid #e1e8ed;border-radius:16px;background:#fff;box-shadow:0 18px 50px #10243833;text-align:left}
.bell-top{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #edf1f3;position:sticky;top:0;background:#fff;z-index:1}.bell-top span{color:#6b7a88;font-size:12px}
.bell-group{padding:6px 8px 8px}.bell-group+.bell-group{border-top:1px solid #f0f3f5}
.bell-group-head{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#6b7a88}.bell-group-head b{margin-left:auto;padding:0 7px;border-radius:999px;background:#eef2f5;color:#38495a}
.bell-menu .bell-item{display:flex!important;align-items:flex-start;gap:10px;width:100%;padding:9px 8px!important;border:0!important;border-radius:10px!important;background:none;text-align:left;justify-content:flex-start!important;font-weight:500;white-space:normal}
.bell-menu .bell-item:hover{background:#f3f7f8!important}
.bell-dot{flex:none;width:9px;height:9px;margin-top:5px;border-radius:50%;background:#c5ced6}
.bell-item.k-review .bell-dot{background:#7c3aed}.bell-item.k-overdue .bell-dot,.bell-item.k-late .bell-dot{background:#d92d20}.bell-item.k-due-soon .bell-dot{background:#f59e0b}.bell-item.k-milestone .bell-dot{background:#2563eb}.bell-item.k-assigned .bell-dot{background:#0e766e}
.bell-item.new{background:#f5fbfa}.bell-item.new strong::after{content:"new";margin-left:6px;padding:0 6px;border-radius:999px;background:#0e766e;color:#fff;font-size:10px;vertical-align:1px}
.bell-body{flex:1;min-width:0}.bell-body strong{display:block;font-size:13px;color:#16283a}.bell-body small{display:block;margin-top:2px;color:#6b7a88;font-size:12px}
.bell-when{flex:none;font-style:normal;font-size:11.5px;font-weight:650;color:#38495a;white-space:nowrap}.k-overdue .bell-when,.k-late .bell-when{color:#b42318}
.bell-more{display:block;padding:2px 8px 4px 26px;color:#6b7a88}
.bell-empty{display:grid;justify-items:center;gap:4px;padding:28px 20px;text-align:center}.bell-empty span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#eaf7ee;color:#16a34a;font-size:20px;font-weight:800}.bell-empty small{color:#6b7a88}
.bell-foot{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border-top:1px solid #edf1f3;position:sticky;bottom:0;background:#fff}.bell-foot button{font-size:12.5px!important;padding:6px 8px!important;color:var(--teal)!important}
@media(max-width:760px){.bell-panel{position:fixed;left:12px;right:12px;top:70px;width:auto}}
/* Khmer heritage theme: royal blue + Angkor gold, kbach borders, Romdoul flower */
:root{--royal:#12305a;--royal-deep:#0a1c38;--gold:#c9a227;--gold-soft:#f6ecd0;--kbach:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='10' viewBox='0 0 28 10'%3E%3Cpath d='M0 5c4-5 10-5 14 0s10 5 14 0' fill='none' stroke='%23c9a227' stroke-width='1.2'/%3E%3Cpath d='M14 1.5l3 3.5-3 3.5-3-3.5z' fill='%23c9a227'/%3E%3Ccircle cx='0' cy='5' r='1.3' fill='%23c9a227'/%3E%3Ccircle cx='28' cy='5' r='1.3' fill='%23c9a227'/%3E%3C/svg%3E");--corner:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64' fill='none' stroke='%23c9a227' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M64 2C40 2 22 10 14 30c10-8 22-10 32-6-10 2-17 8-20 18 8-6 17-8 26-6-6 3-10 9-11 16'/%3E%3Cpath d='M64 12c-14 0-24 4-30 12M64 22c-9 0-15 3-19 8'/%3E%3Cpath d='M30 12c-4-6-2-10 2-10-1 4 1 7-2 10z' fill='%23c9a227'/%3E%3C/svg%3E")}
body{background:radial-gradient(900px 420px at 100% -80px,#f3e8c8 0,transparent 70%),radial-gradient(700px 380px at 30% -160px,#dfe7f5 0,transparent 70%),linear-gradient(180deg,#faf8f2 0,#f1efe8 100%) fixed!important}
.topbar{background:#fffdf7d9!important;border-bottom:0!important;box-shadow:0 1px 0 #e9dfc3}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:6px;background:var(--kbach) repeat-x center/28px 6px;opacity:.55;pointer-events:none}
.page-head h1{background:linear-gradient(90deg,var(--royal) 0,#1f4f7a 55%,#a07c14 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-head h1::after{content:"";display:block;width:150px;height:10px;margin-top:8px;background:var(--kbach) repeat-x left center/28px 10px;-webkit-text-fill-color:initial}
.eyebrow{color:#a07c14}
.panel{position:relative;border-top:3px solid var(--gold)!important}
.stat{background:linear-gradient(180deg,#fff 0,#fffcf3 100%)}
.tabs.tab-groups{border-top:3px solid var(--gold)}
.tabs.tab-groups button[role=tab].active{background:var(--royal);border-color:var(--royal);box-shadow:inset 0 -3px 0 var(--gold),0 2px 8px #12305a40}
.tab-group-label{color:#a07c14!important}
.quick-actions>button,.quick-actions>a.button{border-top:3px solid var(--gold)}
/* sidebar: royal night sky */
.sidebar{background:radial-gradient(120% 60% at 0% 0%,#1d3f73 0,transparent 60%),linear-gradient(180deg,#0d2347 0%,#071530 100%)!important;border-right:0!important;box-shadow:inset -3px 0 0 #c9a22755}
.sidebar .brand{border-bottom:0;padding-bottom:18px;background:var(--kbach) repeat-x left bottom/28px 8px}
.sidebar .nav-label{color:#e2c766!important}
.sidebar .nav-item.active{border-color:#c9a22766!important}
.sidebar .nav-item.active::before{background:var(--gold)}
.sidebar-footer{border-top-color:#c9a22740!important}
@media(max-width:760px){.sidebar{background:linear-gradient(180deg,#0d2347,#071530)!important;box-shadow:none}.sidebar .brand{background:none}.topbar::after{display:none}}
@media print{.topbar::after,.panel::after,.stat::after,.page-head h1::after{display:none}.panel{border-top:1px solid var(--line)!important}}
/* customizable home dashboard */
.head-actions{flex-wrap:wrap!important}
.dash{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.dash-block{grid-column:1/-1;min-width:0;position:relative}.dash-block.half{grid-column:auto}
.dash-block.is-hidden{display:none}
.dash .timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 25px}.dash .half .timeline{grid-template-columns:1fr}.dash .half .stats,.dash .half .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.dash td:first-child{min-width:230px}
.dash.editing .dash-block{display:block;padding:10px;margin-bottom:14px;border:2px dashed #c9a22788;border-radius:18px;background:#fffdf5;cursor:grab}
.dash.editing .dash-block.is-hidden{opacity:.45}.dash.editing .dash-block.is-hidden>:not(.dash-tools){filter:grayscale(1);max-height:90px;overflow:hidden}
.dash.editing .dash-block.dragging{opacity:.4}.dash.editing .dash-block.drop{border-color:var(--royal);box-shadow:0 0 0 4px #12305a22}
.dash-tools{display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:6px 8px;border-radius:12px;background:var(--royal);color:#fff}
.dash-tools strong{flex:1;font-size:13.5px}.dash-grip{color:var(--gold);font-size:18px;cursor:grab}
.dash-btn{min-width:34px;height:32px;padding:0 9px!important;border-radius:9px!important;background:#ffffff1c!important;border:1px solid #ffffff2e!important;color:#fff!important;font-size:14px!important}
.dash-btn:hover:not(:disabled){background:var(--gold)!important;color:var(--royal-deep)!important}
.dash-banner{grid-column:1/-1;order:0;display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:14px 16px;border-radius:16px;background:linear-gradient(90deg,var(--royal),#1f4f7a);color:#fff;box-shadow:var(--shadow)}
.dash-banner>span{font-size:22px;color:var(--gold)}.dash-banner p{flex:1;margin:0}.dash-banner strong{display:block}.dash-banner small{color:#d5e0ef}
.dash-banner .dash-btn[data-primary]{background:var(--gold)!important;color:var(--royal-deep)!important;border-color:var(--gold)!important;font-weight:700}
.dash-edit{background:#fff;border-color:#e2cf94!important;color:#7a5d0c!important}
.dash-edit:hover{background:var(--gold-soft)}
@media(max-width:900px){.dash{grid-template-columns:minmax(0,1fr)}.dash-block.half{grid-column:1/-1}.dash .timeline{grid-template-columns:1fr}.dash-banner{flex-wrap:wrap}}
@media print{.dash-edit,.dash-tools,.dash-banner{display:none!important}}
.bell-menu:not([open]) .bell-panel{display:none}
@media(max-width:760px){.identity{gap:8px;min-width:0}.identity>*{min-width:0}.identity .user-chip{flex:none}.identity select,.identity .action-menu:not(.bell-menu)>summary{max-width:100%}}
/* footer: royal blue with gold kbach edge */
.homepage-footer .rd-body{background:linear-gradient(120deg,#0d2347 0%,#12305a 60%,#1b3f6e 100%)!important;border-radius:16px;padding:26px 28px 20px!important;box-shadow:0 10px 30px #0a1c3833;border:1px solid #c9a22755}
.homepage-footer .rd-body::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--kbach) repeat-x center/28px 8px;opacity:.8}
.homepage-footer .rd-grid-bg{display:none}
.homepage-footer .rd-brand h2{color:#f1d77a}
.homepage-footer .rd-brand p{color:#c4d2e4}
.homepage-footer .rd-col h3{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-size:11.5px}
.homepage-footer .rd-col h3::before{content:"◆ ";color:var(--gold)}
.homepage-footer button{color:#e3ebf5}
.homepage-footer button:hover{color:#f1d77a}
/* Khmer copy section in record forms */
.km-copy{border:1px solid #e2cf94;border-radius:12px;background:#fffdf5;padding:0}
.km-copy>summary{cursor:pointer;padding:12px 14px;font-weight:650;color:var(--royal,#12305a);list-style:none}
.km-copy>summary::-webkit-details-marker{display:none}
.km-copy>summary::after{content:"▾";float:right;color:#a07c14}.km-copy[open]>summary::after{content:"▴"}
.km-copy>summary small{display:block;font-weight:400;margin-top:2px}
.km-copy-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:0 14px}
.km-copy-tools .checkbox{flex:1 1 260px;font-weight:500}
.km-copy-tools button{background:var(--royal,#12305a);color:#fff;border-color:var(--royal,#12305a)}
.km-copy-note{display:block;padding:6px 14px 0}
.km-copy>.form-grid{padding:12px 14px 14px}
.km-badge{display:inline-block;margin-right:6px;padding:1px 8px;border-radius:999px;background:var(--gold,#c9a227);color:#0a1c38;font-size:12px}
/* Project sections: three steps (Plan / Deliver / Review), the chosen step's tabs underneath */
.tabs.tab-steps{display:block;padding:10px}
.tab-step-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tabs.tab-steps .tab-step{display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px;padding:10px 14px!important;border:1px solid #e6ecf0!important;border-radius:12px!important;background:#f8fafb;color:var(--ink);text-align:left;white-space:normal;min-height:58px}
.tabs.tab-steps .tab-step:hover{background:#f1f5f8;border-color:#d6dee5!important}
.tab-step-num{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e8eef3;color:#4b5b6b;font-weight:750;font-size:14px}
.tab-step-text strong{display:block;font-size:14.5px}.tab-step-text small{display:block;font-size:12px;color:#6b7a88;font-weight:500}
.tabs.tab-steps .tab-step.active{background:var(--royal,#12305a);border-color:var(--royal,#12305a)!important;color:#fff;box-shadow:inset 0 -3px 0 var(--gold,#c9a227),0 4px 12px #12305a33}
.tabs.tab-steps .tab-step.active .tab-step-num{background:var(--gold,#c9a227);color:#0a1c38}
.tabs.tab-steps .tab-step.active small{color:#d5e0ef}
.tabs.tab-steps .tab-group-items{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:10px;border-top:1px dashed #e2cf94}
.tabs.tab-steps button[role=tab].active{background:var(--gold-soft,#f6ecd0)!important;color:#5c4508!important;border-color:#e2cf94!important;box-shadow:none!important}
@media(max-width:760px){.tab-step-row{gap:6px}.tabs.tab-steps .tab-step{padding:8px!important;gap:8px;min-height:0}.tab-step-text small{display:none}.tab-step-num{width:24px;height:24px;font-size:12px}.tabs.tab-steps .tab-group-items{flex-wrap:nowrap;overflow-x:auto}}
.tabs.tab-steps .tab-step.active,.tabs.tab-steps .tab-step.active:hover{background:var(--royal,#12305a)!important;color:#fff!important}
/* Read text from an evidence file */
.read-file{padding:12px 14px;border:1px dashed #c7d3dd;border-radius:12px;background:#f8fafb}
.read-file-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.read-file-row .checkbox{flex:1 1 260px;font-weight:500}
#read-file-status{display:block;margin-top:6px}

/* Charts (public/charts.mjs). Series 1 blue = results/planned, series 2 orange = spent; status colours only for status. */
:root{--series-1:#2a78d6;--series-2:#eb6834;--chart-track:#eef1f4;--chart-grid:#e1e0d9;--chart-ink2:#52514e;--chart-muted:#898781;--st-good:#0ca30c;--st-warn:#fab219;--st-crit:#d03b3b;--st-idle:#c3c2b7}
.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 18px}
.chart-card{margin:0}.chart-card .panel-head{align-items:flex-start;gap:12px;flex-wrap:wrap}.chart-card .panel-head small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--chart-ink2)}.chart-legend span,.stack-legend span{display:inline-flex;align-items:center;gap:6px}
.key{display:inline-block;width:12px;height:12px;border-radius:3px;flex:none}.key.s1{background:var(--series-1)}.key.s2{background:var(--series-2)}
.hbars{display:grid;gap:10px}
.hbar-row{display:grid;grid-template-columns:minmax(90px,34%) minmax(0,1fr);gap:12px;align-items:center;width:100%;padding:4px 6px;margin:0 -6px;border:0;border-radius:8px;background:none;text-align:left;font:inherit;color:inherit;box-shadow:none;min-height:0}
button.hbar-row{cursor:pointer}button.hbar-row:hover{background:#f4f7fb;transform:none}
.hbar-label{font-size:13px;line-height:1.3;color:#192a3a;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hbar-label .over{display:block;font-style:normal;font-size:11.5px;color:var(--st-crit)}
.hbar-pair{display:grid;gap:3px}
.hbar-track{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:center;font-size:12px;color:var(--chart-ink2);font-variant-numeric:tabular-nums}
.hbar-area{position:relative;display:flex;align-items:center;height:12px;border-radius:4px;background:linear-gradient(90deg,transparent calc(50% - .5px),var(--chart-grid) calc(50% - .5px),var(--chart-grid) calc(50% + .5px),transparent calc(50% + .5px)),var(--chart-track)}
.hbar{display:block;height:100%;min-width:3px;border-radius:0 4px 4px 0}
.hbar.s1{background:var(--series-1)}.hbar.s2{background:var(--series-2)}
.hbar-track b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paired .hbar-area{height:10px}
.hbar-none{font-size:11px;font-style:italic;color:var(--chart-muted);padding-left:6px;line-height:1}
.hbar-axis{display:grid;grid-template-columns:minmax(90px,34%) minmax(0,1fr);gap:12px;padding:0 6px;margin:0 -6px}.hbar-axis>span:last-child{display:flex;justify-content:space-between;width:calc(100% - 80px);font-size:11px;color:var(--chart-muted)}.hbar-axis i{font-style:normal}
.chart-more,.chart-empty{margin:10px 0 0;font-size:12.5px;color:var(--muted)}.chart-empty{margin:4px 0;font-style:italic}
.stack{display:flex;gap:2px;height:22px;border-radius:6px;overflow:hidden;margin:6px 0 14px}
.stack-seg{min-width:6px}.st-done{background:var(--st-good)}.st-going{background:var(--series-1)}.st-late{background:var(--st-crit)}.st-todo{background:var(--st-idle)}
.stack-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--chart-ink2)}.stack-legend strong{color:#192a3a}
.risk-map{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:4px 8px;max-width:340px;margin:0 auto 12px}
.rm-y{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11.5px;color:var(--chart-muted);text-align:center}
.rm-x{grid-column:2;text-align:center;font-size:11.5px;color:var(--chart-muted)}
.rm-grid{display:grid;grid-template-columns:18px repeat(5,minmax(0,1fr));gap:3px}
.rm-axis{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--chart-muted)}
.rm-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:5px;font-weight:700;font-size:14px;color:#192a3a}
.z-low{background:#e3f4e3}.z-mid{background:#fdf0cf}.z-high{background:#f8dcdc}
.rm-cell.has{box-shadow:inset 0 0 0 2px rgba(25,42,58,.55)}.rm-cell.z-high.has{box-shadow:inset 0 0 0 2px var(--st-crit)}
.stack-legend .key.z-low{background:#cfe9cf}.stack-legend .key.z-mid{background:#f8dc95}.stack-legend .key.z-high{background:#efb4b4}
.meter{height:5px;border-radius:3px;background:var(--chart-track);margin-top:10px;overflow:hidden}.meter span{display:block;height:100%;border-radius:0 3px 3px 0;background:var(--series-1)}
.progress-track{height:7px;border-radius:4px;background:var(--chart-track)}.progress-fill{border-radius:0 4px 4px 0;background:var(--series-1)}
.chart-tip{position:absolute;z-index:1000;max-width:280px;padding:7px 10px;border-radius:8px;background:#12305a;color:#fff;font-size:12.5px;line-height:1.4;box-shadow:0 6px 18px rgba(18,48,90,.25);pointer-events:none}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}}
@media print{.chart-tip{display:none}.chart-grid{break-inside:avoid}}
.hbars.counts .hbar-area{background:var(--chart-track)}.hbars.counts .hbar-track{grid-template-columns:minmax(0,1fr) 96px}
.chart-grid{align-items:start}.risk-map{max-width:260px}.rm-cell{font-size:13px}
.chart-sub{margin:18px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--chart-muted);font-weight:600}
.due-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.due-list li{display:grid;grid-template-columns:minmax(0,1fr) auto 70px 40px;gap:10px;align-items:center;font-size:13px}
.due-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.due-date{font-size:12px;color:var(--chart-ink2);font-variant-numeric:tabular-nums}.due-list li.late .due-date{color:var(--st-crit);font-weight:600}
.due-meter{height:7px;border-radius:4px;background:var(--chart-track);overflow:hidden}.due-meter span{display:block;height:100%;background:var(--series-1);border-radius:0 4px 4px 0}
.due-list b{font-size:12px;text-align:right;font-variant-numeric:tabular-nums;color:var(--chart-ink2)}
.hbars.counts.paired .hbar-track{grid-template-columns:minmax(0,1fr) 128px}
@media(max-width:600px){.due-list li{grid-template-columns:minmax(0,1fr) 40px;row-gap:4px}.due-name{grid-column:1/-1;white-space:normal}.due-date{grid-column:1/-1}.due-meter{grid-column:1}}

/* Calm, compact type scale (2026-10-08). One scale for the whole app:
   page title 24 · section title 18 · card title 15 · body 14 · small 12.5 · labels 11. */
:root{--fs-title:24px;--fs-section:18px;--fs-card:15px;--fs-body:14px;--fs-small:12.5px;--fs-label:11px}
body{font-size:var(--fs-body);line-height:1.5}
.content{padding:24px 32px 56px!important}
.topbar{height:60px!important;padding:0 28px!important}
.breadcrumb{font-size:13px}.breadcrumb strong{font-weight:600}
.page-head{margin-bottom:18px!important;gap:16px}
.page-head h1{font-size:var(--fs-title)!important;line-height:1.25!important;margin:4px 0 6px!important;letter-spacing:-.01em;background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:var(--royal)!important;-webkit-text-fill-color:currentColor;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.page-head h1::after{display:none!important}
.page-head p{font-size:13.5px!important;line-height:1.55}
.eyebrow{font-size:var(--fs-label)!important;letter-spacing:.12em!important;margin-bottom:4px!important}
h2{font-size:var(--fs-card)}
.toolbar{margin-bottom:14px!important}.toolbar h2{font-size:var(--fs-section)!important;margin:0 0 2px!important}.toolbar small{font-size:13px}
.panel-head{padding:14px 18px!important}.panel-head h2{font-size:var(--fs-card)!important;font-weight:650}
.panel-body{padding:16px 18px!important}
.panel{border-top-width:2px!important}.quick-actions>button,.quick-actions>a.button,.tabs.tab-groups{border-top-width:2px!important}
.stats{gap:12px!important}.stat{padding:14px 16px!important}
.stat-label{font-size:12.5px!important}.stat-value{font-size:24px!important;margin:6px 0 2px!important;line-height:1.2}
.stat small{font-size:var(--fs-small)}.stat-icon{width:26px!important;height:26px!important;font-size:13px!important}
.project-facts{gap:6px!important}.project-facts .fact{font-size:12.5px!important;padding:3px 10px!important}
button,.button,input,select,textarea{font-size:13.5px}
.primary,button.primary{font-weight:600}
th{font-size:var(--fs-label)!important}td{font-size:13.5px}
.tag{font-size:11.5px!important}
.notice{font-size:13px!important;padding:10px 14px!important}
/* Step cards and their tabs */
.tabs.tab-steps{padding:10px!important;margin-bottom:18px!important}
.tabs.tab-steps .tab-step{padding:8px 12px!important;gap:10px!important;min-height:0!important}
.tab-step-text strong{font-size:14px!important}.tab-step-text small{font-size:12px!important}
.tab-step-num{width:26px!important;height:26px!important;font-size:12.5px!important}
.tabs.tab-steps .tab-group-items button{font-size:13.5px!important;padding:6px 12px!important;min-height:0}
/* Sidebar */
@media(min-width:1101px){.shell{grid-template-columns:232px minmax(0,1fr)!important}}
.sidebar .brand{font-size:18px!important;min-height:44px!important}
.sidebar .brand-icon,.sidebar .brand-icon img{width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;max-height:38px!important;flex:0 0 38px!important}
.sidebar .brand small{font-size:10px!important}
.sidebar .nav-item,.sidebar nav button{font-size:13.5px!important;padding-top:7px!important;padding-bottom:7px!important}
.sidebar .nav-symbol{width:28px!important;height:28px!important}.nav-label{font-size:10.5px!important}
.side-who strong{font-size:13px}.side-who small{font-size:11.5px}
/* Quick actions and dashboard */
.quick-actions strong{font-size:14px!important}.quick-actions small{font-size:var(--fs-small)!important}.qa-icon{width:32px!important;height:32px!important;font-size:15px!important}
.homepage-footer h2,.homepage-footer h3{font-size:14px!important}
@media(max-width:760px){.content{padding:18px 14px 40px!important}.topbar{height:auto!important;padding:10px 14px!important}.page-head h1{font-size:21px!important}.stat-value{font-size:21px!important}}
html[lang=km] .stat-value{font-size:22px!important}html[lang=km] .page-head h1{line-height:1.5!important}

/* Same scale on every page and tab, including Library, External sources, PDF import, reports and invitations. */
h1,.page-title,.report-header h2{font-size:var(--fs-title)!important;line-height:1.3!important;letter-spacing:-.01em}
.page-title{color:var(--royal)}
main h2,.panel h2,.legal-layout h2,.pdf-main h2,#reports h2{font-size:var(--fs-card)!important;line-height:1.35}
.toolbar h2{font-size:var(--fs-section)!important}
h3{font-size:14.5px!important;line-height:1.4}h4{font-size:var(--fs-body)!important}
p{font-size:var(--fs-body)}.page-head p,.toolbar small{font-size:13.5px!important}
small,.small,.muted small,.footer-note,p.small,.hint{font-size:var(--fs-small)!important}
label,.field,legend{font-size:13px!important}
button,.button,a.button,summary,input,select,textarea{font-size:13.5px}
.row-btn,.cycle button,.danger.row-btn{font-size:12.5px!important}
.tabs button,.tab-group-items button{font-size:13.5px!important}
.inline-meta,.inline-meta span{font-size:12.5px!important}
td,li{font-size:13.5px}.row-title{font-size:14px!important;font-weight:600}
th{font-size:var(--fs-label)!important;letter-spacing:.06em}
.chart-sub{font-size:var(--fs-label)!important}.tab-step-text small{font-size:var(--fs-small)!important}.stat small{font-size:var(--fs-small)!important}

/* Ask your documents (public/rag.mjs) */
.rag-page{max-width:1100px}
.rag-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.rag-head p{margin:2px 0 0;max-width:640px}
.rag-readiness{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}
.rag-ready{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid #e1e8ed;border-left:4px solid #c3c2b7}
.rag-ready.ok{border-left-color:#0ca30c}.rag-ready.warn{border-left-color:#d08a00;background:#fffaf0}.rag-ready.idle{border-left-color:#9aa8b5}
.rag-ready-icon{font-size:18px;line-height:1.2}.rag-ready strong{display:block;font-size:13.5px;color:#192a3a}.rag-ready small{display:block;margin-top:2px;color:var(--muted);line-height:1.45}
.rag-link{margin-top:6px;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--royal)!important;font-weight:600;min-height:0!important;cursor:pointer}.rag-link:hover{text-decoration:underline}
.rag-ready .info-tip{margin-left:6px;vertical-align:middle}
.rag-message{padding:10px 14px;border-radius:10px;background:#eef4fb;border:1px solid #cfe0f3;color:#12305a;font-size:13.5px}
.rag-ask .panel-body{display:grid;gap:14px}
.rag-question{display:grid;gap:6px;position:relative}.rag-question>span{font-weight:600;color:#192a3a}
.rag-question textarea{min-height:84px;padding:12px 14px;border-radius:10px;font-size:15px!important;line-height:1.5;resize:vertical}
.rag-count{justify-self:end;color:var(--muted)}
.rag-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rag-chips>span{font-size:12.5px;color:var(--muted);margin-right:2px}
.rag-chip{padding:5px 11px!important;border-radius:999px!important;border:1px solid #d9e2ea!important;background:#f7f9fb!important;font-size:12.5px!important;min-height:0!important;color:#2a3b4c;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rag-chip:hover{border-color:var(--royal)!important;color:var(--royal);background:#eef3fa!important}
.rag-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0}.rag-modes legend{font-weight:600;font-size:13px!important;margin-bottom:6px;color:#192a3a}
.rag-mode{display:flex!important;gap:8px;align-items:flex-start;padding:10px 12px;border:1px solid #dfe6ec;border-radius:10px;background:#fff;cursor:pointer}
.rag-mode:has(input:checked){border-color:var(--royal);box-shadow:inset 0 0 0 1px var(--royal);background:#f3f6fb}
.rag-mode.off{opacity:.6;cursor:not-allowed}.rag-mode input{margin-top:3px}.rag-mode strong{display:block;font-size:13.5px}.rag-mode small{display:block;color:var(--muted);margin-top:2px;line-height:1.4}
.rag-more summary{cursor:pointer;color:var(--royal);font-weight:600;font-size:13.5px}.rag-more[open] summary{margin-bottom:10px}.rag-more .hint{margin:6px 0 0;color:var(--muted)}
.rag-consent{display:flex!important;gap:8px;align-items:flex-start;line-height:1.45}.rag-consent input{margin-top:3px}
.rag-submit{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rag-submit .primary{min-width:120px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.rag-submit small{color:var(--muted)}
.rag-spin{width:14px;height:14px;border-radius:50%;border:2px solid #ffffff66;border-top-color:#fff;animation:rag-spin .8s linear infinite}@keyframes rag-spin{to{transform:rotate(360deg)}}
.rag-result .panel-head{align-items:flex-start}.rag-result .panel-head h2{margin-top:8px!important;font-size:16px!important}
.rag-claims{margin:0;padding-left:22px;display:grid;gap:14px}.rag-claims li::marker{color:var(--royal);font-weight:700}.rag-claims p{margin:0 0 6px;font-size:14.5px;line-height:1.6;color:#192a3a}
.rag-quote{margin:4px 0 0;padding:6px 10px;border-left:3px solid var(--gold);background:#fbf8ee;border-radius:0 8px 8px 0;font-size:13px;color:#4a5866;line-height:1.5}
.rag-cite{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:20px;padding:0 6px;margin-right:6px;border-radius:6px;background:var(--royal);color:#fff!important;font-size:11px;font-weight:700;text-decoration:none;vertical-align:1px}
.rag-none{padding:12px 14px;border-radius:10px;background:#fffaf0;border:1px solid #f1dfb5}.rag-none p{margin:0 0 6px;font-weight:600}.rag-none ul{margin:0;padding-left:18px;color:#4a5866}
.rag-limits{margin-top:14px}.rag-limits p{margin:4px 0 0}
.rag-result .hint{margin:12px 0 0;color:var(--muted);font-size:12.5px}
.rag-sources-title{margin:20px 0 8px!important}.rag-sources{display:grid;gap:8px}
.rag-source{border:1px solid #e1e8ed;border-radius:10px;background:#fff;scroll-margin-top:80px}.rag-source.used{border-color:#c9d6e6}
.rag-source summary{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;cursor:pointer;list-style:none}.rag-source summary::-webkit-details-marker{display:none}
.rag-source:not(.used) .rag-cite{background:#9aa8b5}.rag-source-title strong{display:block;font-size:13.5px}.rag-source-title small{color:var(--muted)}.rag-source-title b{color:var(--royal);font-weight:600}
.rag-source blockquote{margin:0 12px;padding:10px 12px;background:#f7f9fb;border-radius:8px;font-size:13px;line-height:1.6;white-space:pre-wrap;max-height:260px;overflow:auto}
.rag-source-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px 12px}.rag-source-foot small{color:var(--muted)}
.rag-source.flash{animation:rag-flash 1.4s ease}@keyframes rag-flash{0%,40%{box-shadow:0 0 0 3px var(--gold)}100%{box-shadow:none}}
@media(max-width:800px){.rag-readiness,.rag-modes{grid-template-columns:1fr}.rag-head{flex-direction:column}}
.rag-mode input,.rag-consent input{width:16px!important;height:16px;min-width:16px;flex:none;padding:0!important;margin:3px 0 0!important}.rag-mode>span{flex:1;min-width:0}.rag-consent>span{flex:1;min-width:0}
.rag-page *{min-width:0}.rag-ask textarea,.rag-ask select{width:100%;max-width:100%;box-sizing:border-box}.rag-chip{white-space:normal;text-align:left}
@media(max-width:600px){.rag-page{padding:16px 14px!important}.rag-ask .panel-body{padding:14px!important}}
