:root{
  font-family:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif;
  color:#13213a;background:#f5f7fb;
  --primary:#3564f4;--primary-dark:#2452df;--ink:#13213a;--muted:#74819a;
  --line:#dde4ef;--surface:#fff;--blue:#3564f4;--cyan:#18a7df;
  --green:#14b88a;--purple:#a74de4;--orange:#f59e0b;--coral:#f2553d;--slate:#64748b;
  --shadow:0 8px 26px rgba(32,55,91,.06)
}
*{box-sizing:border-box}
body{margin:0;background:#f5f7fb}
.hidden{display:none!important}
button,input,select,textarea{font:inherit}
button{border:0;border-radius:9px;padding:11px 17px;background:var(--primary);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s ease}
button:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 6px 16px #3564f42c}
button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.secondary{background:#eef2f8;color:#4c5c76}
.secondary:hover{background:#e2e8f2;color:#25334b;box-shadow:none}
a{color:var(--primary);text-decoration:none}
.ui-icon,button>svg,.brand svg,.brand-mark svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* 登录 */
.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#dfe8ff 0,transparent 34%),radial-gradient(circle at 86% 82%,#e9ddff 0,transparent 30%),#f6f8fc}
.login-card{width:min(430px,calc(100% - 32px));padding:42px;border:1px solid #e1e7f0;border-radius:22px;background:#fff;box-shadow:0 28px 80px #21345a1c;text-align:center}
.brand-mark,.brand-logo{display:grid;place-items:center;background:linear-gradient(145deg,#315ef1,#5b6ff4);color:#fff;box-shadow:0 8px 20px #345ff13a}
.brand-mark{width:66px;height:66px;border-radius:18px;margin:auto}
.brand-mark svg{width:34px;height:34px}
.login-card h1{margin:22px 0 8px;font-size:26px}
.login-card p{color:var(--muted);margin:0 0 26px;line-height:1.7}
.login-card label,dialog label{display:grid;gap:8px;text-align:left;margin:14px 0;color:#506079;font-weight:600;font-size:14px}
.login-card input,dialog input,dialog select,dialog textarea,.settings input,.settings textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);outline:none;transition:.18s}
.login-card input:focus,dialog input:focus,dialog select:focus,dialog textarea:focus,.settings input:focus,.settings textarea:focus{border-color:#7b9af8;box-shadow:0 0 0 3px #3564f414}
.login-card button{width:100%;margin-top:10px}
.error{color:#d9363e;min-height:24px;margin-top:12px}

/* 布局与白色侧栏 */
.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}
.app-shell>aside{position:sticky;top:0;height:100vh;background:#fff;color:var(--ink);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}
.brand{height:86px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid var(--line)}
.brand-logo{width:48px;height:48px;border-radius:13px}
.brand-logo svg{width:27px;height:27px}
.brand div{display:grid}.brand strong{font-size:18px}.brand small{color:var(--muted);margin-top:4px;font-size:12px}
#nav-tree{padding:14px 10px 20px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.nav-group{margin-bottom:8px;--tone:var(--blue)}
.nav-group.tone-cyan{--tone:var(--cyan)}.nav-group.tone-green{--tone:var(--green)}.nav-group.tone-purple{--tone:var(--purple)}.nav-group.tone-orange{--tone:var(--orange)}.nav-group.tone-slate{--tone:var(--slate)}
.group-title{display:flex;align-items:center;gap:9px;width:100%;background:transparent;color:#24344f;text-align:left;padding:9px 11px;border-radius:9px;font-size:14px;font-weight:700;box-shadow:none;transform:none}
.group-title:hover{background:#f5f7fb;color:var(--tone);box-shadow:none;transform:none}
.group-dot{width:8px;height:8px;border-radius:50%;background:var(--tone);box-shadow:0 0 0 4px color-mix(in srgb,var(--tone) 12%,transparent)}
.group-icon{color:var(--tone);display:grid}.group-icon .ui-icon{width:18px;height:18px}
.chevron{margin-left:auto;color:#a1adbe;font-size:18px;font-weight:400;line-height:1}
.group-items{display:none;padding:4px 0 2px}.group-items.open{display:block}
.nav-item{display:flex;width:100%;align-items:center;gap:12px;background:transparent;text-align:left;color:#65738c;padding:10px 13px;margin:2px 0;border-radius:9px;font-size:13.5px;box-shadow:none;transform:none}
.nav-item .ui-icon{width:18px;height:18px;color:#7b8aa2}
.nav-item:hover{background:#f1f5ff;color:#315ef1;box-shadow:none;transform:none}.nav-item:hover .ui-icon{color:#315ef1}
.nav-item.active{color:#fff;background:linear-gradient(100deg,#3670f6,#5864ed);box-shadow:0 7px 18px #3564f432}.nav-item.active .ui-icon{color:#fff}
.user-zone{position:relative;padding:16px 18px;border-top:1px solid var(--line);background:#fbfcfe}
.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#3e6ff6,#6c5ce7);font-weight:800;font-size:17px;padding:0;box-shadow:0 6px 15px #3564f436}
.user-menu{position:absolute;bottom:70px;left:16px;min-width:220px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 50px #20355924;padding:14px;z-index:30}
.user-info{display:grid;gap:4px;padding:3px 4px 13px;border-bottom:1px solid #edf1f6}.user-info span{color:var(--muted);font-size:12px}.user-menu .secondary{width:100%;margin-top:10px}

/* 工作区与页头 */
.workspace{min-width:0;padding:0 28px 50px;background:#f6f8fc}
.workspace>header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7ebf2;margin:0 -28px 24px;padding:0 28px;background:#f8f9fc}
.page-heading{display:flex;align-items:center;gap:13px}.page-icon{width:42px;height:42px;border-radius:11px;background:#eaf0ff;color:var(--primary);display:grid;place-items:center}.page-icon .ui-icon{width:22px;height:22px}
.workspace h2{margin:0 0 4px;font-size:23px;letter-spacing:-.02em}.workspace header p,.panel p,.feature-head p{margin:0;color:var(--muted);font-size:13px}
.header-actions{display:flex;align-items:center;gap:12px}.header-actions button{padding:11px 16px}
.notice{position:fixed;right:28px;top:96px;padding:12px 17px;border-radius:10px;background:#ecfdf5;color:#08735b;border:1px solid #bcebdc;box-shadow:var(--shadow);z-index:50}
#page-content{max-width:1700px;margin:0 auto}

/* 指标卡 */
.metrics{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:18px}.metrics.compact{grid-template-columns:repeat(4,1fr);margin-top:6px}.hero-metrics{margin-bottom:22px}
.metric,.panel,.resource-card,.feature-section{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.metric{padding:22px 24px;min-height:160px;position:relative;overflow:hidden;--tone:var(--blue);--soft:#edf3ff}
.metric.tone-green{--tone:var(--green);--soft:#e9fbf4}.metric.tone-purple{--tone:var(--purple);--soft:#f7edfd}.metric.tone-orange{--tone:var(--orange);--soft:#fff7e6}.metric.tone-coral{--tone:var(--coral);--soft:#fff0ed}
.metric:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-48px;top:-48px;background:var(--soft)}
.metric-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.metric-icon{width:48px;height:48px;border-radius:10px;background:var(--soft);color:var(--tone);display:grid;place-items:center}.metric-icon .ui-icon{width:25px;height:25px}.metric-top em{font-size:12px;font-style:normal;color:var(--tone);font-weight:700}
.metric b{display:block;font-size:28px;line-height:1;margin:22px 0 7px;color:#0c1830}.metric-label{display:block;color:#40506a;font-weight:600}.metric small{display:block;color:#98a3b5;font-size:11px;margin-top:5px}

/* 概览功能分区 */
.feature-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}.feature-section{padding:22px;--tone:var(--blue);--soft:#edf3ff}.feature-section.tone-green{--tone:var(--green);--soft:#e9fbf4}.feature-section.tone-purple{--tone:var(--purple);--soft:#f7edfd}
.feature-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:17px}.section-dot{width:10px;height:10px;border-radius:50%;background:var(--tone);margin-top:6px;box-shadow:0 0 0 4px var(--soft)}.feature-head h3{margin:0 0 5px;font-size:17px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.feature-item{min-height:76px;background:var(--soft);color:#263653;border:1px solid transparent;border-radius:10px;padding:12px 11px;display:grid;grid-template-columns:25px minmax(0,1fr);grid-template-rows:1fr auto;column-gap:7px;row-gap:2px;text-align:left;justify-content:stretch;box-shadow:none;transform:none}.feature-item .ui-icon{grid-row:1/3;color:var(--tone);width:21px;height:21px;align-self:center}.feature-item span{font-size:13px;font-weight:600;white-space:nowrap}.feature-item i{font-style:normal;font-size:10px;color:#8794aa}.feature-item:hover{background:#fff;color:var(--tone);border-color:color-mix(in srgb,var(--tone) 28%,#fff);box-shadow:0 7px 16px color-mix(in srgb,var(--tone) 12%,transparent);transform:translateY(-2px)}
.system-strip{margin-top:0!important}.system-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.system-grid>div{display:flex;align-items:center;justify-content:space-between;background:#f7f9fc;border-radius:9px;padding:14px 16px}.system-grid span{color:#65738c;font-size:13px}.system-grid b{color:var(--primary)}.live-badge{display:flex;align-items:center;gap:7px;color:#09926f;font-size:12px;background:#ecfbf6;border-radius:999px;padding:7px 11px}.live-badge i{width:7px;height:7px;border-radius:50%;background:#16b889;box-shadow:0 0 0 4px #16b8891e}

/* 面板、区块与流程 */
.panel{margin-top:18px;padding:22px}.panel h3{margin:0 0 7px;font-size:17px}.panel h3:has(.title-icon){display:flex;align-items:center;gap:9px}.title-icon{width:30px;height:30px;border-radius:8px;background:#edf3ff;color:var(--primary);display:grid;place-items:center}.title-icon .ui-icon{width:17px;height:17px}
.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px}.flow b{display:flex;align-items:center;gap:7px;padding:11px 13px;background:#edf3ff;border-radius:9px;color:#34548e;font-size:13px}.flow b .ui-icon{width:16px}.flow i{color:#a6b1c0}
.capabilities{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.capabilities>span{padding:12px;background:#f6f8fc;border-radius:9px;font-size:13px;display:flex;align-items:center;gap:9px}.tile-icon{width:29px;height:29px;border-radius:7px;background:#edf3ff;color:var(--primary);display:grid;place-items:center}.tile-icon .ui-icon{width:16px;height:16px}
.todo-list,.prereq-list{display:grid;gap:10px;margin-top:16px}.todo-list p,.prereq-list p{margin:0;padding:13px 15px;background:#f6f8fc;border-radius:9px;color:#52617a}.todo-list p{display:flex;align-items:center;gap:11px}.todo-list p>span:not(.todo-icon){flex:1}.todo-icon{width:32px;height:32px;border-radius:8px;background:#eaf0ff;color:var(--primary);display:grid;place-items:center;flex:none}.todo-icon.ui-icon{padding:7px}.todo-list b,.prereq-list b{color:var(--ink)}.prereq-list b{display:block;margin-bottom:4px}
.panel-head,.row,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-head>div{min-width:0}

/* 搜索、表格 */
.toolbar{margin:18px 0}.search-box{width:min(440px,75%);height:42px;border:1px solid var(--line);border-radius:9px;background:#f9fafc;display:flex;align-items:center;padding:0 12px;color:#8a97aa}.search-box .ui-icon{width:17px}.search-box input{border:0;outline:0;background:transparent;width:100%;padding:0 9px;color:var(--ink)}.count-pill{font-size:12px;background:#f0f3f8;color:#65738c;padding:7px 11px;border-radius:999px}
.table-wrap{overflow:auto;margin-top:16px;border:1px solid #e5eaf2;border-radius:10px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:14px 13px;border-bottom:1px solid #edf1f6;font-size:13px}th{color:#63718a;background:#f7f9fc;white-space:nowrap;font-weight:700}tbody tr:hover{background:#f8faff}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;padding:58px 20px;color:#8b97aa}.review-btn{background:#f59e0b;color:#fff;padding:7px 13px;font-size:12px}

/* 资源卡 */
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:15px}.resource-card{padding:18px;transition:.18s}.resource-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #20355912}.resource-title{display:flex;align-items:center;gap:11px;min-width:0}.resource-title>span{width:38px;height:38px;border-radius:9px;background:#edf3ff;color:var(--primary);display:grid;place-items:center}.resource-title .ui-icon{width:20px}.resource-card h4{margin:0 0 5px}.resource-card code{color:#8a96a8;font-size:11px}.status{font-size:11px;padding:5px 9px;border-radius:999px;background:#e8f8f2;color:#08765b;white-space:nowrap}.status.pending{background:#fff4db;color:#99620b}.status.paused,.status.disabled{background:#feeceb;color:#ad3735}.detail-list{margin:14px 0}.detail-list p{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1f6;padding:9px 0;margin:0;font-size:12px}.detail-list span{color:#7e8ba0}.detail-list b{text-align:right;overflow-wrap:anywhere}.edit{width:100%;margin-top:8px}

/* 图表、标签页、AI、设置 */
.bars{margin-top:22px}.bars>div{margin:16px 0}.bars label{display:flex;justify-content:space-between}.bars span,.pct-track{display:block;background:#edf1f6;height:10px;border-radius:99px;margin-top:8px;overflow:hidden}.bars i,.pct-track i{display:block;height:100%;background:linear-gradient(90deg,#3564f4,#6f7df7);border-radius:99px}.pct-list{margin-top:16px;display:grid;gap:14px}.pct-list label{display:flex;justify-content:space-between;font-size:13px;color:#52617a}
.tab-bar{display:flex;gap:8px;margin-top:20px;border-bottom:1px solid var(--line)}.tab{background:transparent;color:#718099;border-radius:8px 8px 0 0;padding:11px 20px;font-size:13px;box-shadow:none;transform:none}.tab:hover{background:#f0f4ff;color:var(--primary);box-shadow:none;transform:none}.tab.active{color:var(--primary);font-weight:700;border-bottom:2px solid var(--primary);margin-bottom:-1px}.tab-panel.hidden{display:none}
.ai-banner{display:flex;gap:18px;align-items:center;margin-top:18px;padding:24px;border-radius:14px;background:linear-gradient(120deg,#f6ecff,#edf3ff);border:1px solid #e1d8f5}.ai-badge{width:62px;height:62px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#9c4ee0,#5c62ef);color:#fff;font-weight:900;font-size:22px;flex:none}.ai-banner h3{margin:0 0 6px}.ai-banner p{margin:0;color:#58677f}
.settings form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.settings label{display:grid;gap:8px;color:#56657e;font-size:13px;font-weight:600}.settings .wide{grid-column:1/-1}.settings button{width:max-content}.summary-line{margin:6px 0 14px;padding:12px 14px;background:#f6f8fc;border-radius:9px;color:#52617a}

/* 评价与投诉 */
.review-tabs{display:flex;align-items:center;gap:7px;padding:6px;background:#eef2f8;border-radius:10px;margin-bottom:22px}.review-tabs button{background:transparent;color:#52617a;padding:10px 16px;border-radius:8px;box-shadow:none;transform:none;outline:none}.review-tabs button:hover{background:#f8faff;color:var(--primary);box-shadow:none;transform:none}.review-tabs button:focus-visible{box-shadow:0 0 0 2px #9db2ff}.review-tabs button.active{background:#fff;color:var(--primary);box-shadow:0 3px 12px #2035590d}.review-tabs button>span{min-width:20px;padding:2px 6px;background:#e7ecf5;border-radius:999px;font-size:10px}.review-tabs button.active>span{background:#e9efff}.review-tabs .attention{background:#fff0e5;color:#d56619}
.review-pane{display:grid;gap:20px}.review-summary-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.5fr);gap:20px}.review-score-card,.rating-distribution{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);min-height:220px}.review-score-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:26px}.review-score-card>strong{font-size:38px;line-height:1;color:#0c1830}.review-score-card p{margin:10px 0 0;color:#52617a}.rating-stars{display:inline-flex;align-items:center;gap:2px;color:#d6dde8}.star-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.star-icon.filled{color:#f5a623;fill:#fff1c7}.rating-stars.large{margin-top:10px}.rating-stars.large .star-icon{width:22px;height:22px}
.rating-distribution{padding:25px}.rating-distribution h3{margin:0 0 18px;font-size:15px}.rating-distribution>div{display:grid;grid-template-columns:34px minmax(0,1fr) 28px;align-items:center;gap:12px;margin:13px 0;font-size:13px;color:#52617a}.rating-distribution>div>i{height:9px;background:#edf1f6;border-radius:999px;overflow:hidden}.rating-distribution>div>i>b{display:block;height:100%;background:linear-gradient(90deg,#f7b733,#f59e0b);border-radius:999px}.rating-distribution em{font-style:normal;text-align:right;color:#7e8ba0}
.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.review-toolbar label{display:flex;align-items:center;gap:9px;color:#65738c;font-size:13px}.review-toolbar select{height:40px;border:1px solid #f0a214;border-radius:9px;background:#fff;padding:0 34px 0 12px;color:#263653;outline:none}.review-list,.complaint-list{display:grid;gap:13px}.review-entry,.complaint-entry{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;box-shadow:var(--shadow)}.review-entry-head{display:flex;align-items:center;gap:12px}.review-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#e9efff,#f1ecff);color:var(--primary);font-weight:800}.review-entry-head>div{display:grid;gap:4px}.review-entry-head small{color:#8a96a8}.review-entry-head time{margin-left:auto;color:#9aa5b6;font-size:12px}.review-entry-body{margin:16px 0;padding:15px 0;border-top:1px solid #edf1f6;border-bottom:1px solid #edf1f6}.review-entry-body>div{display:flex;align-items:center;gap:9px}.review-entry-body>div strong{font-size:12px;color:#e58a05}.review-entry-body p{margin:10px 0 0;color:#35445d;line-height:1.7}.review-entry-foot,.complaint-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;color:#78869c;font-size:12px}.review-entry-foot span{display:flex;align-items:center;gap:6px}.review-entry-foot .ui-icon{width:15px;height:15px;color:var(--primary)}
.review-empty{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a6b1c1}.review-empty>.ui-icon{width:56px;height:56px;margin-bottom:14px;stroke-width:1.4}.review-empty b{color:#78869c;font-size:16px}.review-empty span{margin-top:6px;font-size:12px}.complaint-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.complaint-overview>div{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:19px 21px;box-shadow:var(--shadow)}.complaint-icon{width:45px;height:45px;border-radius:10px;display:grid;place-items:center;background:#edf3ff;color:var(--blue)}.complaint-icon.tone-orange{background:#fff4e5;color:#e78a0a}.complaint-icon.tone-green{background:#e9fbf4;color:var(--green)}.complaint-icon .ui-icon{width:23px;height:23px}.complaint-overview p{margin:0;display:grid;gap:3px}.complaint-overview b{font-size:24px}.complaint-overview small{color:#7b889d}.complaint-entry{display:flex;align-items:center;gap:20px}.complaint-main{flex:1;min-width:0}.complaint-main h3{margin:0;font-size:16px}.complaint-main>p{margin:12px 0;color:#42516a;line-height:1.7}.complaint-handle{white-space:nowrap}.status.processing{background:#e9f1ff;color:#3564f4}.status.resolved{background:#e8f8f2;color:#08765b}.status.rejected{background:#feeceb;color:#ad3735}.complaint-response{margin-top:14px;padding:12px 14px;background:#f6f8fc;border-radius:9px}.complaint-response b{font-size:12px;color:#52617a}.complaint-response p{margin:5px 0 0;color:#65738c}

/* 弹窗 */
dialog{width:min(580px,calc(100% - 30px));border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 30px 90px #18264138;color:var(--ink)}dialog::backdrop{background:#17233c88;backdrop-filter:blur(2px)}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between}.dialog-head h3{margin:0}.icon-button{background:#eef2f8;color:#52617a;font-size:20px;padding:5px 10px}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:22px}.dialog-section{display:grid;gap:4px;margin-top:18px;padding:12px 14px;border-radius:9px;background:#edf3ff;color:#315ef1}.dialog-section small{color:#71809a}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-label{display:flex!important;grid-template-columns:none!important;align-items:center;gap:10px!important;padding:12px 14px;border-radius:9px;background:#f6f8fc}.check-label input{width:17px!important;height:17px;margin:0}.credential-warning{padding:12px 14px;border-radius:9px;background:#fff7e6;color:#9a6411;line-height:1.6}

/* 城市小程序装修器 */
.storefront-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:0}.storefront-toolbar label{display:grid;gap:8px;color:#52617a;font-size:12px}.storefront-toolbar select{min-width:280px;height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 12px}.sf-publish-state{display:flex;align-items:center;gap:10px;margin-top:10px;color:#78869c;font-size:12px}.sf-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.storefront-builder{display:grid;grid-template-columns:250px minmax(390px,1fr) 300px;gap:18px;align-items:start;margin-top:18px}.sf-layers,.sf-inspector{margin-top:0;position:sticky;top:18px;max-height:calc(100vh - 150px);overflow:auto}.sf-layers>p,.sf-inspector>p{margin:0 0 16px;color:#8a96a8;font-size:12px}.sf-layer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;border:1px solid transparent;border-radius:10px;padding:4px;margin:6px 0;background:#f7f9fc}.sf-layer-row.active{border-color:#9db2ff;background:#edf3ff}.sf-layer{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:9px;background:transparent;color:#35445d;box-shadow:none;padding:8px;text-align:left}.sf-layer:hover{background:#fff;color:var(--primary);box-shadow:none;transform:none}.sf-layer.active{background:#edf3ff;color:var(--primary);margin-bottom:8px}.sf-layer .ui-icon{width:18px}.sf-layer span{display:grid;gap:3px}.sf-layer small{font-size:10px;color:#8a96a8}.sf-layer-row>div{display:grid;grid-template-columns:repeat(3,25px);gap:2px}.sf-layer-row>div button{padding:4px;background:#fff;color:#65738c;box-shadow:none}.sf-layer-row>div button:disabled{opacity:.3}.sf-preview-panel{min-width:0;display:grid;justify-items:center}.sf-preview-title{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sf-preview-title span{color:#8995a8;font-size:11px}.sf-phone{width:375px;height:720px;border:10px solid #172033;border-radius:38px;overflow:hidden;box-shadow:0 25px 70px #17203330;display:flex;flex-direction:column;font-size:12px}.sf-phone-status{height:26px;padding:8px 18px 0;font-weight:800;display:flex;justify-content:space-between;background:#fff}.sf-phone-nav{height:47px;display:grid;place-items:center;font-size:16px;font-weight:800;flex:none}.sf-phone-body{padding:12px;overflow:auto;flex:1}.sf-phone-location{display:grid;grid-template-columns:105px 1fr;gap:7px;margin-bottom:11px}.sf-phone-location>div{display:grid;gap:3px;background:#fff;border-radius:10px;padding:8px 10px;min-width:0}.sf-phone-location small{color:#98a3b5;font-size:9px}.sf-phone-location b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sf-phone section{margin:9px 0}.sf-phone-hero{padding:20px;min-height:150px}.sf-phone-hero>span{display:inline-block;padding:4px 8px;border-radius:99px;background:#ffffff88;font-size:9px}.sf-phone-hero h2{font-size:23px;line-height:1.25;margin:12px 0 6px}.sf-phone-hero p{margin:0;opacity:.75}.sf-phone-hero>div{display:flex;gap:7px;margin-top:18px}.sf-phone-hero>div b{flex:1;text-align:center;padding:9px 5px;border-radius:99px;background:#2c2117;color:#fff;font-size:11px}.sf-phone-hero>div b+b{background:#ffffffaa;color:#49351f}.sf-phone-announcement,.sf-phone-nearby{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px}.sf-phone-announcement>div,.sf-phone-nearby>div{display:grid;gap:4px}.sf-phone-announcement small,.sf-phone-nearby small{opacity:.75}.sf-phone-announcement>span,.sf-phone-nearby>span{white-space:nowrap}.sf-phone-content>h3{display:flex;align-items:center;justify-content:space-between;font-size:16px;margin:16px 2px 8px}.sf-phone-content>h3 small{color:#8a6a42;font-size:10px}.sf-phone-campaign{display:grid;gap:4px;padding:11px;background:#fff8e8;border-radius:10px;margin:6px 0}.sf-phone-campaign small{color:#8b7458}.sf-phone-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.sf-phone-categories>div{display:grid;place-items:center;gap:5px;background:#fff;border-radius:11px;padding:12px 4px}.sf-phone-categories i{font-style:normal;font-size:20px}.sf-phone-services{display:grid;grid-template-columns:1fr 1fr;gap:7px}.sf-phone-services>div{display:grid;gap:5px;background:#fff;padding:8px;overflow:hidden}.sf-service-image{height:75px;display:grid;place-items:center;background:#eee9df;color:#aaa;font-size:9px;border-radius:8px}.sf-phone-services em{font-style:normal;color:#d96716;font-weight:800}.sf-phone-coupon{display:flex;align-items:center;gap:10px;background:#fff8eb;padding:12px;margin:7px 0;border:1px dashed #e7a956}.sf-phone-coupon strong{color:#d96716;font-size:20px}.sf-phone-coupon div{display:grid;gap:3px}.sf-phone-coupon small{color:#8a7d6d}.sf-phone-tabs{height:54px;background:#fff;border-top:1px solid #eee;display:grid;grid-template-columns:repeat(4,1fr);place-items:center;color:#747d8c;flex:none}.sf-phone-tabs b{color:#d96716}.sf-inspector label{display:grid;gap:7px;color:#52617a;font-size:12px;margin:14px 0}.sf-inspector input,.sf-inspector textarea{width:100%;box-sizing:border-box}.sf-inspector input[type=color]{height:42px;padding:3px}.sf-inspector input[type=range]{padding:0}.sf-color-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sf-upload{border:1px dashed #9db2ff;background:#f5f8ff;border-radius:9px;padding:12px}.sf-upload input{padding:5px 0}.sf-inspector>small{display:block;color:#8a96a8;line-height:1.6}.sf-history-list{display:grid;gap:8px;margin-top:15px}.sf-history-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:9px;background:#f7f9fc}.sf-history-list span{display:grid;grid-template-columns:auto 1fr;gap:4px 9px;align-items:center}.sf-history-list small{grid-column:1/-1;color:#8a96a8}

.sf-layer-group{display:grid;gap:3px;margin:16px 4px 7px;padding-top:13px;border-top:1px solid #e7ebf2;color:#35445d;font-size:12px}.sf-layer-group small{color:#94a0b2;font-size:10px}.sf-page-layer{padding-left:12px;border-radius:9px;margin:3px 0}.sf-page-layer:before{content:'▣';color:#6678a8}.sf-clickable{cursor:pointer}.sf-clickable:hover{filter:brightness(.97)}.sf-phone-nav{position:relative}.sf-phone-nav>b{font-size:16px}.sf-phone-nav>button{position:absolute;left:10px;top:8px;padding:2px 10px;background:transparent;color:inherit;box-shadow:none;font-size:25px}.sf-phone-tabs button{width:100%;height:100%;padding:0;background:transparent;color:#747d8c;box-shadow:none;border-radius:0;font-size:11px}.sf-phone-tabs button.active{color:#d96716;font-weight:800}.sf-page-copy{margin:2px 2px 12px;color:#78869c;line-height:1.55}.sf-preview-pills{display:flex;gap:6px;overflow:hidden;margin-bottom:10px}.sf-preview-pills>*{white-space:nowrap;padding:7px 10px;border-radius:99px;background:#fff;color:#647087;font-size:10px}.sf-preview-pills>b{background:#ffb436;color:#493116}.sf-preview-pills.two>*{flex:1;text-align:center}.sf-preview-list-card{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:9px;padding:9px;margin:8px 0}.sf-preview-list-card>div{display:grid;gap:5px;min-width:0}.sf-preview-list-card small{color:#78869c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sf-preview-list-card em{font-style:normal;color:#d96716;font-weight:800}.sf-preview-list-card>strong{font-size:10px;color:#b66016}.sf-preview-thumb{height:72px;border-radius:9px;background:#eee9df;display:grid;place-items:center;color:#aaa;font-size:9px}.sf-preview-cover{min-height:155px;margin:-12px -12px 10px;padding:25px 18px;box-sizing:border-box;background:linear-gradient(145deg,#54402d,#aa7941);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:7px}.sf-preview-cover b{font-size:22px}.sf-preview-cover span{opacity:.8}.sf-preview-card{padding:13px;margin:9px 0;box-shadow:0 4px 14px #1720330d}.sf-preview-card h3{margin:0 0 8px;font-size:14px}.sf-preview-card p{display:flex;justify-content:space-between;line-height:1.55}.sf-preview-card i{display:inline-block;padding:4px 8px;background:#fff1da;color:#a95b20;border-radius:99px;font-style:normal;font-size:9px}.sf-preview-notice{padding:11px;margin:9px 0;background:#fff6df;color:#8e611d;border-radius:10px;line-height:1.5}.sf-preview-primary{width:100%;margin:11px 0;padding:10px;border-radius:99px;background:#ffb436;color:#40280e;box-shadow:none;font-size:11px;font-weight:800}.sf-preview-map{height:235px;border-radius:13px;background:linear-gradient(25deg,#d7ead8,#e8e1c8);display:grid;place-items:center;font-size:25px;position:relative}.sf-preview-map span{font-size:11px;color:#63736a}.sf-preview-map i{position:absolute;right:75px;top:70px;font-style:normal}.sf-preview-summary{display:flex;justify-content:space-between;padding:13px 2px 4px}.sf-preview-summary small{color:#78869c}.sf-preview-tech{display:grid;grid-template-columns:46px 1fr auto;gap:9px;align-items:center;padding:12px;margin-top:8px}.sf-preview-tech>i,.sf-preview-store-head>i{width:46px;height:46px;border-radius:50%;background:#f3e5cf;color:#b66016;display:grid;place-items:center;font-style:normal;font-weight:800}.sf-preview-tech>div,.sf-preview-store-head>div{display:grid;gap:5px}.sf-preview-tech small,.sf-preview-tech span,.sf-preview-store-head small{color:#77716a;font-size:9px}.sf-preview-tech em{font-style:normal;color:#16845e;background:#e5f6ef;padding:2px 5px;border-radius:99px;font-size:8px}.sf-preview-tech>strong{font-size:9px;color:#b66016}.sf-preview-store-head{display:flex;align-items:center;gap:10px;background:#49321e;color:#fff;margin:-12px -12px 10px;padding:22px 16px}.sf-preview-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.sf-preview-metrics span{display:grid;gap:4px;text-align:center;background:#fff;padding:10px 3px;border-radius:9px;color:#78869c;font-size:9px}.sf-preview-metrics b{font-size:14px;color:#172033}.sf-mini-button{margin-left:auto;padding:7px 11px!important;border-radius:99px!important;background:#ffb436!important;color:#40280e!important;box-shadow:none!important;font-size:9px!important}.sf-preview-empty{min-height:315px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;color:#9aa5b6;font-size:28px;text-align:center}.sf-preview-empty b{max-width:220px;font-size:11px;line-height:1.6}.sf-preview-profile{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:10px;padding:18px;background:linear-gradient(135deg,#ffcf62,#ffae32);border-radius:16px}.sf-preview-profile>i{width:54px;height:54px;border-radius:50%;background:#ffffffaa;display:grid;place-items:center;font-style:normal;font-size:20px}.sf-preview-profile>div{display:grid;gap:5px}.sf-preview-profile small{font-size:9px;color:#735326}.sf-preview-menu{display:grid;padding:0 14px;margin:10px 0}.sf-preview-menu span{padding:13px 2px;border-bottom:1px solid #eee}.sf-preview-menu span:last-child{border-bottom:0}.sf-preview-branch{display:flex;align-items:center;gap:10px;padding:13px}.sf-preview-branch img,.sf-preview-branch>i{width:48px;height:48px;border-radius:9px;background:#f0f2f5;object-fit:contain;display:grid;place-items:center;font-style:normal}.sf-preview-branch>div{display:grid;gap:4px}.sf-preview-branch small,.sf-preview-branch span{color:#78869c;font-size:9px}.sf-preview-privacy{font-size:9px;color:#8995a8;line-height:1.55;padding:0 5px}
.sf-catalog-layer{margin:8px 0;background:#eef9f5;border-radius:10px;color:#08765b}.sf-catalog-summary{display:grid;gap:7px;padding:14px;border-radius:10px;background:#eef9f5;color:#08765b}.sf-catalog-summary span{font-size:11px;line-height:1.6}.sf-manage-button{width:100%;margin:14px 0;display:flex;align-items:center;justify-content:center;gap:8px}.wide-dialog{width:min(1050px,calc(100% - 30px));max-height:88vh;overflow:auto}.wide-dialog .dialog-head p{margin:6px 0 0}.city-service-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.city-service-toolbar .search-box{flex:1;margin:0}.city-service-list{display:grid;gap:12px}.city-service-card{display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}.city-service-card.disabled{background:#fafbfc;opacity:.78}.city-service-cover{width:100px;height:88px;border-radius:10px;background:#eef2f7;color:#78869c;display:grid;place-items:center;overflow:hidden}.city-service-cover img{width:100%;height:100%;object-fit:cover}.city-service-cover .ui-icon{width:30px}.city-service-main{min-width:0}.city-service-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.city-service-name>b{font-size:16px}.city-service-name .source{padding:4px 7px;border-radius:99px;font-size:9px}.city-service-name .source.city{background:#e8f8f2;color:#08765b}.city-service-name .source.global{background:#edf3ff;color:#315ef1}.city-service-main>small{display:block;margin-top:5px;color:#8a96a8}.city-service-main>p{margin:8px 0;color:#52617a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-service-facts,.city-service-skills{display:flex;gap:7px;flex-wrap:wrap}.city-service-facts span,.city-service-skills i{padding:5px 8px;border-radius:7px;background:#f5f7fa;color:#52617a;font-size:10px;font-style:normal}.city-service-facts span:first-child{color:#d96716;font-weight:800}.city-service-actions{display:grid;gap:8px;min-width:145px}.city-service-actions button{font-size:11px}.city-service-card .status{font-size:9px}.city-service-card .status.active{background:#e8f8f2;color:#08765b}
.sf-service-image img,.sf-preview-thumb img{width:100%;height:100%;display:block;object-fit:cover}.sf-preview-cover[style*="background-image"]{background-color:#54402d}.ai-settings .panel-head{align-items:flex-start}.ai-settings form{margin-top:16px}.ai-config-note{grid-column:1/-1;padding:12px 14px;border-radius:9px;background:#eef5ff;color:#52617a;font-size:12px;line-height:1.65}.city-service-image-editor{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:stretch;margin-top:14px}.city-service-image-preview{height:150px;border:1px dashed #cad4e4;border-radius:12px;background:#f5f7fa;color:#8a96a8;display:grid;place-items:center;overflow:hidden}.city-service-image-preview img{display:none;width:100%;height:100%;object-fit:cover}.city-service-image-preview.has-image img{display:block}.city-service-image-preview.has-image span{display:none}.city-service-image-actions{display:grid;align-content:start;gap:10px}.city-service-image-actions .sf-upload{margin:0}.city-service-image-actions>button{width:100%}.city-service-image-actions>small{color:#8a96a8;line-height:1.6}.field-hint{display:block;margin-top:5px;color:#8a96a8;font-size:10px;line-height:1.5}input[readonly]{background:#f3f5f8;color:#65738c;cursor:not-allowed}
@media(max-width:1500px){.storefront-builder{grid-template-columns:220px minmax(390px,1fr)}.sf-inspector{position:static;grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.sf-inspector>h3,.sf-inspector>p,.sf-inspector>small{grid-column:1/-1}}
@media(max-width:1250px){.app-shell{grid-template-columns:240px 1fr}.metrics{grid-template-columns:repeat(2,1fr)}.feature-sections{grid-template-columns:1fr}.feature-grid{grid-template-columns:repeat(4,1fr)}.card-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.review-summary-grid{grid-template-columns:1fr 1.7fr}.storefront-toolbar{align-items:stretch;flex-direction:column}.sf-toolbar-actions{justify-content:flex-start}.storefront-builder{grid-template-columns:1fr}.sf-layers{position:static;max-height:none}.sf-preview-panel{grid-row:auto}}
@media(max-width:760px){.app-shell{display:block}aside{position:static;height:auto}.brand{height:74px}#nav-tree{max-height:46vh}.workspace{padding:0 14px 28px}.workspace>header{height:auto;min-height:84px;margin:0 -14px 18px;padding:14px;align-items:flex-start}.page-icon{display:none}.header-actions button{padding:10px 12px}.metrics,.metrics.compact,.feature-grid,.card-grid,.settings form,.system-grid,.review-summary-grid,.complaint-overview,.field-pair{grid-template-columns:1fr}.settings .wide{grid-column:auto}.capabilities{grid-template-columns:1fr}.metric{min-height:145px}.feature-sections{gap:14px}.notice{right:14px;top:84px}.review-tabs{overflow-x:auto}.review-tabs button{white-space:nowrap}.review-toolbar{align-items:flex-end}.review-toolbar label{display:grid}.review-entry-head{align-items:flex-start}.review-entry-head time{font-size:10px}.complaint-entry{align-items:stretch;flex-direction:column}.complaint-handle{width:100%}.storefront-toolbar select{min-width:0;width:100%}.sf-toolbar-actions button{flex:1}.sf-preview-panel{overflow:auto}.sf-phone{transform:scale(.82);transform-origin:top center;margin-bottom:-125px}.sf-inspector{grid-template-columns:1fr}.sf-color-pair{grid-template-columns:1fr 1fr}.city-service-image-editor{grid-template-columns:1fr}.city-service-image-preview{height:190px}}

/* Final geometry pass: structured forms, accessible controls and narrow displays. */
button:focus-visible,a:focus-visible{outline:3px solid #86a5ff;outline-offset:3px}input[readonly]{background:#f4f6fa;color:#738198}button,input,select{min-height:40px}
.resource-form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.resource-form-fields .wide{grid-column:1/-1}.resource-form-fields label{min-width:0}.resource-form-fields textarea{resize:vertical}
dialog{max-height:90dvh;overflow:auto;scrollbar-width:thin}dialog .dialog-head{position:sticky;top:-24px;background:#fff;z-index:2;padding:12px 0}.dialog-actions{position:sticky;bottom:-24px;background:#fff;padding:16px 0;margin-top:20px;border-top:1px solid var(--line)}
.panel,.metric,.feature-section{min-width:0}.panel>h3{line-height:1.5}.table-wrap{scrollbar-width:thin}td{vertical-align:middle;line-height:1.6;overflow-wrap:anywhere}td button{white-space:nowrap}.toolbar{gap:12px;flex-wrap:wrap}.toolbar input{min-width:0}.metric strong{font-variant-numeric:tabular-nums}.page-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:260px;color:var(--muted)}.loading-spinner{width:22px;height:22px;border:3px solid #e3eafa;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.sf-inspector{height:auto;display:block;border-right:1px solid var(--line)}.sf-layers{height:auto}.sf-phone{max-width:100%}.sf-preview-panel{min-width:0}.sf-phone-body{min-height:0}.sf-preview-list-card>div{min-width:0}.sf-preview-list-card b{overflow-wrap:anywhere}.sf-phone-services b{overflow-wrap:anywhere}.sf-phone small{line-height:1.5}
@media(max-width:1500px){.sf-inspector{display:grid}}
@media(max-width:1050px){.storefront-builder{grid-template-columns:minmax(0,1fr)}.sf-layers,.sf-inspector{position:static;max-height:none}.sf-layers #sf-section-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sf-inspector{grid-column:auto}.sf-preview-panel{padding:12px 0}.storefront-toolbar{flex-wrap:wrap}}
@media(max-width:760px){.app-shell>aside{position:static;height:auto}.resource-form-fields{grid-template-columns:1fr}.resource-form-fields .wide{grid-column:auto}.sf-phone{transform:none;margin-bottom:0;width:min(375px,100%);height:660px}.sf-layers #sf-section-list{grid-template-columns:1fr}.header-actions{flex-shrink:0}.page-heading h2{font-size:22px}.workspace>header{gap:10px}.header-actions button{font-size:12px}.sf-preview-title{gap:12px;align-items:start}.sf-preview-title span{max-width:50%;line-height:1.5}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.nav-item{justify-content:flex-start}#nav-toggle{display:none}.sf-inspector input,.sf-inspector textarea,.sf-inspector select{border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:#fff;color:var(--ink);outline:none;font-size:13px}.sf-inspector input:focus,.sf-inspector textarea:focus{border-color:#7b9af8;box-shadow:0 0 0 3px #3564f414}.sf-layer-row{grid-template-columns:1fr}.sf-layer-row>div{display:flex;justify-content:flex-end}.sf-layer-row>div button{min-height:26px;min-width:28px}.sf-layer-row .sf-layer{justify-content:flex-start}.sf-layer-row .sf-layer span{font-size:12px}.qualification-proof{padding:14px;border-radius:12px;background:#f6f8fc;font-size:13px}.qualification-proof>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.qualification-proof img{width:100px;height:90px;object-fit:cover;border-radius:8px}.sf-preview-pills{flex-wrap:wrap}
.module-note{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;margin-bottom:20px;border:1px solid #eed9b1;border-radius:10px;background:#fff9ef;color:#856433;font-size:13px;line-height:1.7}.module-note .ui-icon{margin-top:2px}
@media(min-width:1201px){.storefront-builder{grid-template-columns:minmax(180px,.65fr) minmax(340px,1.1fr) minmax(240px,.85fr)}.sf-inspector{grid-column:auto;display:block;position:sticky;top:18px}.sf-layers,.sf-inspector{max-height:calc(100vh - 40px)}}
@media(max-width:760px){#nav-toggle{display:inline-flex;margin-left:auto}.app-shell:not(.nav-open)>aside #nav-tree,.app-shell:not(.nav-open)>aside .user-zone{display:none}.app-shell>aside .brand{height:68px}.sf-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.sf-toolbar-actions button{white-space:nowrap}.storefront-toolbar>div:first-child{width:100%}.sf-preview-title span{display:none}.sf-layer-row{grid-template-columns:minmax(0,1fr) auto}}
