:root{color-scheme:light;--bg:#f4f8f5;--panel:#fff;--panel-soft:#f7faf8;--ink:#141821;--muted:#5e6c7b;--soft:#93a1ad;--line:#dde7e4;--line-strong:#cbd8d5;--accent:#8ab99c;--accent-hover:#74a989;--accent-strong:#2f8b73;--accent-soft:#e4f2ec;--peach:#ffd9cf;--peach-soft:#fff1eb;--blue:#2563eb;--danger:#b42318;--danger-soft:#fef3f2;--warn:#b54708;--ok:#027a48}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.dashboard{grid-template-columns:272px minmax(0,1fr)}.auth-page,.dashboard{display:grid;min-height:100vh}.auth-page{place-items:center;background:radial-gradient(circle at 72% 18%,rgba(255,217,207,.22),transparent 32%),linear-gradient(110deg,#a9cdb9,#dfeee7 50%,#fff);padding:20px}.auth-card{display:grid;width:min(560px,100%);grid-gap:22px;gap:22px;justify-items:center;border:0;border-radius:8px;background:transparent;padding:26px;text-align:center;box-shadow:none}.login-card{align-content:start}.auth-brand{gap:0}.auth-brand .brand-symbol{width:180px;height:150px}.auth-subtitle{margin-top:8px;color:#566675;font-size:16px}.brand-lockup{display:grid;justify-items:center}.brand-symbol{display:block;object-fit:contain}.loading-brand .brand-symbol{width:112px;height:92px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.nav{flex-direction:column;gap:24px;border-right:1px solid var(--line);background:hsla(0,0%,100%,.92);padding:22px}.logo,.nav{display:flex}.logo{align-items:center;gap:12px;min-height:48px}.logo-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:var(--ink);color:#fff;font-size:14px;font-weight:800}.brand-logo-mark{overflow:hidden;background:var(--peach-soft)}.brand-logo-mark img{width:34px;height:34px;object-fit:contain}.eyebrow,.logo span,.nav-card span{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.logo strong{display:block;margin-top:2px;font-size:18px}.nav-links{display:grid;grid-gap:6px;gap:6px}.ghost-button,.nav-links button{display:flex;align-items:center;gap:10px;min-height:42px;border:0;border-radius:8px;background:transparent;color:var(--muted);padding:0 12px;font-weight:700;text-align:left}.nav-links button.active,.nav-links button:hover{background:var(--accent-soft);color:var(--accent-strong)}.nav-card{margin-top:auto;display:grid;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:14px}.nav-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.ghost-button{justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink)}.main{min-width:0;background:linear-gradient(180deg,hsla(0,0%,100%,.62),transparent 210px),var(--bg);padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}h1,h2,h3,p{margin:0}h1{margin-top:4px;font-size:32px;line-height:1.1}h2{max-width:740px;margin-top:8px;font-size:30px;line-height:1.14}h3{margin-top:3px;font-size:18px;line-height:1.2}.inline-form,.panel-actions,.panel-head,.row-actions,.topbar-actions{display:flex;align-items:center}.topbar-actions{justify-content:flex-end;gap:10px}.topbar-status{display:inline-flex;min-height:34px;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:0 12px;font-size:13px;font-weight:700}.topbar-status.error{border-color:#fecdca}.storage-alert,.topbar-status.error{background:var(--danger-soft);color:var(--danger)}.storage-alert{display:grid;grid-gap:6px;gap:6px;border:1px solid #fecdca;border-radius:8px;margin-bottom:18px;padding:14px 16px}.storage-alert strong{font-size:15px}.storage-alert span{color:#912018;font-size:14px;line-height:1.45}.page-stack{display:grid;grid-gap:18px;gap:18px}.hero-panel,.panel,.stat-card,.toolbar-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.hero-panel{display:flex;min-height:190px;align-items:flex-end;justify-content:space-between;gap:24px;border-color:#d9e9e2;background:linear-gradient(120deg,rgba(228,242,236,.92),hsla(0,0%,100%,.96)),var(--panel);padding:28px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.stat-card{display:grid;grid-gap:10px;gap:10px;padding:18px}.stat-card span{color:var(--muted);font-size:13px;font-weight:700}.stat-card strong{font-size:28px;line-height:1}.two-columns{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);grid-gap:18px;gap:18px}.two-columns.align-start{align-items:start}.panel{min-width:0;padding:18px}.panel.wide{min-height:360px}.panel-head{justify-content:space-between;gap:16px;margin-bottom:16px}.panel-actions{gap:8px}.toolbar-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px}.danger-button,.icon-button,.mini-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;font-weight:750}.primary-button,.secondary-button{min-height:42px;border:1px solid transparent;padding:0 15px}.primary-button{background:var(--ink);color:#fff}.secondary-button{background:var(--accent);color:#fff}.icon-button.accent:hover,.secondary-button:hover{background:var(--accent-hover)}.mini-button{min-width:92px;min-height:34px;padding:0 12px}.danger-button,.icon-button,.mini-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.danger-button,.icon-button{width:40px;height:40px;flex:0 0 40px}.danger-button:hover,.icon-button:hover,.mini-button:hover{background:var(--panel-soft)}.icon-button.accent{border-color:var(--accent);background:var(--accent);color:#fff}.danger-button{color:var(--danger)}.inline-form{gap:8px}.form-stack input,.form-stack select,.inline-form input,.search-field input{width:100%;min-width:0;height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);outline:0;padding:0 12px}.login-card .form-stack{width:min(610px,100%)}.login-card .form-stack>label>input,.login-password-field{height:70px;border:2px solid #d7e0e6;border-radius:999px;background:#fff;box-shadow:0 1px 0 rgba(20,24,33,.02)}.login-card .form-stack>label>input,.login-password-field input{padding:0 22px;color:var(--ink);font-size:16px}.login-password-field input{height:auto;border:0;background:transparent}.login-card .login-password-field input:focus{box-shadow:none}.login-password-field{display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:center}.login-card .form-stack label:focus-within>input,.login-password-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(138,185,156,.18)}.login-password-field button{display:grid;width:44px;height:44px;place-items:center;border:0;background:transparent;color:var(--muted)}.auth-submit{width:auto;min-width:200px;min-height:64px;border-radius:999px;background:var(--accent);padding:0 34px;color:#fff;box-shadow:0 4px 10px rgba(47,89,70,.22)}.auth-submit:hover{background:var(--accent-hover)}.form-stack input:focus,.form-stack select:focus,.inline-form input:focus,.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.form-stack{display:grid;grid-gap:14px;gap:14px}.form-stack label{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:13px;font-weight:750}.form-stack select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.password-row{display:grid;grid-template-columns:minmax(0,1fr) 40px 40px;grid-gap:8px;gap:8px}.full-button{width:100%}.search-field{display:flex;width:min(520px,100%);align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:0 12px}.search-field input{border:0;padding:0}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:10px;gap:10px}.project-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:74px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.compact-list span,.district-list span,.project-card span,.project-card strong,.store-list span,.store-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card span,.project-card strong,.store-list span,.store-list strong{display:block}.project-card span,.store-list span{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.35}.compact-list,.district-list,.store-list{display:grid;grid-gap:8px;gap:8px}.compact-list button,.district-list button,.store-list button{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:10px;min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;text-align:left}.store-list button{min-height:80px;align-items:center;padding:14px 15px}.store-list button svg{flex:0 0 auto}.district-list button{justify-content:flex-start}.compact-list button:hover,.district-list button.active,.district-list button:hover,.store-list button.active,.store-list button:hover{border-color:var(--accent);background:var(--accent-soft)}.store-list button div{min-width:0}.knowledge-layout{display:grid;grid-template-columns:260px 320px minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.knowledge-layout.single-district{grid-template-columns:340px minmax(0,1fr)}.districts-panel,.files-panel,.stores-panel{min-height:660px}.files-panel{min-width:0}.file-table{border:1px solid var(--line);border-radius:8px;overflow:hidden}.file-search{display:flex;min-height:52px;align-items:center;gap:10px;border-bottom:1px solid var(--line);background:#fff;color:var(--muted);padding:0 14px}.file-search input{width:100%;min-width:0;height:40px;border:0;background:transparent;color:var(--ink);outline:0}.file-search:focus-within{box-shadow:inset 0 0 0 2px rgba(138,185,156,.32)}.file-pagination{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);background:var(--panel-soft);color:var(--muted);padding:8px 12px;font-size:13px;font-weight:750}.file-pagination div,.file-pagination label{display:flex;align-items:center;gap:8px}.file-pagination select{height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);outline:0;padding:0 8px}.file-row{display:grid;grid-template-columns:minmax(180px,1fr) 120px 100px 96px;grid-gap:12px;gap:12px;align-items:center;min-height:58px;border-top:1px solid var(--line);padding:10px 12px}.file-row:first-child{border-top:0}.file-head{min-height:40px;background:var(--panel-soft);color:var(--muted);font-size:12px;font-weight:750}.file-row small,.file-row strong{display:block;min-width:0;overflow-wrap:anywhere}.file-row small{margin-top:4px;color:var(--danger);font-size:12px}.status{display:inline-flex;width:-moz-fit-content;width:fit-content;max-width:100%;border-radius:999px;padding:5px 9px;background:#f2f4f7;color:var(--muted);font-size:12px;font-weight:750}.status.completed{background:#ecfdf3;color:var(--ok)}.status.failed{background:var(--danger-soft);color:var(--danger)}.status.in_progress{background:#fff7ed;color:var(--warn)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgba(17,24,39,.36);padding:18px}.notice-modal{display:grid;width:min(440px,100%);grid-gap:18px;gap:18px;justify-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:26px;text-align:center;box-shadow:0 24px 80px rgba(17,24,39,.18)}.notice-modal h2{margin:0;font-size:22px;line-height:1.2}.notice-modal p{margin-top:8px;color:var(--muted);font-size:15px;line-height:1.5}.notice-icon{display:grid;width:54px;height:54px;place-items:center;border-radius:999px;background:var(--panel-soft)}.notice-modal.loading .notice-icon{background:var(--accent-soft);color:var(--accent)}.notice-modal.ok .notice-icon{background:#ecfdf3;color:var(--ok)}.notice-modal.error .notice-icon{background:var(--danger-soft);color:var(--danger)}.count-pill{display:inline-flex;min-width:34px;height:28px;align-items:center;justify-content:center;border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:13px;font-weight:800}.empty,.empty-state span,.loading-state{color:var(--muted);font-size:14px}.empty-state,.loading-state{display:grid;min-height:220px;place-items:center;grid-gap:8px;gap:8px;padding:28px;text-align:center}.empty-state{color:var(--soft)}.empty-state strong{color:var(--ink)}.hidden-input{display:none}.account-list{display:grid;grid-gap:10px;gap:10px}.account-card{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.account-card span,.account-card strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-card span{margin-top:4px;color:var(--muted);font-size:13px}.role-pill{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:0 10px;font-size:12px;font-weight:800}.role-pill.admin{background:#eff4ff;color:var(--blue)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1180px){.knowledge-layout,.knowledge-layout.single-district,.two-columns{grid-template-columns:1fr}.districts-panel,.files-panel,.stores-panel{min-height:auto}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:840px){.dashboard{grid-template-columns:1fr}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;border-right:0;border-bottom:1px solid var(--line)}.nav-links{grid-template-columns:repeat(3,1fr)}.nav-card{display:none}.main{padding:18px}.hero-panel,.toolbar-panel,.topbar{align-items:flex-start;flex-direction:column}.panel-actions,.topbar-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}}@media (max-width:620px){.main,.nav{padding:14px}.logo{display:none}.nav-links button{justify-content:center;padding:0 8px}.nav-links button svg{flex:0 0 auto}.file-row,.stats-grid{grid-template-columns:1fr}.file-head{display:none}h1{font-size:28px}h2{font-size:24px}}