@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&amp;display=swap');

:root{--brand:#006c45;--brand-dark:#004d35;--brand-soft:#e8f3ef;--gold:#c9a646;--ink:#1f2a37;--muted:#6b7280;--line:#e3e9e6;--surface:#fff;--page:#f7f9f8;--shadow:0 8px 28px rgba(24,63,50,.07)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"IBM Plex Sans Arabic","Tajawal","Noto Kufi Arabic","Segoe UI",Tahoma,sans-serif;color:var(--ink);font-variant-numeric:tabular-nums}body{background:var(--page);line-height:1.55}button,input,select,textarea{font:inherit}button{transition:transform .18s,box-shadow .18s,background .18s}button:hover{transform:translateY(-1px)}

.login{min-height:100vh;position:relative;overflow:auto;display:flex!important;flex-direction:column;align-items:center;justify-content:center;padding:38px 20px 120px;background:linear-gradient(180deg,rgba(247,244,236,.63),rgba(0,77,53,.38)),url('riyadh-background.png') center/cover fixed}.login.hidden{display:none!important}.login:after{content:"";position:absolute;inset:auto 0 0;height:150px;background:linear-gradient(180deg,rgba(0,77,53,.65),rgba(0,77,53,.96));z-index:0}.login-brand,.login-card,.login-features,.platform-creator{position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:18px;margin-bottom:22px;text-align:right;color:var(--brand-dark)}.login-brand img{width:112px;height:112px;object-fit:contain;border-radius:25px;box-shadow:0 9px 30px rgba(0,77,53,.14)}.login-brand h1{font-size:54px;line-height:1;margin:0;font-weight:700}.login-brand p{font-size:19px;margin:8px 0 0;font-weight:600}.login-card{width:min(560px,calc(100vw - 32px));padding:34px 42px;border:1px solid rgba(255,255,255,.92);border-radius:28px;background:rgba(255,255,255,.94);box-shadow:0 28px 80px rgba(0,48,34,.22);backdrop-filter:blur(14px);display:grid;gap:10px}.login-security{width:74px;height:74px;margin:auto;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-dark);font-size:36px;border:1px solid #d3e8e0}.login-card h2{text-align:center;color:var(--brand-dark);font-size:30px;margin:5px 0 0}.login-card>p,.login-card>small{text-align:center;color:var(--muted);margin:0}.login-divider{display:flex;align-items:center;gap:14px;color:#52615b;margin:10px 0}.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}.login-card label{font-weight:600;color:#35433e}.login-card input{height:49px;border:1px solid #cad5d0;border-radius:11px;padding:0 14px;background:#fff;outline:0}.login-card input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,108,69,.11)}.login-card button{height:52px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;font-weight:700;font-size:17px;cursor:pointer;box-shadow:0 10px 22px rgba(0,108,69,.2)}.login-features{position:absolute;bottom:42px;display:flex;gap:44px;color:#fff;font-weight:600}.platform-creator{position:absolute;bottom:13px;color:rgba(255,255,255,.9);font-size:13px}

.shell{min-height:100vh;display:grid!important;grid-template-columns:minmax(0,1fr) 280px;direction:ltr;background:var(--page)}.shell.hidden{display:none!important}.shell>aside{grid-column:2;direction:rtl;position:sticky;top:0;height:100vh;overflow:auto;background:#fff;border-left:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;z-index:20;box-shadow:-7px 0 24px rgba(36,67,57,.025)}.shell>main{grid-column:1;direction:rtl;min-width:0;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:12px;padding:2px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:12px;color:var(--brand-dark)}.logo img{width:58px;height:58px;object-fit:contain;border-radius:14px}.logo b{display:block;font-size:24px}.logo small{display:block;color:var(--muted)}aside nav{display:grid;gap:5px}.nav-group{display:grid;gap:4px}.group-title,aside nav button,.aside-foot button{width:100%;border:0;border-radius:11px;background:transparent;color:#40504a;padding:11px 13px;display:flex;align-items:center;gap:11px;text-align:right;cursor:pointer;font-weight:500}.group-title{color:var(--brand-dark)!important;font-weight:700!important}.group-items{padding-right:10px!important;margin-right:17px!important;border-right:1px solid #dce8e3!important}.group-items button{font-size:14px!important}.nav-icon{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 22px}.nav-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}aside nav button:hover,.aside-foot button:hover{background:var(--brand-soft);color:var(--brand-dark)}aside nav button.active{color:#fff;background:linear-gradient(135deg,#14825b,var(--brand));box-shadow:0 8px 18px rgba(0,108,69,.19)}.aside-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:10px}.aside-foot small{text-align:center;color:var(--muted);font-size:11px}

header{height:90px;position:sticky;top:0;z-index:15;display:grid;grid-template-columns:minmax(250px,1fr) auto minmax(250px,1fr);align-items:center;padding:10px 28px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(23,63,49,.045);backdrop-filter:blur(12px)}.header-identity{display:flex;align-items:center;gap:12px;justify-self:start}.header-identity img{width:60px;height:60px;object-fit:contain;border-radius:14px}.header-identity b{display:block;color:var(--brand-dark);font-size:20px}.header-identity small{display:block;color:var(--muted);font-size:13px}header>p{color:#56655f;font-size:13px}.user{justify-self:end;display:flex;align-items:center;gap:10px}.user div{display:grid}.user small{color:var(--muted)}.user i{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;font-style:normal;font-weight:700}.bell{font-size:20px;color:var(--brand-dark)}#content{padding:28px;flex:1}.app-footer{text-align:center;color:var(--muted);font-size:12px;padding:12px 20px 18px}

.card{background:var(--surface);border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:var(--shadow)!important}.panel{padding:20px}.panel h3{color:#294139;margin-top:0}.kpis{gap:16px}.kpi{min-height:120px;padding:18px!important}.kpi strong{color:var(--brand-dark)}.form{gap:16px;padding:22px!important}.form label{font-weight:600;color:#35433e}.form input,.form select,.form textarea,#search,#licenseSearch{width:100%;border:1px solid #ced9d4!important;border-radius:10px!important;background:#fff!important;padding:10px 12px!important;color:var(--ink);outline:0}.form input:focus,.form select:focus,.form textarea:focus,#search:focus,#licenseSearch:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px rgba(0,108,69,.1)}.primary{background:linear-gradient(135deg,var(--brand),var(--brand-dark))!important;color:#fff!important;border:0!important;border-radius:10px!important;padding:10px 17px!important;box-shadow:0 7px 16px rgba(0,108,69,.16)}.row-action,.location-btn,.text-action{border:1px solid #bdd8cd!important;background:var(--brand-soft)!important;color:var(--brand-dark)!important;border-radius:9px!important}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th{background:#f1f6f4!important;color:#385048!important;font-weight:700!important;white-space:nowrap}th,td{padding:11px 13px!important;border-bottom:1px solid #e8eeeb!important;text-align:right}tbody tr:hover{background:#f7fbf9}.badge{border-radius:999px!important}.toolbar{gap:12px}

.home-welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.home-welcome h1{font-size:26px;color:var(--brand-dark);margin:0}.home-welcome p{color:var(--muted);margin:5px 0 0}.welcome-date{color:#61706b;font-size:13px}.home-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.home-kpi{display:flex;align-items:center;gap:14px}.home-kpi .kpi-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:var(--brand);background:var(--brand-soft);flex:0 0 48px}.home-kpi .kpi-icon svg{width:27px;height:27px;stroke:currentColor;fill:none;stroke-width:1.8}.home-kpi div:last-child{display:grid}.home-kpi span{font-size:13px;color:#4b5a55}.home-kpi strong{font-size:27px;line-height:1.2}.home-kpi small{font-size:11px}.home-overview{display:grid;grid-template-columns:1fr 2fr;gap:16px;margin-bottom:16px}.quality-overview{display:flex;align-items:center;justify-content:space-around;gap:15px}.quality-overview h3{margin:0}.quality-overview>b{color:var(--brand)}.home-ring{--score:0;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand) calc(var(--score)*1%),#e4ece8 0);position:relative}.home-ring:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:white}.home-ring strong{z-index:1;color:var(--brand-dark);font-size:20px}.followup-overview{display:flex;align-items:center;justify-content:space-between}.followup-overview>div:first-child{display:grid}.followup-overview strong{font-size:30px;color:var(--brand-dark)}.followup-overview span{color:var(--muted)}.trend-line{width:55%;height:70px;display:flex;align-items:flex-end;gap:7px}.trend-line i{flex:1;border-radius:6px 6px 2px 2px;background:linear-gradient(var(--brand),#9ad0bd);height:35%}.trend-line i:nth-child(2),.trend-line i:nth-child(5){height:72%}.trend-line i:nth-child(3),.trend-line i:nth-child(7){height:52%}.trend-line i:nth-child(4){height:88%}.home-grid{align-items:stretch}.dashboard-bars{display:grid;gap:14px}.dashboard-bars>div>span{display:flex;justify-content:space-between;font-size:13px}.dashboard-bars i{height:10px;display:block;background:#edf2f0;border-radius:10px;overflow:hidden;margin-top:5px}.dashboard-bars em{height:100%;display:block;background:linear-gradient(90deg,#32a476,var(--brand));border-radius:10px}.home-donut-wrap{display:flex;align-items:center;justify-content:center;gap:35px;min-height:190px}.home-donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--brand) calc(var(--sor)/var(--total)*100%),var(--gold) 0);position:relative}.home-donut:after{content:"";position:absolute;inset:31px;border-radius:50%;background:#fff}.home-donut-wrap p{display:flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.sor{background:var(--brand)}.dot.ncr{background:var(--gold)}.repeated-list{display:grid;gap:9px}.repeated-list>div{display:flex;justify-content:space-between;padding:9px 11px;background:#f5f9f7;border-radius:9px}.repeated-list b{color:var(--brand-dark)}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title h3{margin:0}.text-action{padding:7px 11px;cursor:pointer}

@media(max-width:1280px){.home-kpis{grid-template-columns:repeat(3,1fr)}header{grid-template-columns:1fr auto}.header-identity{grid-column:1}.user{grid-column:2}header>p{display:none}}
@media(max-width:980px){.shell{grid-template-columns:minmax(0,1fr) 230px}.home-kpis{grid-template-columns:repeat(2,1fr)}.home-overview{grid-template-columns:1fr}.login-features{gap:18px;font-size:13px}}
@media(max-width:720px){.shell{display:block!important}.shell.hidden{display:none!important}.shell>aside{position:relative;width:100%;height:auto;max-height:none}.shell>main{width:100%}header{position:relative;height:auto;padding:10px 15px}.header-identity b{font-size:15px}.header-identity img{width:48px;height:48px}.user div,.bell{display:none}#content{padding:17px}.home-welcome{align-items:flex-start;gap:12px}.welcome-date{display:none}.home-kpis{grid-template-columns:1fr}.home-overview{grid-template-columns:1fr}.quality-overview{flex-wrap:wrap}.home-grid{grid-template-columns:1fr!important}.login{justify-content:flex-start;padding-top:25px}.login-brand img{width:78px;height:78px}.login-brand h1{font-size:38px}.login-brand p{font-size:14px}.login-card{padding:25px 22px}.login-features{position:relative;bottom:auto;margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.platform-creator{position:relative;bottom:auto;margin-top:20px}}
@media print{.shell>aside,header,.app-footer{display:none!important}.shell{display:block!important}#content{padding:0}.card{box-shadow:none!important}}
.visit-search-toolbar{display:grid;grid-template-columns:190px minmax(260px,1fr) auto;align-items:center;margin-bottom:16px}.visit-search-toolbar select{height:45px;border:1px solid #ced9d4;border-radius:10px;background:#fff;padding:0 12px;color:var(--ink)}.visit-search-toolbar input,.visit-search-toolbar .primary{height:45px}@media(max-width:720px){.visit-search-toolbar{grid-template-columns:1fr}}

/* الهوية المضبوطة: صفحة دخول دون تمرير، شعار شفاف، وقائمة خضراء */
.login{height:100vh;height:100svh;min-height:100svh;overflow:hidden;justify-content:center;padding:12px 20px 88px}.login:after{height:116px}.login-brand{gap:12px;margin-bottom:8px}.login-brand img{width:76px;height:76px;border-radius:0;box-shadow:none;background:transparent;filter:drop-shadow(0 6px 13px rgba(0,77,53,.17))}.login-brand h1{font-size:40px}.login-brand p{font-size:14px;margin-top:4px}.login-card{width:min(490px,calc(100vw - 32px));padding:18px 32px;border-radius:23px;gap:6px}.login-security{width:50px;height:50px;font-size:25px}.login-card h2{font-size:24px;margin:1px 0}.login-card>p,.login-card>small{font-size:11px}.login-divider{margin:4px 0}.login-card label{font-size:12px}.login-card input{height:40px}.login-card button{height:43px;font-size:14px}.login-features{bottom:36px;gap:34px;font-size:12px}.platform-creator{bottom:9px;font-size:11px}
.shell>aside{background:linear-gradient(180deg,#08764e 0%,#006c45 45%,#004d35 100%);border-left-color:#00422e;box-shadow:-8px 0 26px rgba(0,77,53,.14);scrollbar-color:rgba(255,255,255,.32) transparent}.logo{color:#fff;border-bottom-color:rgba(255,255,255,.2)}.logo img{width:62px;height:62px;border-radius:0;filter:brightness(0) invert(1);opacity:.98}.logo small{color:rgba(255,255,255,.72)}.group-title,aside nav button,.aside-foot button{color:rgba(255,255,255,.9);gap:12px}.group-title{color:#fff!important}.group-items{border-right-color:rgba(255,255,255,.25)!important}.nav-icon{width:25px;height:25px;flex-basis:25px}.nav-icon svg{width:25px;height:25px}aside nav button:hover,.aside-foot button:hover{background:rgba(255,255,255,.13);color:#fff}aside nav button.active{color:var(--brand-dark);background:#fff;box-shadow:0 9px 22px rgba(0,38,27,.21);font-weight:700}.aside-foot{border-top-color:rgba(255,255,255,.2)}.aside-foot small{color:rgba(255,255,255,.67)}
.header-identity img{border-radius:0;background:transparent}.notification-button{position:relative;width:42px;height:42px;border:1px solid #dce7e2;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--brand-dark);cursor:pointer}.notification-button:hover{background:var(--brand-soft);box-shadow:0 7px 16px rgba(0,77,53,.11)}.notification-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.notification-count{position:absolute;top:-4px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;display:grid;place-items:center;background:var(--gold);color:#fff;font-size:10px;font-weight:700;border:2px solid #fff}
.notification-count:empty{display:none}
.ui-action-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;margin-left:6px;pointer-events:none}.primary,.row-action,.location-btn,.text-action,.map-export-actions button,.download-grid button{display:inline-flex;align-items:center;justify-content:center;gap:5px}.home-kpi .kpi-icon{box-shadow:inset 0 0 0 1px rgba(0,108,69,.08)}
@media(max-height:700px) and (min-width:721px){.login{padding-bottom:78px}.login-brand img{width:62px;height:62px}.login-brand h1{font-size:34px}.login-card{padding:13px 28px;gap:4px}.login-security{width:40px;height:40px;font-size:21px}.login-card h2{font-size:21px}.login-card input{height:36px}.login-card button{height:38px}.login-features{bottom:30px}.platform-creator{bottom:6px}}
@media(max-width:720px){.login{min-height:100svh;height:100svh;justify-content:center;padding:10px 14px 104px}.login-brand{margin:0 0 8px}.login-card{padding:17px 20px}.login-features{position:absolute;bottom:36px;margin:0;display:flex;gap:12px;font-size:10px;white-space:nowrap}.platform-creator{position:absolute;bottom:10px;margin:0}.user .notification-button{display:grid}.shell>aside{background:linear-gradient(180deg,#08764e,#004d35)}}
.login-security svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.login-features span{display:inline-flex;align-items:center;gap:7px}.login-features svg{width:20px;height:20px;fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.aside-foot .nav-icon{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}


/* الوضعان الفاتح والداكن */
.theme-toggle{width:42px;height:42px;border:1px solid #dce7e2;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--brand-dark);cursor:pointer}.theme-toggle:hover{background:var(--brand-soft);box-shadow:0 7px 16px rgba(0,77,53,.11)}.theme-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body[data-theme="dark"]{--brand:#19a875;--brand-dark:#7dddb8;--brand-soft:#153c31;--gold:#dfbd59;--ink:#edf7f3;--muted:#a8bbb4;--line:#2b473e;--surface:#172a24;--page:#0e1c18;--shadow:0 10px 30px rgba(0,0,0,.25);background:var(--page);color:var(--ink);color-scheme:dark}body[data-theme="dark"] .shell,body[data-theme="dark"] .shell>main{background:var(--page)}body[data-theme="dark"] header{background:rgba(20,37,31,.96);border-bottom-color:var(--line);box-shadow:0 5px 20px rgba(0,0,0,.23)}body[data-theme="dark"] .header-identity b,body[data-theme="dark"] .home-welcome h1,body[data-theme="dark"] .panel h3,body[data-theme="dark"] .kpi strong,body[data-theme="dark"] .home-kpi strong,body[data-theme="dark"] .followup-overview strong,body[data-theme="dark"] .repeated-list b{color:#e7fff5}body[data-theme="dark"] .header-identity small,body[data-theme="dark"] header>p,body[data-theme="dark"] .user small,body[data-theme="dark"] .home-welcome p,body[data-theme="dark"] .welcome-date,body[data-theme="dark"] .home-kpi span,body[data-theme="dark"] .home-kpi small,body[data-theme="dark"] .muted{color:var(--muted)!important}body[data-theme="dark"] .card,body[data-theme="dark"] .panel{background:var(--surface)!important;border-color:var(--line)!important;box-shadow:var(--shadow)!important}body[data-theme="dark"] input,body[data-theme="dark"] select,body[data-theme="dark"] textarea,body[data-theme="dark"] #search,body[data-theme="dark"] #licenseSearch{background:#10221c!important;border-color:#36574c!important;color:#f2fbf7!important}body[data-theme="dark"] input::placeholder,body[data-theme="dark"] textarea::placeholder{color:#80978e}body[data-theme="dark"] select option{background:#10221c;color:#f2fbf7}body[data-theme="dark"] table{background:var(--surface);color:var(--ink)}body[data-theme="dark"] th{background:#20372f!important;color:#d8ede5!important;border-bottom-color:#355249!important}body[data-theme="dark"] td{border-bottom-color:#2a443b!important}body[data-theme="dark"] tbody tr:hover{background:#20372f}body[data-theme="dark"] .table-wrap{border-color:var(--line)}body[data-theme="dark"] .home-kpi .kpi-icon{background:#21463a;color:#75dbb5}body[data-theme="dark"] .home-ring:after,body[data-theme="dark"] .home-donut:after,body[data-theme="dark"] .license-donut:after{background:var(--surface)}body[data-theme="dark"] .dashboard-bars i,body[data-theme="dark"] .meter{background:#29443b}body[data-theme="dark"] .repeated-list>div,body[data-theme="dark"] .database-state,body[data-theme="dark"] .filter-chips{background:#20372f;color:var(--ink)}body[data-theme="dark"] .row-action,body[data-theme="dark"] .location-btn,body[data-theme="dark"] .text-action{background:#21463a!important;border-color:#3c6c5c!important;color:#a9f0d3!important}body[data-theme="dark"] .notification-button,body[data-theme="dark"] .theme-toggle{background:#1d342c;border-color:#35564b;color:#c8f5e3}body[data-theme="dark"] .notification-button:hover,body[data-theme="dark"] .theme-toggle:hover{background:#294a3f}body[data-theme="dark"] .notification-count{border-color:#1d342c}body[data-theme="dark"] .license-map-layout,body[data-theme="dark"] .map-license-list,body[data-theme="dark"] .map-layer-controls{background:#132720;color:var(--ink);border-color:var(--line)}body[data-theme="dark"] .map-license-list button{background:#1b332b;color:var(--ink);border-color:#35554a}body[data-theme="dark"] .map-license-list button:hover,body[data-theme="dark"] .map-license-list button.selected{background:#275344;color:#fff}body[data-theme="dark"] .license-modal{background:rgba(0,0,0,.72)}body[data-theme="dark"] .license-modal-card{background:var(--surface);color:var(--ink)}body[data-theme="dark"] code{background:#21463a;color:#b7f3da}body[data-theme="dark"] .app-footer{color:var(--muted)}body[data-theme="dark"] .shell>aside{background:linear-gradient(180deg,#07563c,#053c2c)}

/* أيقونات القائمة الجديدة وشارتات الجودة */
svg.nav-icon{width:25px;height:25px;flex:0 0 25px;fill:none!important;stroke:currentColor!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.group-title svg.nav-icon{opacity:.9}.group-title span{flex:1}.visits-filter-bar{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(220px,1.25fr) auto}.quality-filter-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.quality-filter-panel h3,.quality-filter-panel p{margin:0}.quality-filter-panel p{color:var(--muted);font-size:12px}.quality-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;flex:1}.quality-filter-grid select{height:43px;border:1px solid #ced9d4;border-radius:10px;background:#fff;padding:0 11px}.quality-count-donut-wrap{display:flex;align-items:center;justify-content:center;gap:30px;min-height:210px}.quality-count-donut{width:155px;height:155px;border-radius:50%;display:grid;place-items:center;position:relative}.quality-count-donut:after{content:"";position:absolute;inset:31px;border-radius:50%;background:var(--surface)}.quality-count-donut>div{position:relative;z-index:1;display:grid;text-align:center}.quality-count-donut strong{font-size:25px;color:var(--brand-dark)}.quality-count-donut span{font-size:11px;color:var(--muted)}.quality-donut-legend{display:grid;gap:10px}.quality-donut-legend span{display:flex;align-items:center;gap:8px}.quality-donut-legend i{width:11px;height:11px;border-radius:50%}.monthly-panel{grid-column:span 2}.monthly-visits-chart{height:245px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;padding-top:20px}.monthly-visits-chart>div{height:100%;display:grid;grid-template-rows:20px 1fr 25px;gap:5px;text-align:center;min-width:0}.monthly-visits-chart b{font-size:11px;color:var(--brand-dark)}.monthly-visits-chart i{height:100%;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,transparent,#f0f6f3);border-radius:8px}.monthly-visits-chart em{display:block;width:min(28px,72%);min-height:4px;background:linear-gradient(180deg,#22a674,#006c45);border-radius:7px 7px 2px 2px}.monthly-visits-chart span{font-size:10px;color:var(--muted);white-space:nowrap}.license-donut-wrap{min-height:210px}
body[data-theme="dark"] .quality-filter-grid select{background:#10221c;color:#f2fbf7;border-color:#36574c}body[data-theme="dark"] .quality-count-donut:after{background:var(--surface)}body[data-theme="dark"] .monthly-visits-chart i{background:linear-gradient(180deg,transparent,#20372f)}
@media(max-width:1100px){.visits-filter-bar{grid-template-columns:1fr 1fr}.quality-filter-panel{align-items:stretch;flex-direction:column}.quality-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.visits-filter-bar,.quality-filter-grid{grid-template-columns:1fr}.monthly-panel{grid-column:auto}.monthly-visits-chart{overflow-x:auto;grid-template-columns:repeat(12,48px)}.quality-count-donut-wrap{flex-direction:column;gap:16px}}
.shell>aside{overflow:hidden!important;padding:10px 12px!important}.logo{padding:0 7px 8px!important;margin-bottom:5px!important}.logo img{width:48px!important;height:48px!important}.logo b{font-size:20px!important}aside nav{gap:2px!important}.nav-group{gap:1px!important}.group-title,aside nav button,.aside-foot button{padding:6px 10px!important;min-height:34px!important}.group-items{padding-right:6px!important;margin-right:13px!important}.group-items button{font-size:12px!important}.nav-icon,.nav-icon svg,svg.nav-icon{width:21px!important;height:21px!important;flex-basis:21px!important}.aside-foot{padding-top:5px!important;gap:3px!important}.aside-foot small{font-size:9px!important}@media(max-height:720px) and (min-width:721px){.group-title,aside nav button,.aside-foot button{padding-top:4px!important;padding-bottom:4px!important;min-height:29px!important}.logo img{width:40px!important;height:40px!important}.logo b{font-size:18px!important}.group-items button{font-size:11px!important}}
.shell>aside{display:flex!important;flex-direction:column!important;height:100vh!important}.shell>aside #nav{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;justify-content:space-between!important;gap:4px!important;min-height:0!important}.shell>aside #nav>.nav-logout{margin-top:8px!important;border-top:1px solid rgba(255,255,255,.26)!important;padding-top:8px!important}.shell>aside .aside-foot{display:none!important}@media(max-height:760px) and (min-width:721px){.shell>aside{padding:7px 11px!important}.shell>aside .logo{padding-bottom:6px!important;margin-bottom:4px!important}.shell>aside .logo img{width:40px!important;height:40px!important}.shell>aside .logo b{font-size:18px!important}.shell>aside .logo small{display:none!important}.shell>aside #nav{gap:3px!important;justify-content:space-between!important}.shell>aside .nav-group{gap:2px!important}.shell>aside .group-title,.shell>aside nav button{min-height:29px!important;padding:4px 10px!important;font-size:12.25px!important;line-height:1.2!important}.shell>aside .group-items{margin-right:11px!important;padding-right:6px!important}.shell>aside .group-items button{font-size:11.5px!important}.shell>aside .nav-icon,.shell>aside .nav-icon svg,.shell>aside svg.nav-icon{width:19px!important;height:19px!important;flex-basis:19px!important}.shell>aside #nav>.nav-logout{margin-top:6px!important;padding-top:7px!important}}


/* v26.69 quality layout refresh */
.quality-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.quality-dashboard-grid>.donut-panel{min-width:0}
.quality-analysis-layout{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 2fr 1.15fr;gap:14px;align-items:start}
.quality-analysis-col{display:grid;gap:14px;align-content:start;min-width:0}
.quality-analysis-card,.distribution-panel,.compact-monthly-panel{min-width:0}
.quality-analysis-card h3,.distribution-panel h3,.compact-monthly-panel h3{text-align:center;margin-bottom:12px}
.quality-bars{display:grid;gap:12px}
.quality-bars>div{min-width:0}
.quality-bars span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;font-size:14px;line-height:1.6}
.quality-bars span b{white-space:nowrap;color:var(--brand-dark)}
.quality-bars i{margin-top:7px}
.quality-count-donut-wrap.quality-count-donut-vertical{display:grid;justify-items:center;gap:16px;min-height:auto;padding-top:4px}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-donut-legend{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-donut-legend span{display:flex;align-items:center;gap:7px}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-donut-legend em{font-style:normal;font-weight:700;color:var(--brand-dark)}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-donut-legend b{color:var(--brand-dark)}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-donut-legend i{order:3}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-count-donut{width:150px;height:150px}
.quality-count-donut-wrap.quality-count-donut-vertical .quality-count-donut:after{inset:30px}
.compact-monthly-panel{padding-inline:16px}
.compact-monthly-panel .monthly-visits-chart{height:210px;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:8px}
.compact-monthly-panel .monthly-visits-chart>div{grid-template-rows:20px 1fr 34px}
.compact-monthly-panel .monthly-visits-chart span{font-size:12px;white-space:normal;line-height:1.35}
.compact-monthly-panel .monthly-visits-chart em{width:min(40px,74%)}
@media(max-width:1100px){.quality-analysis-layout{grid-template-columns:1fr}.quality-dashboard-grid{grid-template-columns:1fr 1fr}.quality-dashboard-grid>.donut-panel:last-of-type{grid-column:span 2}}
@media(max-width:720px){.quality-dashboard-grid{grid-template-columns:1fr}.quality-dashboard-grid>.donut-panel:last-of-type{grid-column:auto}.compact-monthly-panel .monthly-visits-chart{grid-template-columns:repeat(3,minmax(90px,1fr));overflow-x:auto}}


/* v26.70 move featured observations to top blank area */
.quality-featured-observations{grid-column:span 2;min-height:270px;align-self:stretch}
.quality-featured-observations .quality-bars{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.quality-featured-observations .quality-bars>div{padding:6px 0}
.quality-featured-observations .quality-bars span{font-size:14px;line-height:1.55}
@media(max-width:1100px){.quality-featured-observations{grid-column:1/-1}.quality-featured-observations .quality-bars{grid-template-columns:1fr}}
