body{font-size:13px}
svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.brand b{font-size:16px}.brand small{font-size:11px}
.nav-label{font-size:9px;margin:18px 13px 7px}
.nav-item{padding:9px 12px;border-radius:10px;gap:11px;font-size:12px;color:#535965}
.nav-item:hover{color:#20242b}.menu-icon{width:18px;height:18px;flex:0 0 18px}
.nav-item.active .menu-icon{stroke-width:2.1}
main header h1{font-size:19px}main header p{font-size:11px}
#menuBtn{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;color:#4b5563;cursor:pointer;flex:0 0 34px}
#menuBtn:hover{background:#f3f6fa;color:#111827}#menuBtn svg{width:18px;height:18px}
.page-heading{display:flex;align-items:center;gap:12px}.page-heading>span{display:block}
.shell{transition:grid-template-columns .2s ease}.shell>aside{transition:padding .2s ease,width .2s ease}
.shell.sidebar-hidden{grid-template-columns:76px 1fr}.shell.sidebar-hidden>aside{opacity:1;transform:none;pointer-events:auto;overflow:hidden;padding:22px 10px;border-right:1px solid var(--line)}
.shell.sidebar-hidden .brand{padding:0 0 18px;justify-content:center}.shell.sidebar-hidden .brand img{width:46px;max-width:46px}.shell.sidebar-hidden .brand span,.shell.sidebar-hidden .nav-label,.shell.sidebar-hidden .nav-item span,.shell.sidebar-hidden .sidebar-foot{display:none}
.shell.sidebar-hidden .nav-item{justify-content:center;width:46px;height:42px;margin:0 auto 4px;padding:0;gap:0}.shell.sidebar-hidden .menu-icon{width:20px;height:20px;flex-basis:20px}.shell.sidebar-hidden .nav-item.active{border-radius:13px}
.stack-legend{display:flex;gap:13px;flex-wrap:wrap;margin:0 0 4px}.stack-legend span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.stack-legend i{width:8px;height:8px;border-radius:3px}
.stacked-chart{padding-top:12px}.stacked-bar{width:min(36px,72%);min-height:4px;display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:8px}.stacked-bar>i{display:block;min-height:1px}.stacked-bar>i:first-child{border-radius:0 0 7px 7px}.stacked-bar>i:last-child{border-radius:7px 7px 0 0}
.search{padding:8px 13px;display:flex;align-items:center;gap:8px;font-size:12px}
.search svg{width:16px;height:16px}.search input{width:210px}
.bell,.user{width:38px;height:38px}.bell svg{width:17px;height:17px}
.bell i{width:7px;height:7px;border:2px solid #fff;right:6px;top:5px}.user{font-size:12px}
.toolbar h2{font-size:15px}.toolbar p{font-size:11px}
.metric header{font-size:11px}.metric header i{padding:7px}.metric b{font-size:20px;margin-top:20px}.metric small{font-size:10px}
.panel-head h3{font-size:13px}.panel-head small{font-size:10px}
.table{font-size:11px}.table th{font-size:10px}
.module-card h3{font-size:14px;margin:16px 0 6px}.module-card p{font-size:11px}.module-card span{font-size:10px}
.rank b,.rank>strong{font-size:11px}.rank small{font-size:10px}
.progress-list article{font-size:11px}.filters select,.filters button,.btn{font-size:11px}
@media(max-width:700px){main header h1{font-size:17px}.toolbar h2{font-size:14px}.shell.sidebar-hidden{display:block}.shell.sidebar-hidden>aside{opacity:1;transform:none;pointer-events:auto;padding:26px 18px}.shell.sidebar-hidden .brand span,.shell.sidebar-hidden .nav-label,.shell.sidebar-hidden .nav-item span,.shell.sidebar-hidden .sidebar-foot{display:initial}.shell.sidebar-hidden .nav-item{justify-content:flex-start;width:100%;height:auto;margin:0;padding:9px 12px;gap:11px}.stack-legend{gap:8px}.stacked-bar{width:min(30px,68%)}}
.ai-chat-dock{position:fixed;right:28px;bottom:28px;z-index:80;touch-action:none}.ai-chat-fab{width:54px;height:54px;border:0;border-radius:18px;background:#111827;color:#fff;display:grid;place-items:center;box-shadow:0 14px 35px #11182740;cursor:grab}.ai-chat-fab:active{cursor:grabbing}.ai-chat-fab svg{width:24px;height:24px}.ai-chat-panel{position:absolute;right:0;bottom:66px;width:350px;height:460px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 22px 60px #11182730;display:flex;flex-direction:column;overflow:hidden;touch-action:auto}.ai-chat-panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid var(--line)}.ai-chat-panel header span{display:flex;align-items:center;gap:9px}.ai-chat-panel header svg{width:19px;height:19px;color:var(--blue)}.ai-chat-panel header button{border:0;background:#f2f3f5;width:28px;height:28px;border-radius:9px;cursor:pointer}.ai-chat-messages{flex:1;padding:14px;overflow:auto;display:flex;flex-direction:column;gap:9px;background:#fafbfc}.ai-chat-messages .bubble{font-size:11px}.ai-chat-panel form{display:flex;gap:7px;padding:11px;border-top:1px solid var(--line)}.ai-chat-panel form input{min-width:0;flex:1;border:1px solid var(--line);border-radius:11px;padding:10px;outline:0}.ai-chat-panel form button{border:0;border-radius:11px;background:#111827;color:#fff;width:40px;cursor:pointer}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.map-panel{padding:0;overflow:hidden;position:relative}.map-panel #outletMap{height:calc(100vh - 190px);min-height:560px}.map-legend{position:absolute;left:14px;bottom:26px;z-index:4;display:flex;gap:12px;background:#fffffff0;border:1px solid var(--line);border-radius:12px;padding:9px 11px;box-shadow:0 6px 22px #1112}.map-legend span{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600}.map-legend i{width:8px;height:8px;border-radius:50%}.map-side{padding:13px;max-height:calc(100vh - 190px);overflow:auto}.map-side>header{display:grid;gap:3px;padding:5px 4px 12px}.map-side>header b{font-size:14px}.map-side>header small{color:var(--muted)}#salesAchievement{display:grid;gap:5px}#salesAchievement button{border:0;background:#f7f8fa;border-radius:12px;padding:10px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}#salesAchievement button:hover{background:#edf3ff}#salesAchievement span{display:grid;gap:2px}#salesAchievement b{font-size:11px}#salesAchievement small{font-size:9px;color:var(--muted)}#salesAchievement strong{font-size:12px}.good{color:#159455!important}.mid{color:#d66d12!important}.low{color:#dc3545!important}.map-legend .good{background:#159455}.map-legend .mid{background:#e57b22}.map-legend .low{background:#dc3545}.maplibregl-popup-content{border-radius:15px!important;padding:13px!important;box-shadow:0 14px 35px #11182725!important}.map-popup>small{font-size:9px;color:#777}.map-popup h3{font-size:13px;margin:5px 0}.map-popup p{font-size:10px;color:#666;line-height:1.4;margin:0 0 10px}.map-popup>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.map-popup span{display:grid;font-size:9px;color:#777}.map-popup span b{font-size:11px;color:#222;margin-top:2px}
.user-create{margin-bottom:16px}.user-create form{display:grid;grid-template-columns:1.2fr 1.4fr .8fr 1fr auto;gap:9px}.user-create input,.user-create select,[data-user-name],[data-user-email],[data-user-role]{border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff;font-size:10px;max-width:180px}
@media(max-width:1050px){.map-layout{grid-template-columns:1fr}.map-panel #outletMap{height:620px}.map-side{max-height:none}}
@media(max-width:700px){.ai-chat-dock{right:16px;bottom:16px}.ai-chat-panel{position:fixed;left:12px;right:12px;bottom:82px;width:auto;height:min(470px,70vh)}.map-panel #outletMap{height:65vh;min-height:430px}.map-legend{flex-wrap:wrap;right:14px;bottom:18px}.map-side{display:none}.user-create form{grid-template-columns:1fr}}
.attendance-panel{padding:0;overflow:hidden}.attendance-legend{display:flex;gap:18px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.attendance-legend span{display:flex;align-items:center;gap:6px}.attendance-legend i{width:8px;height:8px;border-radius:3px;background:#dff4e8}.attendance-legend i.bad{background:#ffdfe5}.attendance-scroll{overflow:auto;max-height:calc(100vh - 245px)}.attendance-grid{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:10px}.attendance-grid th,.attendance-grid td{border-right:1px solid #eef0f3;border-bottom:1px solid #eef0f3}.attendance-grid thead th{position:sticky;top:0;z-index:3;background:#fff;padding:9px 5px;min-width:86px;text-align:center}.attendance-grid thead th small,.attendance-grid thead th b{display:block}.attendance-grid thead th small{color:#9aa0aa;font-size:9px;text-transform:uppercase;margin-bottom:3px}.attendance-grid thead th b{font-size:13px}.attendance-grid .sales-col{position:sticky;left:0;z-index:4;background:#fff;min-width:170px;text-align:left;padding:10px 12px}.attendance-grid tbody .sales-col{display:flex;align-items:center;gap:9px;height:82px}.attendance-grid .sales-col span{width:30px;height:30px;border-radius:10px;background:#e9f0fb;color:#315c9f;display:grid;place-items:center;font-weight:800}.attendance-grid .sales-col b{font-size:11px}.att-day{height:82px;padding:7px;background:#fff;vertical-align:top}.att-day.sunday,.attendance-grid th.sunday{background:#f5f6f8;color:#a6abb3}.att-day.sunday small{display:block;text-align:center;margin-top:25px}.att-day.empty-day{background:#fafbfc}.att-time{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-radius:6px;background:#eaf7ef;color:#23734b;padding:4px 6px;margin-bottom:4px;font-size:9px;font-weight:700;cursor:pointer}.att-time:not([data-att-photo]){background:#f2f3f5;color:#b3b7bd;cursor:default}.att-time i{font-size:7px;font-style:normal;opacity:.7}.att-time.danger{background:#ffe5ea;color:#bf334d}.att-hours{display:block;text-align:center;color:#7e8590;font-size:8px;margin-top:5px}.photo-modal{position:fixed;inset:0;background:#121722b8;z-index:80;display:grid;place-items:center;padding:25px}.photo-modal>div{background:#fff;border-radius:20px;padding:18px;width:min(440px,95vw);text-align:center;box-shadow:0 25px 80px #0005}.photo-modal img{display:block;width:100%;max-height:65vh;object-fit:contain;border-radius:14px;background:#f4f5f7;margin:12px 0}.photo-modal small{color:#606874;font-weight:700}.photo-modal p{margin:8px 0 2px;font-size:12px;color:var(--muted)}.photo-close{position:absolute;right:25px;top:20px;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#222;font-size:24px;cursor:pointer}@media(max-width:700px){.attendance-scroll{max-height:calc(100vh - 225px)}.attendance-grid .sales-col{min-width:145px}.attendance-legend{flex-wrap:wrap;gap:8px 14px}}
