:root{color-scheme:light;--bg: #ffffff;--surface: #ffffff;--surface-soft: #f7f8f4;--surface-muted: #edf3ee;--line: #d7e0d5;--line-strong: #bac9ba;--text: #333333;--muted: #646b63;--weak: #7d887d;--primary: #447c9f;--primary-soft: #e9f1f5;--green: #557b3c;--green-soft: #edf5e8;--gold: #e9a32b;--gold-soft: #fff5df;--danger: #d70015;--danger-soft: #fff1f2;--shadow: 0 22px 52px rgba(49, 84, 70, .13);--shadow-soft: 0 10px 26px rgba(49, 84, 70, .09);--radius: 12px;--radius-sm: 10px;--font: "Libre Franklin", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--number-font: var(--font)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:#fff}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{width:min(1360px,calc(100vw - 48px));margin:0 auto;padding:20px 0 32px;display:grid;grid-template-columns:248px minmax(0,1fr);gap:16px;align-items:start}.app-shell--portal,.public-shell{width:100%;margin:0 auto;padding:0 0 40px;display:grid;grid-template-columns:1fr;gap:0}.public-shell{min-height:100vh}.portal-header,.public-header{position:sticky;top:0;z-index:80;min-height:68px;padding:10px max(24px,calc((100vw - 1110px)/2));display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;border-radius:0;background:var(--primary);color:#fff;box-shadow:none;border:0}.public-header{background:var(--primary);color:#fff}.brand-mark,.account-pill,.portal-nav button,.portal-nav a{display:inline-flex;align-items:center;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer}.brand-mark{gap:10px;padding:4px 0;text-align:left;color:#fff}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:#fff;color:var(--primary);font-weight:800}.brand-mark strong{display:block;font-size:15px;line-height:1.2}.brand-mark em{display:block;margin-top:2px;color:#ffffffc7;font-size:12px;font-style:normal}.portal-nav{display:flex;flex:0 1 auto;align-items:center;justify-content:flex-end;gap:4px;min-width:0}.portal-nav button,.portal-nav a{gap:6px;min-height:42px;padding:0 16px;border-radius:999px;color:#fff;font-size:13px;white-space:nowrap}.portal-nav button.active,.portal-nav a.active,.portal-nav button:hover,.portal-nav a:hover{background:#407494;color:#fff}.portal-nav .demo-pill{background:var(--gold);color:#004773;font-weight:700}.portal-account{position:relative;display:inline-flex;align-items:center;gap:8px}.account-pill{gap:7px;max-width:220px;min-height:36px;padding:0 10px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:#ffffff1a;color:#fff;font-size:13px}.account-pill span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:120;min-width:188px;padding:8px;border:1px solid rgba(0,71,115,.14);border-radius:8px;background:#fff;box-shadow:0 18px 45px #0a234229}.account-menu button{display:flex;width:100%;min-height:38px;align-items:center;border:0;border-radius:6px;background:transparent;color:var(--text);font:inherit;font-weight:650;text-align:left;cursor:pointer;padding:0 10px}.account-menu button:hover{background:var(--primary-soft);color:var(--primary)}.app-alert,.form-error{border:1px solid rgba(215,0,21,.18);border-radius:8px;background:var(--danger-soft);color:var(--danger)}.app-alert{margin:18px 0;padding:12px 14px;font-weight:700}.app-alert--neutral{border-color:#447c9f33;background:var(--primary-soft);color:var(--primary)}.form-error{margin:10px 0 0;padding:10px 12px;font-size:13px}.site-main-surface{grid-column:1;width:min(1110px,calc(100vw - 48px));min-height:0;margin:0 auto;padding:0;border:0;background:transparent;box-shadow:none}.public-main{display:grid;gap:18px;width:min(1110px,calc(100vw - 48px));margin:0 auto;padding-top:0}.landing-page,.town-detail-page{display:grid;gap:18px}.landing-hero,.town-detail-hero,.town-search-hero,.login-dock{border:0;border-radius:0;background:transparent;box-shadow:none}.landing-hero{min-height:430px;padding:52px 0 72px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:42px;align-items:center;background:var(--primary);color:#fff;box-shadow:0 0 0 100vmax var(--primary);clip-path:inset(0 -100vmax)}.landing-copy h1,.town-detail-hero h1{margin:14px 0 12px;max-width:760px;font-size:35.2px;line-height:1.22;letter-spacing:0;color:inherit}.landing-copy p,.town-detail-hero p,.town-search-hero p,.login-dock p{max-width:680px;margin:0;color:inherit;font-size:16px;line-height:1.75}.landing-copy .actions{margin-top:24px}.landing-panel,.town-snapshot,.feature-media{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-soft)}.landing-panel>strong{display:block;margin-bottom:14px;font-size:18px}.portal-section{margin-top:0}.ecopixel-section{padding:72px 0;border-bottom:1px solid #e3e8df}.feature-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}.feature-split--reverse .feature-media{order:2}.feature-copy h2,.town-search-hero h2,.login-dock h2,.portal-footer h2{margin:10px 0 12px;color:#555;font-size:28.8px;line-height:1.25}.feature-copy p{margin:0;color:#555;font-size:16px;line-height:1.75}.town-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.town-tile{display:grid;gap:12px;min-height:100%;padding:0 0 18px;border:1px solid #d7d7d7;border-radius:0;background:var(--surface);box-shadow:none;overflow:hidden}.town-tile.is-selected{border-color:#9ac7f5;background:#f7fbff}.town-tile p{margin:0 18px;color:var(--muted);font-size:14px;line-height:1.7}.town-tile-map{display:flex;align-items:center;justify-content:space-between;min-height:180px;padding:22px;border-radius:0;background:linear-gradient(145deg,#edf3ee,#d9e6dc);color:var(--green)}.town-tile-map span{font-size:36px;font-weight:700;color:#447c9f33}.town-tile .card-title-row,.town-tile .metric-grid,.town-tile .actions{margin-right:18px;margin-left:18px}.process-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.process-item{min-height:86px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.process-item span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-bottom:10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:700}.process-item strong{display:block;font-size:13px;line-height:1.45}.portal-device-preview{position:relative;min-height:320px}.desktop-frame,.phone-frame,.device-card,.cms-preview,.meeting-doc-preview{border:1px solid #c9d5ca;background:#fff;box-shadow:0 18px 38px #142d2329}.desktop-frame{min-height:292px;padding:14px}.frame-top{display:flex;gap:6px;padding-bottom:12px;border-bottom:1px solid #dfe7df}.frame-top span{width:9px;height:9px;border-radius:50%;background:#d7e0d5}.mock-town-hero{display:grid;gap:8px;min-height:122px;margin-top:14px;padding:22px;align-content:end;background:linear-gradient(135deg,#447c9f,#5a8ea9);color:#fff}.mock-town-hero strong{font-size:24px}.mock-town-hero em{font-style:normal;opacity:.82}.mock-card-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.mock-card-row span{min-height:64px;padding:10px;border:1px solid #dfe7df;color:#555;font-size:12px;line-height:1.45}.phone-frame{position:absolute;right:16px;bottom:-28px;display:grid;gap:8px;width:150px;min-height:220px;padding:18px 14px;border-radius:22px}.phone-frame strong{margin-top:48px;color:#555}.phone-frame span{color:var(--muted);font-size:12px}.phone-frame button{align-self:end;min-height:34px;border:0;border-radius:999px;background:var(--gold);color:#004773;font-weight:700}.device-stack{position:relative;min-height:330px}.device-card{position:absolute;left:calc(var(--offset) * 42px);top:calc(var(--offset) * 44px);display:grid;gap:8px;width:min(380px,calc(100% - 84px));min-height:210px;padding:18px}.device-card-bar{height:74px;background:linear-gradient(135deg,#e9f1f5,#dfe9df)}.device-card strong{color:#555;font-size:20px}.device-card span,.device-card em{color:var(--muted);font-size:13px;font-style:normal}.cms-preview{display:grid;grid-template-columns:126px minmax(0,1fr);min-height:300px}.cms-sidebar{display:grid;align-content:start;gap:8px;padding:18px;background:#edf3ee}.cms-sidebar span{padding:8px 10px;border-radius:999px;color:#557b3c;font-size:12px}.cms-sidebar span:first-child{background:#fff}.cms-main{display:grid;align-content:start;gap:12px;padding:20px}.cms-main>strong{margin-bottom:4px;color:#555;font-size:20px}.cms-row{display:flex;justify-content:space-between;gap:14px;padding:12px;border:1px solid #dfe7df}.cms-row em{color:var(--muted);font-style:normal;text-align:right}.meeting-doc-preview{display:grid;gap:0;padding:12px}.meeting-doc-row{display:grid;grid-template-columns:46px minmax(0,120px) minmax(0,1fr);gap:12px;align-items:center;padding:16px 10px;border-bottom:1px solid #dfe7df}.meeting-doc-row:last-child{border-bottom:0}.meeting-doc-row span{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:700}.meeting-doc-row strong{color:#555}.meeting-doc-row em{color:var(--muted);font-size:13px;font-style:normal}.section-heading--center{text-align:center}.section-heading--center p{max-width:760px;margin-inline:auto;text-align:center}.town-showcase{border-bottom:0}.public-login-main{display:grid;place-items:center;min-height:calc(100vh - 96px);padding:72px 24px;background:#f5f8f4}.public-login-main .login-card{width:min(460px,100%);margin:0;padding:30px;border:1px solid #d7d7d7;border-radius:0;background:#fff;box-shadow:14px 14px #447c9f14}.public-login-main .card-title-row{align-items:center;padding-bottom:18px;border-bottom:1px solid #e2e7df}.public-login-main .card-title-row h3{margin:0;color:#244256;font-size:26px;line-height:1.2}.public-login-main .mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px;padding:6px;border:1px solid #dfe6dc;border-radius:0;background:#f5f7f2}.public-login-main .mode-switch button{justify-content:center;min-height:44px;padding:8px 10px;border-radius:0;color:#5f6b66;font-size:15px;font-weight:700}.public-login-main .mode-switch button.active{background:var(--primary);color:#fff;box-shadow:none}.public-login-main .field{color:#52605d;font-size:14px}.public-login-main .input{height:46px;border-color:#d3ddd0;border-radius:0;background:#fbfcfa}.public-login-main .input::placeholder{color:#9aa49d}.public-login-main .input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #40749424}.public-login-main .login-card form>.btn{width:100%;min-height:46px;margin-top:18px;border-radius:0;background:var(--primary);color:#fff;font-size:16px;box-shadow:none}.news-section{padding-top:56px}.news-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:22px}.news-card{display:grid;align-content:start;gap:10px}.news-thumb{display:grid;min-height:170px;align-items:center;justify-items:center;background:linear-gradient(135deg,#e9f1f5,#dfe9df);color:#447c9f4d;font-size:44px;font-weight:800}.news-card h3{margin:0;color:#555;font-size:20.8px;line-height:1.2}.news-card span,.news-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.58}.portal-footer{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);gap:34px;align-items:center;padding:48px 0;border-top:1px solid #dfe7df}.portal-footer p{margin:0;color:#555;line-height:1.75}.town-search-hero{padding:26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;gap:20px}.town-search-hero h2,.login-dock h2{margin:10px 0 8px;font-size:34px;line-height:1.12}.search-box{display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--muted)}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text)}.town-detail-hero{padding:34px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:24px;align-items:end}.login-dock{padding:26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:22px;align-items:start}.hero-band,.main-surface,.side-panel,.data-card,.section-panel{border:1px solid var(--line);background:#ffffffdb;box-shadow:var(--shadow-soft)}.hero-band{position:sticky;top:20px;display:flex;flex-direction:column;gap:18px;align-items:stretch;min-height:calc(100vh - 52px);padding:18px;border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-copy h1{margin:10px 0 6px;font-size:24px;line-height:1.16;font-weight:700;letter-spacing:0}.hero-copy p,.section-heading p,.data-card p,.record-panel p,.hint{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.hero-copy p{max-width:28ch;font-size:12px;line-height:1.65}.eyebrow,.tag,.badge,.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);white-space:nowrap}.eyebrow{padding:6px 10px;border-radius:999px;color:var(--primary);font-size:12px;font-weight:600}.tag{padding:6px 10px;border-radius:999px;color:var(--muted);font-size:12px}.tag--good{border-color:#b7dfc2;background:var(--green-soft);color:var(--green)}.tag--warn{border-color:#f0d49a;background:var(--gold-soft);color:var(--gold)}.progress{display:grid;gap:8px;width:100%}.header-side{display:flex;flex:1;flex-direction:column;justify-content:space-between;gap:18px}.hero-band .actions{display:grid;gap:8px;width:100%}.hero-band .actions .tag,.hero-band .actions .btn,.hero-band .actions .nav-link{width:100%;justify-content:flex-start}.hero-band .actions .tag{min-height:36px;border-radius:var(--radius-sm);overflow-wrap:anywhere;white-space:normal}.hero-band .actions .btn--ghost{margin-top:4px}.nav-group{display:grid;gap:6px;padding-top:10px;border-top:1px solid var(--line)}.nav-group>strong{padding:0 4px;color:var(--weak);font-size:11px;font-weight:600}.nav-link{text-decoration:none}.progress-step{width:100%;min-height:54px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--weak)}.progress-step strong{display:block;margin-bottom:4px;color:var(--text);font-size:13px;font-weight:600}.progress-step span{font-size:12px}.progress-step.active{border-color:#9ac7f5;background:var(--primary-soft);color:var(--primary)}.progress-step.done{border-color:#b7dfc2;background:var(--green-soft);color:var(--green)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 332px;gap:16px;grid-column:2;margin-top:0}.main-surface{min-height:660px;padding:22px;border-radius:var(--radius)}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}.workspace-header h2{margin:8px 0 5px;font-size:24px;line-height:1.18;letter-spacing:0}.workspace-header p{max-width:760px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.side-rail{display:flex;flex-direction:column;gap:14px}.side-panel{padding:16px;border-radius:var(--radius)}.side-panel h3,.data-card h3,.record-panel h3{margin:0;color:var(--text);font-size:16px;line-height:1.35;font-weight:650}.section-heading h2{margin:10px 0 8px;font-size:30px;line-height:1.16;font-weight:700;letter-spacing:0}.section-heading p{max-width:820px}.section-panel{margin-top:18px;padding:18px;border-radius:var(--radius);background:var(--surface)}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.inspection-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.top-gap{margin-top:14px}.bottom-gap{margin-bottom:14px}.top-gap-small{margin-top:10px}.data-card{position:relative;overflow:hidden;padding:16px;border-radius:var(--radius);background:var(--surface)}.data-card--accent{border-color:#b7d8fb;background:linear-gradient(180deg,#fff,#f7fbff)}.data-card--warn{border-color:#f0d49a;background:var(--gold-soft)}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-title-row svg{flex:0 0 auto;color:var(--primary)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.metric{min-height:72px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.metric strong{display:block;margin-bottom:6px;color:var(--text);font-size:13px;font-weight:600}.metric span{color:var(--muted);font-size:13px;line-height:1.56}.list,.inspection-list,.editor-list,.attachment-list{display:grid;gap:10px}.inspection-list-item{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.inspection-list-item.is-new{border-color:#9ac7f5;background:#f7fbff;box-shadow:inset 0 0 0 1px #0071e314}.inspection-list-item.is-muted{border-style:dashed;opacity:.76}.town-selector{width:100%;text-align:left;cursor:pointer}.town-selector:hover{border-color:#9ac7f5;background:#f7fbff}.town-portal-card .chip-group{justify-content:flex-start}.inspection-list-item strong,.inspection-list-item em,.inspection-list-item span{min-width:0;overflow-wrap:anywhere}.inspection-list-item strong{color:var(--text);font-size:14px}.inspection-list-item span,.inspection-list-item em{color:var(--muted);font-size:12px;font-style:normal}.editor-block,.meeting-primary{display:grid;gap:8px}.video-grid--summary .video-box{min-height:156px}.result-detail{margin-top:16px}.workbench-stats{margin-bottom:14px}.workbench-form{display:grid;gap:10px;margin-top:10px;padding:10px;border:1px solid #b7d8fb;border-radius:var(--radius-sm);background:#f7fbff}.upload-button{position:relative;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.attachment-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(72px,auto) auto;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.attachment-row span,.attachment-row em{min-width:0;overflow-wrap:anywhere}.attachment-row em{color:var(--muted);font-size:12px;font-style:normal}.attachment-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.list-item,.op-item{padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--text);font-size:14px;line-height:1.6}.list-item strong{display:block;margin-bottom:4px;color:var(--text)}.list-item span{color:var(--muted)}.record-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:16px;border:1px solid #b7d8fb;border-radius:var(--radius);background:#f7fbff}.record-panel h3{margin-bottom:6px}.footer-actions,.actions,.op-item,.summary-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.footer-actions{margin-top:18px}.actions{flex-wrap:wrap}.actions.stretch{align-items:stretch}.actions.stretch .btn{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:transform .16s ease,opacity .16s ease,border-color .16s ease,background .16s ease;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled,.chip:disabled,.mode-switch button:disabled{cursor:not-allowed;opacity:.48}.btn--primary{background:var(--primary);color:#fff;box-shadow:0 8px 18px #0071e32e;font-weight:600}.btn--secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.btn--warn{border-color:#efc5cb;background:var(--danger-soft);color:var(--danger);font-weight:650}.btn--ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn--small{min-height:34px;padding:7px 10px;font-size:13px}.badge{flex:0 0 auto;padding:6px 10px;border-radius:999px;font-size:12px}.badge--good{border-color:#b7dfc2;background:var(--green-soft);color:var(--green)}.badge--warn{border-color:#f0d49a;background:var(--gold-soft);color:var(--gold)}.badge--muted{color:var(--muted)}.mode-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface-muted)}.mode-switch button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 18px;border:0;border-radius:999px;color:var(--muted);background:transparent;font-size:13px;font-weight:600;cursor:pointer}.mode-switch button.active{color:#fff;background:var(--primary);box-shadow:none}.field{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:13px}.input,.textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none}.input{height:44px;padding:0 13px}.textarea{min-height:104px;padding:12px 13px;resize:vertical}.textarea--compact{min-height:76px}.input:focus,.textarea:focus{border-color:#7bb7f0;box-shadow:0 0 0 4px #0071e31f}.input:disabled{color:var(--weak);background:var(--surface-muted)}.offline-fields{display:grid;grid-template-columns:180px 160px minmax(0,1fr);gap:12px;padding:14px;border:1px solid #b7dfc2;border-radius:var(--radius);background:var(--green-soft)}.chip-group{display:flex;flex-wrap:wrap;gap:9px}.chip{min-height:34px;padding:7px 11px;border-radius:999px;cursor:pointer}.chip.selected{border-color:#7bb7f0;background:var(--primary-soft);color:var(--primary)}.ops{display:grid;gap:10px}.validation-panel{margin-top:12px;padding:11px 12px;border:1px solid #f0d49a;border-radius:var(--radius-sm);background:var(--gold-soft);color:var(--text)}.validation-panel.valid{border-color:#b7dfc2;background:var(--green-soft)}.validation-title{display:flex;align-items:center;gap:7px;margin-bottom:6px;color:var(--gold);font-size:13px}.validation-panel.valid .validation-title{color:var(--green)}.validation-panel p,.validation-panel ul{margin:0;padding:0;color:var(--muted);font-size:13px;line-height:1.55}.validation-panel ul{display:grid;gap:4px;padding-left:16px}.op-item.done{border-color:#b7dfc2;background:var(--green-soft)}.op-item>span{min-width:0}.meeting-layout{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(280px,.84fr);gap:14px}.execution-stage,.result-column{display:grid;gap:14px;align-content:start}.video-grid,.meeting-video-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.video-box,.meeting-video{min-height:182px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#fafafa,#f2f2f4)}.meeting-video{min-height:260px;overflow:hidden}.video-box strong{display:block;margin:28px 0 8px;font-size:16px}.video-box p{margin:0;color:var(--muted);font-size:14px;line-height:1.68}.camera-line{display:inline-flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--primary);font-family:var(--number-font);font-size:12px}.flow-actions{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft)}.completion-strip{display:flex;align-items:center;gap:9px;margin-top:14px;padding:12px 14px;border:1px solid #b7dfc2;border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:14px}.meeting-page .hero-band{grid-template-columns:minmax(0,1fr) auto}.meeting-workspace{margin-top:16px}.meeting-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px}.meeting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.meeting-grid--flow{align-items:start}.meeting-title{margin:10px 0 0;font-size:24px;line-height:1.2}.login-card{grid-column:1 / -1;width:min(520px,100%);margin:16px auto 0}.login-card form>.btn{margin-top:14px}.meeting-user-card{min-height:620px}.mock-video{display:grid;min-height:260px;align-content:center;justify-items:center;gap:8px;padding:24px;text-align:center}.mock-video strong{font-size:22px}.mock-video span{font-family:var(--number-font);color:var(--primary)}.mock-video p{max-width:320px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.mock-video--idle{color:var(--muted)}.mock-video--screen{background:linear-gradient(180deg,#f7fbff,#eef6ff)}.meeting-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft)}.meeting-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;color:var(--muted);font-size:13px}.tool-btn{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer}.tool-btn:disabled{cursor:not-allowed;opacity:.46}.tool-btn--danger{border-color:#efc5cb;color:var(--danger);background:var(--danger-soft)}.meeting-status{margin-top:14px;padding:11px 12px;border:1px solid #b7dfc2;border-radius:var(--radius-sm);background:var(--green-soft);color:var(--green);font-size:13px;line-height:1.55}.meeting-actions{margin-top:14px}.invite-box{display:grid;gap:6px;margin-top:14px;padding:11px 12px;border:1px solid #b7d8fb;border-radius:var(--radius-sm);background:#f7fbff;color:var(--muted);font-size:13px;line-height:1.55}.invite-box strong{color:var(--text)}.invite-box span{overflow-wrap:anywhere}.inspection-meta{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);font-size:12px;line-height:1.5}.profile-form{display:grid;gap:16px}.public-invite-layout{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;width:min(1080px,100%);margin:0 auto}.invite-box--compact{margin-top:10px}.notification-list{display:grid;gap:10px}.notification-item{display:grid;gap:5px;width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--text);text-align:left;cursor:pointer}.notification-item.is-unread{border-color:#9ac7f5;background:#f7fbff}.notification-item strong,.notification-item em,.notification-item small{overflow-wrap:anywhere}.notification-item em,.notification-item small{color:var(--muted);font-size:12px;font-style:normal}.notification-kind{width:fit-content;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--primary);font-size:12px}.detail-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-muted)}.detail-tabs button{min-height:34px;padding:7px 11px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.detail-tabs button.active{border-color:var(--line);background:var(--surface);color:var(--text);box-shadow:0 1px 4px #00000014}.meeting-room-card,.meeting-list-card{margin-top:16px}.meeting-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.meeting-list-section{display:grid;align-content:start;gap:10px;min-height:150px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.meeting-list-section h4{margin:0;color:var(--text);font-size:14px}.meeting-list-section p{margin:0;color:var(--muted);font-size:13px}.meeting-list{display:grid;gap:8px}.meeting-list-item{display:grid;gap:4px;width:100%;padding:10px;border:1px solid #b7d8fb;border-radius:var(--radius-sm);background:#f7fbff;color:inherit;text-align:left;cursor:pointer}.meeting-list-item strong{color:var(--text);font-size:13px}.meeting-list-item span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.meeting-list-item em{color:var(--primary);font-size:12px;font-style:normal}.summary-line{padding:9px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.summary-line:last-child{border-bottom:0}.summary-line strong{max-width:168px;color:var(--text);text-align:right;overflow-wrap:anywhere}.log-list{display:grid;gap:9px;max-height:330px;overflow:auto;padding-right:4px}.log-item{padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.log-item strong{display:block;margin-bottom:4px;color:var(--gold);font-family:var(--number-font);font-size:12px}.log-item span{color:var(--muted);font-size:13px;line-height:1.56}@media(max-width:1160px){.app-shell,.workspace{grid-template-columns:1fr}.hero-band,.workspace{grid-column:1}.hero-band{position:static;min-height:auto}.header-side{justify-content:flex-start}.hero-band .actions{display:flex;flex-wrap:wrap}.nav-group{display:contents}.nav-group>strong{display:none}.hero-band .actions .tag,.hero-band .actions .btn,.hero-band .actions .nav-link{width:auto}.progress{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-header,.public-header{position:static;flex-wrap:wrap}.portal-nav{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.landing-hero,.town-detail-hero,.town-search-hero,.login-dock{grid-template-columns:1fr}.town-card-grid,.process-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.app-shell{width:min(100vw - 28px,1360px);padding-top:14px}.hero-band,.main-surface,.section-panel{padding:16px}.hero-copy h1{font-size:28px}.section-heading h2{font-size:25px}.grid.two,.grid.three,.inspection-board,.town-card-grid,.process-strip,.metric-grid,.public-invite-layout,.meeting-layout,.meeting-grid,.meeting-list-grid,.video-grid,.meeting-video-grid,.offline-fields,.meeting-control{grid-template-columns:1fr}.footer-actions,.workspace-header,.op-item,.record-panel{align-items:flex-start;flex-direction:column}.progress-step{width:100%}.progress{grid-template-columns:1fr}.btn,.hero-band .actions .tag,.hero-band .actions .btn,.hero-band .actions .nav-link{width:100%}.app-shell--portal,.public-shell{width:min(100vw - 24px,1220px);padding-top:12px}.portal-header,.public-header{border-radius:14px}.portal-account,.brand-mark{width:100%}.portal-account{justify-content:space-between}.portal-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;overflow:visible}.portal-nav button,.portal-nav a{justify-content:center}.landing-hero,.town-detail-hero,.town-search-hero,.login-dock{padding:20px;border-radius:16px}.landing-copy h1,.town-detail-hero h1{font-size:38px}.town-tile,.landing-panel,.town-snapshot,.process-item{border-radius:14px}}.closure-page .section-panel,.profile-page .section-panel{margin-top:0;padding:36px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none}.closure-page .data-card,.profile-page .data-card,.closure-page .meeting-primary{border:1px solid #d7d7d7;border-radius:0;background:#fff;box-shadow:none}.closure-page .data-card--accent,.closure-page .meeting-primary{background:#f7f8f4}.closure-page .data-card--warn{border-color:#f1d79f;background:#fff8e8}.closure-page .data-card>.card-title-row,.profile-page .data-card>.card-title-row{margin:-16px -16px 16px;padding:16px 18px;border-bottom:1px solid #dfe7df;background:#f7f8f4}.closure-page .data-card h3,.profile-page .data-card h3,.closure-page .video-box strong{color:#555}.closure-page .meeting-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:34px}.closure-page .execution-stage,.closure-page .result-column{gap:28px}.closure-page .video-grid{gap:18px}.closure-page .video-box{min-height:190px;border-color:#d7d7d7;border-radius:0;background:linear-gradient(135deg,#edf3ee,#dfe9df)}.closure-page .camera-line{border-color:#b7cbb7;background:#fff;color:var(--primary)}.closure-page .editor-list{gap:14px;margin-top:16px}.closure-page .editor-block{padding:14px;border:1px solid #dfe7df;background:#fff}.closure-page .input,.closure-page .textarea,.profile-page .input,.profile-page .textarea{border-color:#cfd9ce;border-radius:0}.closure-page .input:focus,.closure-page .textarea:focus,.profile-page .input:focus,.profile-page .textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #447c9f29}.closure-page .field,.profile-page .field{color:#555;font-weight:600}.closure-page .metric,.profile-page .metric{border-color:#dfe7df;border-radius:0;background:#f7f8f4}.closure-page .detail-tabs{margin-bottom:24px;padding:0;border-width:0 0 1px;border-radius:0;background:transparent}.closure-page .detail-tabs button{min-height:44px;border:0;border-radius:0;color:var(--primary)}.closure-page .detail-tabs button.active{border-bottom:3px solid var(--gold);background:transparent;color:#555;box-shadow:none}.closure-page .flow-actions{margin-top:34px;padding:0;border:1px solid #d7d7d7;border-radius:0;background:#fff}.closure-page .flow-actions .op-item{margin:0;border-width:0 0 1px;border-radius:0;background:transparent}.closure-page .flow-actions .op-item:last-child{border-bottom:0}.closure-page .op-item.done{background:#f2f7ef}.closure-page .completion-strip{border-color:#b7cbb7;border-radius:0;background:#f2f7ef}.closure-page .result-detail{margin-top:34px;padding-top:34px;border-top:1px solid #dfe7df}.closure-page .attachment-row{grid-template-columns:minmax(0,1fr) minmax(72px,auto) auto;border-width:0 0 1px;border-radius:0;background:transparent}.closure-page .attachment-row:last-child{border-bottom:0}.closure-page .invite-box,.closure-page .validation-panel{border-radius:0}.closure-page .log-item,.closure-page .list-item{border-width:0 0 1px;border-radius:0;background:transparent}.closure-page .btn,.profile-page .btn{border-radius:999px}.closure-page .btn--primary,.profile-page .btn--primary{background:var(--primary);color:#fff;box-shadow:none}.closure-page .btn--secondary,.profile-page .btn--secondary{border-color:var(--primary);background:transparent;color:var(--primary)}.closure-page .btn--warn{border-color:#d7a9a9;background:#fff4f2}.profile-page .profile-form{padding:24px;border:1px solid #d7d7d7;background:#fff}@media(max-width:1160px){.closure-page .meeting-layout{grid-template-columns:1fr}}@media(max-width:860px){.closure-page .grid.two,.closure-page .grid.three,.closure-page .video-grid,.profile-page .grid.two{grid-template-columns:1fr}.closure-page .detail-tabs{overflow-x:visible;flex-wrap:wrap}.closure-page .detail-tabs button{flex:1 1 calc(50% - 6px)}.closure-page .footer-actions,.closure-page .op-item,.closure-page .attachment-row{align-items:stretch;grid-template-columns:1fr}}.app-shell--portal{width:100%;padding:0 0 48px}.app-shell--portal .portal-header,.public-shell .public-header{position:sticky;top:0;display:flex;flex-direction:row;align-items:center;min-height:68px;padding:10px max(24px,calc((100vw - 1110px)/2));border:0;border-radius:0;background:var(--primary);color:#fff;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.app-shell--portal .site-main-surface{width:min(1110px,calc(100vw - 48px));min-height:0;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.public-shell .public-main{width:min(1110px,calc(100vw - 48px));margin:0 auto}.app-shell--portal .brand-mark,.public-shell .brand-mark{color:#fff}.app-shell--portal .portal-nav button,.app-shell--portal .portal-nav a,.public-shell .portal-nav button,.public-shell .portal-nav a{width:auto;justify-content:center;color:#fff}.app-shell--portal .portal-nav .demo-pill,.public-shell .portal-nav .demo-pill{background:var(--gold);color:#004773}.app-shell--portal .btn,.public-shell .btn{border-radius:999px}.app-shell--portal .landing-hero,.public-shell .landing-hero{min-height:430px;margin:0;padding:52px 0 72px;border:0;border-radius:0;background:var(--primary);color:#fff;box-shadow:0 0 0 100vmax var(--primary);clip-path:inset(0 -100vmax)}.app-shell--portal .landing-hero .eyebrow,.public-shell .landing-hero .eyebrow{border-color:#ffffff52;background:#ffffff1f;color:#fff}.app-shell--portal .landing-hero .btn--primary,.public-shell .landing-hero .btn--primary{background:var(--gold);color:#004773;box-shadow:none}.app-shell--portal .landing-hero .btn--secondary,.public-shell .landing-hero .btn--secondary{border-color:#ffffffb8;background:#ffffff1f;color:#fff}.app-shell--portal .section-heading h2,.public-shell .section-heading h2{color:#555;font-size:28.8px;font-weight:700}.app-shell--portal .ecopixel-section .section-heading p,.public-shell .ecopixel-section .section-heading p{color:#555;font-size:16px}.app-shell--portal .town-tile .card-title-row h3,.public-shell .town-tile .card-title-row h3{color:#555;font-size:20.8px}.app-shell--portal .town-tile .btn--primary,.public-shell .town-tile .btn--primary,.app-shell--portal .feature-split .btn--primary,.public-shell .feature-split .btn--primary{background:var(--primary);color:#fff;box-shadow:none}.app-shell--portal .town-tile .btn--secondary,.public-shell .town-tile .btn--secondary,.app-shell--portal .feature-split .btn--secondary,.public-shell .feature-split .btn--secondary{border-color:var(--primary);background:transparent;color:var(--primary)}.town-detail-page .town-detail-hero,.town-search-hero,.login-dock{margin-top:34px;padding:42px 0;border-bottom:1px solid #e3e8df}.town-detail-page .town-detail-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)}.town-detail-page .town-detail-hero h1,.town-detail-page .town-detail-hero p,.town-search-hero p,.login-dock p{color:#555}.town-detail-page .town-snapshot,.town-search-hero .search-box,.login-dock .login-card{border:1px solid #d7d7d7;box-shadow:none}.login-dock .login-card{width:100%;margin:0}@media(max-width:1160px){.app-shell--portal .portal-header,.public-shell .public-header{position:static;flex-wrap:wrap}.app-shell--portal .portal-nav,.public-shell .portal-nav{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.feature-split,.portal-footer,.app-shell--portal .landing-hero,.public-shell .landing-hero,.town-detail-page .town-detail-hero,.town-search-hero,.login-dock{grid-template-columns:1fr}.feature-split--reverse .feature-media{order:0}.town-card-grid,.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.app-shell--portal .site-main-surface,.public-shell .public-main{width:min(100vw - 28px,1110px)}.app-shell--portal .portal-header,.public-shell .public-header{padding:12px 14px}.app-shell--portal .portal-nav,.public-shell .portal-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;overflow:visible}.app-shell--portal .portal-account,.app-shell--portal .brand-mark,.public-shell .brand-mark{width:100%}.app-shell--portal .landing-hero,.public-shell .landing-hero{padding:32px 0 46px}.landing-copy h1,.town-detail-hero h1{font-size:31px}.ecopixel-section{padding:42px 0}.town-card-grid,.news-grid,.mock-card-row,.cms-preview,.meeting-doc-row{grid-template-columns:1fr}.portal-device-preview,.device-stack{min-height:auto}.phone-frame,.device-card{position:static;width:100%;margin-top:12px}.device-card{min-height:0}}.app-shell--portal .workspace-header{margin:34px 0 0;padding:0 0 28px;border-bottom:1px solid #dfe7df}.app-shell--portal .workspace-header .tag,.ecopixel-workspace .section-heading .eyebrow,.ecopixel-workspace .tag{border-color:#d7e0d5;background:#edf3ee;color:var(--primary)}.app-shell--portal .workspace-header h2,.ecopixel-workspace .section-heading h2{margin:10px 0;color:#555;font-size:28.8px;line-height:1.25}.app-shell--portal .workspace-header p,.ecopixel-workspace .section-heading p{max-width:760px;color:#555;font-size:16px;line-height:1.75}.ecopixel-workspace .section-panel{margin-top:0;padding:36px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none}.ecopixel-workspace .data-card,.ecopixel-workspace .side-panel{border:1px solid #d7d7d7;border-radius:0;background:#fff;box-shadow:none}.ecopixel-workspace .data-card--accent{border-color:#d7d7d7;background:#f7f8f4}.ecopixel-workspace .data-card--warn{border-color:#f1d79f;background:#fff8e8}.ecopixel-workspace .data-card h3,.ecopixel-workspace .record-panel h3,.ecopixel-workspace .inspection-list-item strong{color:#555}.ecopixel-workspace .grid{gap:28px}.ecopixel-workspace .metric{min-height:66px;border-color:#dfe7df;border-radius:0;background:#f7f8f4}.ecopixel-workspace .metric strong{color:#555}.ecopixel-workspace .metric span{color:#646b63}.ecopixel-workspace .inspection-list{gap:0}.ecopixel-workspace .inspection-list-item{gap:7px;padding:14px 0;border-width:0 0 1px;border-color:#dfe7df;border-radius:0;background:transparent}.ecopixel-workspace .inspection-list-item:last-child{border-bottom:0}.ecopixel-workspace .inspection-list-item.is-new{padding:14px;border:1px solid #b7cbb7;background:#f2f7ef;box-shadow:none}.ecopixel-workspace .chip{border-color:#d7e0d5;background:#fff;color:#557b3c}.ecopixel-workspace .chip.selected{border-color:#b7cbb7;background:#edf3ee;color:#557b3c}.ecopixel-workspace .list-item{border-width:0 0 1px;border-radius:0;background:transparent}.ecopixel-workspace .record-panel{margin-top:34px;border-color:#d7d7d7;border-radius:0;background:#f7f8f4;box-shadow:none}.town-detail-page .town-detail-hero{padding:54px 0 44px;border-bottom:1px solid #dfe7df}.town-detail-page .town-detail-hero .btn--ghost{padding-left:0;color:var(--primary)}.town-detail-page .town-detail-hero .eyebrow{margin-top:16px}.town-detail-page .town-detail-hero h1{margin-top:14px;font-size:35.2px;line-height:1.22}.town-detail-page .town-snapshot{align-self:stretch;padding:22px}.town-detail-page>.grid.three,.town-detail-page>.grid.two{padding:54px 0 0}.town-detail-page>.grid.three .data-card{min-height:100%}.request-page .mode-switch{border-radius:999px;border-color:#d7d7d7;background:#f7f8f4}.request-page .mode-switch button.active{background:var(--primary);color:#fff;box-shadow:none}.request-page .field{color:#555;font-weight:600}.request-page .input,.request-page .textarea,.profile-form .input{border-color:#cfd9ce;border-radius:0;background:#fff}.request-page .input:focus,.request-page .textarea:focus,.profile-form .input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #447c9f29}.request-page .offline-fields{border-radius:0;border-color:#b7cbb7;background:#edf3ee}.request-page .request-contact-card{align-self:start;background:#f7f8f4}.request-page .request-contact-card .grid.two{grid-template-columns:1fr;gap:10px}.request-page .request-contact-card .textarea--compact{min-height:72px}.request-page .request-review-card .metric-grid{margin-top:4px}.request-page .invite-box,.request-page .validation-panel,.request-page .flow-actions{border-radius:0}.request-page .footer-actions{margin-top:34px;padding-top:22px;border-top:1px solid #dfe7df}.my-inspection-page .inspection-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.my-inspection-page .inspection-board>.data-card{padding:0}.my-inspection-page .inspection-board .card-title-row{margin:0;padding:16px 18px;border-bottom:1px solid #dfe7df;background:#f7f8f4}.my-inspection-page .inspection-board .inspection-list{padding:0 18px 14px}.my-inspection-page .inspection-board .inspection-list>p{margin:0;padding:18px 0;color:var(--muted);font-size:13px}.my-inspection-page .inspection-list-item .actions{justify-content:flex-start}.my-inspection-page .inspection-list-item .btn,.request-page .btn,.town-detail-page .btn{border-radius:999px}.my-inspection-page .inspection-list-item .btn--secondary,.request-page .btn--secondary,.town-detail-page .btn--secondary{border-color:var(--primary);color:var(--primary);background:transparent}.my-inspection-page .inspection-list-item .btn--primary,.request-page .btn--primary,.town-detail-page .btn--primary{background:var(--primary);color:#fff;box-shadow:none}@media(max-width:1160px){.my-inspection-page .inspection-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.app-shell--portal .workspace-header{align-items:flex-start;flex-direction:column;margin-top:24px}.ecopixel-workspace .grid.two,.ecopixel-workspace .grid.three,.my-inspection-page .inspection-board{grid-template-columns:1fr}.request-page .footer-actions{align-items:stretch}}.operations-page .workbench-stats,.notification-page .workbench-stats,.admin-page .workbench-stats{margin-bottom:34px;padding:0 0 24px;border-bottom:1px solid #dfe7df}.operations-page .workbench-overview{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px;padding:14px 18px;border-left:4px solid var(--primary);background:#f7f8f4;color:#24311f}.operations-page .workbench-overview strong{flex:0 0 auto;color:#143d5b;font-size:18px}.operations-page .workbench-overview span{color:#5d6759;font-size:14px;line-height:1.6;text-align:right}.operations-page .data-card,.notification-page .data-card,.admin-page .data-card,.contacts-page .data-card{border:1px solid #d7d7d7;border-radius:0;box-shadow:none}.operations-page .data-card>.card-title-row,.notification-page .data-card>.card-title-row,.admin-page .data-card>.card-title-row,.contacts-page .data-card>.card-title-row{margin:-16px -16px 16px;padding:16px 18px;border-bottom:1px solid #dfe7df;background:#f7f8f4}.operations-page .inspection-list,.notification-page .notification-list,.admin-page .inspection-list,.contacts-page .inspection-list{gap:0}.operations-page .inspection-list-item,.admin-page .inspection-list-item,.contacts-page .inspection-list-item{padding:16px 0;border-width:0 0 1px;border-color:#dfe7df;border-radius:0;background:transparent}.operations-page .inspection-list-item:last-child,.admin-page .inspection-list-item:last-child,.contacts-page .inspection-list-item:last-child{border-bottom:0}.operations-page .inspection-list-item.is-new,.admin-page .inspection-list-item.is-new,.contacts-page .inspection-list-item.is-new{padding:16px;border:1px solid #b7cbb7;background:#f2f7ef}.operations-page .inspection-meta,.admin-page .inspection-meta,.contacts-page .inspection-meta{border-radius:0;border-color:#dfe7df;background:#f7f8f4}.operations-page .workbench-form,.admin-page .workbench-form,.contacts-page .workbench-form{margin-top:14px;padding:16px;border-color:#d7d7d7;border-radius:0;background:#fff}.operations-page .input,.operations-page .textarea,.admin-page .input,.admin-page .textarea,.contacts-page .input,.contacts-page .textarea{border-color:#cfd9ce;border-radius:0}.operations-page .input:focus,.operations-page .textarea:focus,.admin-page .input:focus,.admin-page .textarea:focus,.contacts-page .input:focus,.contacts-page .textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #447c9f29}.operations-page .field,.admin-page .field,.contacts-page .field{color:#555;font-weight:600}.operations-page .btn,.notification-page .btn,.admin-page .btn,.contacts-page .btn{border-radius:999px}.operations-page .btn--primary,.notification-page .btn--primary,.admin-page .btn--primary,.contacts-page .btn--primary{background:var(--primary);color:#fff;box-shadow:none}.operations-page .btn--secondary,.notification-page .btn--secondary,.admin-page .btn--secondary,.contacts-page .btn--secondary{border-color:var(--primary);background:transparent;color:var(--primary)}.operations-page .btn--warn,.admin-page .btn--warn{border-color:#d7a9a9;background:#fff4f2}.operations-page .btn.approval-action{border-color:#1f5f3a;background:#1f6f43;color:#fff;box-shadow:0 9px 18px #1f6f4338;font-weight:800}.operations-page .btn.approval-action:hover:not(:disabled){border-color:#185933;background:#185933}.operations-page .btn.inspection-action-toggle,.ecopixel-workspace .btn.inspection-action-toggle,.app-shell--portal .btn.inspection-action-toggle{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:800}.operations-page .btn.inspection-action-toggle:hover:not(:disabled),.ecopixel-workspace .btn.inspection-action-toggle:hover:not(:disabled),.app-shell--portal .btn.inspection-action-toggle:hover:not(:disabled){border-color:#386f91;background:#386f91;color:#fff}.pagination-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:14px;color:var(--muted);font-size:13px}.notification-page .notification-item{padding:16px 0;border-width:0 0 1px;border-color:#dfe7df;border-radius:0;background:transparent}.notification-page .notification-item:last-child{border-bottom:0}.notification-page .notification-item.is-unread{padding:16px;border:1px solid #b7cbb7;background:#f2f7ef}.notification-page .notification-kind{border-color:#d7e0d5;background:#edf3ee;color:var(--primary)}.notification-page .notification-item strong{color:#555;font-size:15px}.admin-page .grid.two,.operations-page .grid.two,.contacts-page .grid.two{gap:28px}.admin-page .footer-actions,.operations-page .footer-actions,.contacts-page .footer-actions{margin-top:24px;padding-top:18px;border-top:1px solid #dfe7df}.hint,.empty-state,.inspection-list>p,.notification-list>.hint,.attachment-list>.hint,.meeting-list-section p{color:var(--muted);font-size:13px;line-height:1.65}.empty-state,.inspection-list>p,.notification-list>.hint,.attachment-list>.hint{margin:0;padding:18px 0;border-top:1px solid #edf2ed;border-bottom:1px solid #edf2ed;color:#6f7a70}.data-card>.empty-state:first-child,.inspection-list>p:first-child,.notification-list>.hint:first-child,.attachment-list>.hint:first-child{border-top:0}.btn,.nav-link.btn,.upload-button{border-radius:999px;box-shadow:none;text-decoration:none}.btn--primary{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:700}.btn--primary:hover:not(:disabled){background:#386f91;border-color:#386f91}.btn--secondary{border-color:var(--primary);background:transparent;color:var(--primary);font-weight:650}.btn--secondary:hover:not(:disabled){background:var(--primary-soft)}.btn--warn{border-color:#d9a5a7;background:#fff4f2;color:var(--danger)}.btn--ghost{color:var(--primary)}.portal-header .btn--ghost,.public-header .btn--ghost{color:#fff}.badge,.tag,.chip,.notification-kind{border-radius:999px;box-shadow:none}.badge--good,.tag--good{border-color:#b7cbb7;background:#f2f7ef;color:#3f6e32}.badge--warn,.tag--warn{border-color:#f1d79f;background:#fff8e8;color:#9a6417}.badge--danger,.tag--danger{border-color:#d9a5a7;background:#fff4f2;color:var(--danger)}.badge--muted,.tag,.notification-kind{border-color:#d7e0d5;background:#f7f8f4;color:#646b63}.inspection-list-item.is-new,.notification-item.is-unread{border-color:#b7cbb7;background:#f2f7ef}@media(max-width:860px){.app-shell--portal,.public-shell{width:100%;padding-top:0}.site-main-surface,.public-main{width:min(100vw - 28px,1110px)}.portal-header,.public-header{position:static;min-height:auto;padding:12px 14px;border-radius:0;align-items:stretch;flex-direction:column;gap:10px}.portal-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.portal-nav button,.portal-nav a{min-height:38px;padding:0 10px;font-size:12px}.workspace-header,.section-heading{gap:10px}.workspace-header h2,.section-heading h2,.landing-copy h1,.town-detail-hero h1{font-size:30px;line-height:1.18}.ecopixel-workspace .section-panel,.closure-page .section-panel,.profile-page .section-panel{padding-top:24px}.data-card,.side-panel,.profile-page .profile-form{padding:14px}.data-card>.card-title-row,.closure-page .data-card>.card-title-row,.profile-page .data-card>.card-title-row,.operations-page .data-card>.card-title-row,.notification-page .data-card>.card-title-row,.admin-page .data-card>.card-title-row,.contacts-page .data-card>.card-title-row{margin:-14px -14px 14px;padding:13px 14px}.grid,.ecopixel-workspace .grid,.meeting-layout,.inspection-board{gap:16px}.input{height:40px}.textarea{min-height:88px}.btn{min-height:40px;padding:8px 12px}.inspection-list-item,.operations-page .inspection-list-item,.admin-page .inspection-list-item,.contacts-page .inspection-list-item,.notification-page .notification-item{padding:13px 0}.inspection-list-item.is-new,.operations-page .inspection-list-item.is-new,.admin-page .inspection-list-item.is-new,.contacts-page .inspection-list-item.is-new,.notification-page .notification-item.is-unread{padding:13px}.operations-page .grid.two,.admin-page .grid.two,.contacts-page .grid.two,.notification-page .grid.two{grid-template-columns:1fr}.operations-page .actions,.admin-page .actions,.contacts-page .actions{align-items:stretch}}.app-shell--portal .portal-header,.public-shell .public-header{min-height:68px;padding-top:0;padding-bottom:0}.app-shell--portal .brand-mark,.public-shell .brand-mark{min-height:68px;padding:0 12px 0 0}.app-shell--portal .portal-nav,.public-shell .portal-nav{align-self:stretch;gap:0}.app-shell--portal .portal-nav button,.app-shell--portal .portal-nav a,.public-shell .portal-nav button,.public-shell .portal-nav a{min-height:68px;padding:8px 16px;border-radius:0;color:#fff;font-size:16px}.app-shell--portal .portal-nav button.active,.app-shell--portal .portal-nav a.active,.app-shell--portal .portal-nav button:hover,.app-shell--portal .portal-nav a:hover,.public-shell .portal-nav button.active,.public-shell .portal-nav a.active,.public-shell .portal-nav button:hover,.public-shell .portal-nav a:hover{background:#407494}.app-shell--portal .portal-nav .demo-pill,.public-shell .portal-nav .demo-pill{min-height:68px;border-radius:0;background:var(--gold);color:#004773;font-weight:700}.app-shell--portal .portal-account{align-self:stretch}.app-shell--portal .account-menu{top:calc(100% - 2px)}.app-shell--portal .account-pill{min-height:68px;border-width:0;border-radius:0;background:transparent}.app-shell--portal .portal-account .btn--ghost{min-height:68px;border-radius:0}.landing-page{gap:0}.app-shell--portal .landing-hero,.public-shell .landing-hero{min-height:268px;grid-template-columns:minmax(0,760px);align-items:center;padding:46px 0 54px}.app-shell--portal .landing-hero>.portal-device-preview,.public-shell .landing-hero>.portal-device-preview{display:none}.landing-copy h1{margin:26px 0 22px;font-size:35.2px;line-height:1.24}.landing-copy p{max-width:730px;color:#ffffffeb}.app-shell--portal .landing-hero .eyebrow,.public-shell .landing-hero .eyebrow{padding:0;border:0;background:transparent;color:#ffffffc7;font-size:16px}.landing-copy .actions{margin-top:20px}.app-shell--portal .landing-page .btn,.public-shell .landing-page .btn,.town-detail-page .btn,.towns-page .btn{min-height:36px;padding:6px 12px;border-radius:0;font-size:16px}.app-shell--portal .landing-hero .btn--primary,.public-shell .landing-hero .btn--primary{background:var(--gold);border-color:var(--gold);color:#004773}.app-shell--portal .landing-hero .btn--secondary,.public-shell .landing-hero .btn--secondary{border-color:#fffc;background:#ffffffd1;color:var(--primary)}.ecopixel-section{padding:70px 0;border-bottom:1px solid #e5e5e5}.feature-split{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:68px}.feature-media{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.feature-copy .eyebrow{padding:0;border:0;background:transparent;color:#777;font-size:16px;font-weight:400}.feature-copy h2,.section-heading h2{margin:0 0 16px;color:#555;font-size:28.8px;font-weight:700;line-height:1.25}.feature-copy p,.section-heading p{color:#555;font-size:16px;line-height:1.75}.desktop-frame,.device-card,.cms-preview,.meeting-doc-preview,.accessibility-preview,.calendar-news-preview{border:1px solid #d7d7d7;border-radius:0;background:#fff;box-shadow:none}.mock-town-hero{background:var(--primary)}.device-stack{min-height:330px}.device-card{box-shadow:16px 16px #447c9f14}.device-card-bar,.news-thumb,.town-tile-map{background:#edf3ee}.phone-frame{border-radius:0;box-shadow:none}.cms-sidebar{background:#edf3ee}.cms-sidebar span,.meeting-doc-row span{border-radius:0}.accessibility-preview{display:grid;min-height:318px}.accessibility-preview__header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:0 20px;border-bottom:1px solid #dfe7df;background:#edf3ee}.accessibility-preview__header strong{color:#555;font-size:20px}.accessibility-preview__header span{color:var(--muted);font-size:13px}.accessibility-preview__body{display:grid;align-content:start}.accessibility-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;padding:18px 20px;border-bottom:1px solid #dfe7df}.accessibility-row:last-child{border-bottom:0}.accessibility-row>span{display:inline-flex;justify-content:center;color:var(--primary);font-weight:700}.accessibility-row strong,.calendar-panel>strong,.bulletin-panel>strong{display:block;color:#555}.accessibility-row em,.calendar-row em,.bulletin-panel p{color:var(--muted);font-size:13px;font-style:normal;line-height:1.55}.calendar-news-preview{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:320px}.calendar-panel,.bulletin-panel{display:grid;align-content:start;gap:14px;padding:22px}.calendar-panel{border-right:1px solid #dfe7df;background:#edf3ee}.calendar-row{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:start;padding:14px 0;border-top:1px solid #d7e0d5}.calendar-row>span{color:var(--primary);font-weight:700}.bulletin-panel article{padding-top:14px;border-top:1px solid #dfe7df}.bulletin-panel h3{margin:0 0 7px;color:var(--primary);font-size:20.8px;line-height:1.25}.town-showcase{border-bottom:1px solid #e5e5e5}.town-card-grid{margin-top:24px}.news-grid{gap:30px}.news-card h3{color:var(--primary)}.portal-footer{padding:56px 0;border-top:0}.portal-footer .metric{border-radius:0;background:#f7f8f4}@media(max-width:1160px){.app-shell--portal .portal-header,.public-shell .public-header{min-height:auto;padding-top:10px;padding-bottom:10px}.app-shell--portal .portal-nav button,.app-shell--portal .portal-nav a,.public-shell .portal-nav button,.public-shell .portal-nav a,.app-shell--portal .portal-nav .demo-pill,.public-shell .portal-nav .demo-pill,.app-shell--portal .account-pill,.app-shell--portal .portal-account .btn--ghost{min-height:42px}}@media(max-width:860px){.app-shell--portal .portal-nav button,.app-shell--portal .portal-nav a,.public-shell .portal-nav button,.public-shell .portal-nav a{font-size:13px}.app-shell--portal .landing-hero,.public-shell .landing-hero{min-height:0;padding:34px 0 42px}.landing-copy h1{font-size:31px}.feature-split,.calendar-news-preview{gap:22px;grid-template-columns:1fr}.calendar-panel{border-right:0;border-bottom:1px solid #dfe7df}}.town-detail-page .town-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:40px;align-items:end;min-height:260px;margin-top:0;padding:44px 0 48px;border:0;background:var(--primary);color:#fff;box-shadow:0 0 0 100vmax var(--primary);clip-path:inset(0 -100vmax)}.town-detail-page .town-detail-hero .btn--ghost{min-height:34px;padding-left:0;border-color:transparent;background:transparent;color:#ffffffe6}.town-detail-page .town-detail-hero .eyebrow{display:block;margin-top:20px;padding:0;border:0;background:transparent;color:#ffffffc2;font-size:15px}.town-detail-page .town-detail-hero h1{margin:14px 0 16px;color:#fff;font-size:38px;line-height:1.2}.town-detail-page .town-detail-hero p{max-width:760px;color:#ffffffe6}.town-detail-page .town-detail-hero .btn--primary{border-color:var(--gold);background:var(--gold);color:#004773}.town-detail-page .town-detail-hero .btn--secondary{border-color:#ffffffc7;background:#ffffff1f;color:#fff}.town-detail-page .town-detail-hero__panel{display:grid;gap:14px;padding:22px;border:1px solid rgba(255,255,255,.32);background:#ffffff1a}.town-detail-page .town-detail-hero__panel h2{margin:0;color:#fff;font-size:22px}.town-detail-page .town-detail-hero__panel p{margin:0;font-size:14px;line-height:1.65}.town-detail-page .town-detail-contact{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;color:#ffffffeb;font-size:14px}.town-detail-page .town-detail-statbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #dfe7df;background:#fff}.town-detail-page .town-detail-stat{min-height:92px;padding:20px 22px;border-right:1px solid #dfe7df}.town-detail-page .town-detail-stat:last-child{border-right:0}.town-detail-page .town-detail-stat span{display:block;margin-bottom:8px;color:var(--muted);font-size:14px}.town-detail-page .town-detail-stat strong{display:block;color:#555;font-size:20px;line-height:1.35}.town-detail-page .town-detail-content{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(300px,.66fr);gap:42px;padding:58px 0 0}.town-detail-page .town-detail-sidebar{display:grid;gap:34px;align-content:start}.town-detail-page .town-detail-section{min-width:0}.town-detail-page .town-detail-section__head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--primary)}.town-detail-page .town-detail-section__head .eyebrow{padding:0;border:0;background:transparent;color:var(--primary);font-size:13px}.town-detail-page .town-detail-section__head h2{margin:0;color:#555;font-size:24px}.town-detail-page .town-detail-news-list,.town-detail-page .town-detail-event-list,.town-detail-page .town-detail-people-list{display:grid}.town-detail-page .town-detail-news{display:grid;grid-template-columns:116px minmax(0,1fr);gap:8px 22px;padding:20px 0;border-bottom:1px solid #dfe7df}.town-detail-page .town-detail-news time{color:var(--primary);font-weight:700}.town-detail-page .town-detail-news h3,.town-detail-page .town-detail-event h3{margin:0;color:#555;font-size:20px;line-height:1.35}.town-detail-page .town-detail-news p{grid-column:2;margin:0;color:var(--muted);line-height:1.65}.town-detail-page .town-detail-event{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;padding:17px 0;border-bottom:1px solid #dfe7df}.town-detail-page .town-detail-event svg{margin-top:2px;color:var(--primary)}.town-detail-page .town-detail-event time,.town-detail-page .town-detail-person span{color:var(--muted);font-size:13px}.town-detail-page .town-detail-event p,.town-detail-page .town-detail-person p{margin:6px 0 0;color:var(--muted);line-height:1.55}.town-detail-page .town-detail-person{padding:16px 0;border-bottom:1px solid #dfe7df}.town-detail-page .town-detail-person strong{display:block;margin-bottom:4px;color:#555;font-size:18px}.town-detail-page .town-detail-person.is-muted{opacity:.72}@media(max-width:1160px){.town-detail-page .town-detail-hero,.town-detail-page .town-detail-content{grid-template-columns:1fr}.town-detail-page .town-detail-hero__panel{max-width:520px}}@media(max-width:860px){.town-detail-page .town-detail-hero{padding:34px 0 40px}.town-detail-page .town-detail-hero h1{font-size:31px}.town-detail-page .town-detail-statbar{grid-template-columns:repeat(2,minmax(0,1fr))}.town-detail-page .town-detail-stat:nth-child(2n){border-right:0}.town-detail-page .town-detail-stat:nth-child(-n+2){border-bottom:1px solid #dfe7df}.town-detail-page .town-detail-content{gap:34px;padding-top:42px}.town-detail-page .town-detail-section__head{align-items:flex-start;flex-direction:column;gap:4px}.town-detail-page .town-detail-news{grid-template-columns:1fr;gap:8px}.town-detail-page .town-detail-news p{grid-column:auto}}.public-shell .landing-page{background:#fff}.public-shell .landing-page .landing-copy h1,.public-shell .landing-page .landing-copy p{max-width:760px}.public-shell .landing-page .feature-copy h2{max-width:620px}.public-shell .landing-page .feature-copy p{max-width:650px}.landing-intro-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:start}.landing-intro-copy{max-width:560px}.landing-intro-copy .eyebrow,.landing-story-panel .eyebrow{padding:0;border:0;background:transparent;color:var(--primary);font-size:15px;font-weight:700}.landing-intro-copy h2,.landing-story-panel h2{margin:12px 0 16px;color:#244256;font-size:32px;line-height:1.22}.landing-intro-copy p,.landing-story-panel p{margin:0;color:#52605d;font-size:16px;line-height:1.8}.landing-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#dfe7df;border:1px solid #dfe7df}.landing-insight-grid article{min-height:260px;padding:28px 24px;background:#fff}.landing-insight-grid svg{color:var(--primary)}.landing-insight-grid h3{margin:42px 0 10px;color:#244256;font-size:22px;line-height:1.25}.landing-insight-grid p{margin:0;color:#52605d;font-size:14px;line-height:1.7}.landing-story-section{background:#f5f8f4;box-shadow:0 0 0 100vmax #f5f8f4;clip-path:inset(0 -100vmax)}.landing-story-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:52px;align-items:start}.landing-need-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#d7e1d2;border:1px solid #d7e1d2}.landing-need-item{min-height:150px;padding:22px;background:#fff}.landing-need-item strong{display:block;color:#244256;font-size:18px}.landing-need-item span{display:block;margin-top:12px;color:#52605d;font-size:14px;line-height:1.7}.public-shell .login-dock{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,430px);gap:54px;align-items:center;margin-top:0;padding:64px 0 72px;border-bottom:0;background:#f5f8f4;box-shadow:0 0 0 100vmax #f5f8f4;clip-path:inset(0 -100vmax)}.public-shell .login-dock__intro{max-width:650px}.public-shell .login-dock .eyebrow{padding:0;border:0;background:transparent;color:var(--primary);font-size:15px;font-weight:700}.public-shell .login-dock h2{max-width:620px;margin:14px 0;color:#244256;font-size:34px;line-height:1.18}.public-shell .login-dock p{max-width:610px;color:#52605d;font-size:16px;line-height:1.8}.public-shell .login-dock__steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:28px 0 0;padding:0;list-style:none;counter-reset:visit-flow}.public-shell .login-dock__steps li{counter-increment:visit-flow;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:center;min-height:64px;padding:14px;border:1px solid #d7e1d2;background:#ffffffb8;color:#314b46;font-weight:700}.public-shell .login-dock__steps li:before{content:counter(visit-flow);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--primary);color:#fff;font-family:var(--number-font);font-size:14px;font-weight:700}.public-shell .login-dock .login-card{grid-column:auto;width:100%;margin:0;padding:28px;border:1px solid #d7d7d7;border-radius:0;background:#fff;box-shadow:14px 14px #447c9f14}.public-shell .login-dock .card-title-row{align-items:center;padding-bottom:16px;border-bottom:1px solid #e2e7df}.public-shell .login-dock .card-title-row h3{margin:0;color:#244256;font-size:24px;line-height:1.2}.public-shell .login-dock .card-title-row p{margin:10px 0 0;color:#66726c;font-size:13px;line-height:1.65}.public-shell .login-dock .mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px;padding:6px;border:1px solid #dfe6dc;border-radius:0;background:#f5f7f2}.public-shell .login-dock .mode-switch button{justify-content:center;min-height:44px;padding:8px 10px;border-radius:0;color:#5f6b66;font-size:15px;font-weight:700}.public-shell .login-dock .mode-switch button.active{background:var(--primary);color:#fff;box-shadow:none}.public-shell .login-dock .field{color:#52605d;font-size:14px}.public-shell .login-dock .input{height:46px;border-color:#d3ddd0;border-radius:0;background:#fbfcfa}.public-shell .login-dock .input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #40749424}.public-shell .login-dock .login-card form>.btn{width:100%;min-height:46px;margin-top:18px;border-radius:0;background:var(--primary);color:#fff;font-size:16px;box-shadow:none}.public-intent-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:28px 0 0;padding:16px 18px;border:1px solid #d7e1d2;background:#f5f8f4}.public-intent-bar strong{color:var(--primary);font-size:18px}.public-intent-bar span{color:#52605d;font-size:14px;line-height:1.5}@media(max-width:1160px){.landing-intro-section,.landing-story-panel{grid-template-columns:1fr}.landing-intro-copy{max-width:720px}.public-shell .login-dock{grid-template-columns:1fr;gap:30px}.public-shell .login-dock .login-card{max-width:520px}}@media(max-width:680px){.landing-insight-grid,.landing-need-list{grid-template-columns:1fr}.landing-insight-grid article,.landing-need-item{min-height:0}.public-shell .login-dock{padding:46px 0 54px}.public-shell .login-dock h2{font-size:28px}.public-shell .login-dock__steps{grid-template-columns:1fr}.public-shell .login-dock .login-card{padding:22px}.public-login-main{min-height:calc(100vh - 82px);padding:46px 18px}.public-login-main .login-card{padding:22px}.public-intent-bar{align-items:flex-start;flex-direction:column}}.news-thumb,.town-tile-map,.town-detail-cover,.town-detail-news__media,.town-detail-event__media,.town-detail-person__avatar{overflow:hidden;border-radius:0;background:#edf3ee}.news-thumb img,.town-tile-map img,.town-detail-cover,.town-detail-news__media img,.town-detail-event__media img,.town-detail-person__avatar img{display:block;width:100%;height:100%;object-fit:cover}.news-thumb{aspect-ratio:16 / 10;min-height:0}.news-thumb span{display:grid;min-height:100%;place-items:center;color:#447c9f57;font-size:28px;font-weight:700}.town-tile-map{aspect-ratio:16 / 10;min-height:0;padding:0;background:#edf3ee}.town-tile-map svg,.town-tile-map>span{margin:22px}.town-detail-page .town-detail-hero__panel{padding:0 0 22px}.town-detail-page .town-detail-hero__panel>:not(.town-detail-cover){margin-right:22px;margin-left:22px}.town-detail-cover{aspect-ratio:16 / 9;max-height:190px;border-bottom:1px solid rgba(255,255,255,.24)}.town-detail-page .town-detail-news{grid-template-columns:168px minmax(0,1fr);gap:22px;align-items:start}.town-detail-news__media{aspect-ratio:4 / 3}.town-detail-news__media span{display:grid;height:100%;place-items:center;color:#447c9f57;font-size:24px;font-weight:700}.town-detail-news__body{display:grid;gap:8px}.town-detail-page .town-detail-news p{grid-column:auto}.town-detail-page .town-detail-event{grid-template-columns:88px minmax(0,1fr);gap:14px}.town-detail-event__media{display:grid;aspect-ratio:1 / 1;place-items:center;color:var(--primary)}.town-detail-page .town-detail-event svg{margin:0}.town-detail-page .town-detail-person{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:start}.town-detail-person__avatar{display:grid;width:56px;height:56px;place-items:center;color:var(--primary)}.ecopixel-workspace .workspace-header,.app-shell--portal .workspace-header{border-bottom:1px solid #dfe7df;border-radius:0;background:transparent;box-shadow:none}.ecopixel-workspace .data-card,.ecopixel-workspace .section-panel,.ecopixel-workspace .side-panel,.profile-page .profile-form{border-radius:0;box-shadow:none}.ecopixel-workspace .btn,.app-shell--portal .btn,.public-shell .btn,.mode-switch button,.account-pill,.tag,.badge,.chip,.input,.textarea{border-radius:0}.ecopixel-workspace .btn--primary,.app-shell--portal .btn--primary{background:var(--primary);color:#fff;box-shadow:none}.ecopixel-workspace .btn--secondary,.app-shell--portal .btn--secondary{border-color:var(--primary);background:transparent;color:var(--primary)}.request-page .mode-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;overflow:hidden;border-radius:999px}.request-page .mode-switch button{min-height:34px;margin:0;border-radius:999px;line-height:1}.request-page .mode-switch button.active{background:var(--primary);color:#fff}.notification-page .notification-item.is-unread,.operations-page .inspection-list-item.is-new,.admin-page .inspection-list-item.is-new,.contacts-page .inspection-list-item.is-new,.my-inspection-page .inspection-list-item.is-new{border-color:#b7cbb7;background:#f2f7ef}.portal-editor{display:grid;gap:16px;margin-top:18px;padding:18px;border:1px solid #d7d7d7;background:#fff}.portal-editor--compact{padding:14px;background:#fbfcfa}.portal-editor>.card-title-row{margin:-18px -18px 2px;padding:15px 18px;border-bottom:1px solid #dfe7df;background:#f7f8f4}.portal-editor--compact>.card-title-row{margin:-14px -14px 2px;padding:13px 14px}.portal-editor-block{display:grid;gap:12px;padding-top:14px;border-top:1px solid #dfe7df}.portal-editor-block h4{margin:0;color:#555;font-size:17px}.portal-editor-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid #dfe7df;background:#fff}.portal-editor-row .field:last-child{grid-column:1 / -1}.portal-editor input[type=file].input{padding-top:8px}.personal-center-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:28px;border:1px solid #dfe7df;background:#fff}.personal-center-strip article,.personal-center-card{display:grid;gap:7px;min-height:118px;padding:20px;border-right:1px solid #dfe7df;border-top:0;border-bottom:0;border-left:0;background:#fff;text-align:left}.personal-center-strip article:last-child,.personal-center-card:last-child{border-right:0}.personal-center-card{cursor:pointer}.personal-center-card:hover{background:var(--primary-soft)}.personal-center-strip span{color:var(--muted);font-size:13px}.personal-center-strip strong{color:var(--primary);font-size:26px;line-height:1.1}.personal-center-strip em{color:var(--muted);font-size:13px;font-style:normal;line-height:1.45}.app-shell--portal .portal-header{flex-wrap:wrap;row-gap:0;overflow:visible}.app-shell--portal .portal-nav{order:3;flex-basis:100%;justify-content:flex-start;min-height:44px;overflow-x:auto;scrollbar-width:none}.app-shell--portal .portal-nav::-webkit-scrollbar{display:none}.app-shell--portal .portal-nav button,.app-shell--portal .portal-nav a,.app-shell--portal .portal-nav .demo-pill{min-height:44px;padding:6px 12px;font-size:14px}.app-shell--portal .portal-account,.app-shell--portal .account-pill,.app-shell--portal .portal-account .btn--ghost{min-height:48px}@media(max-width:860px){.town-detail-page .town-detail-news{grid-template-columns:1fr}.town-detail-page .town-detail-event{grid-template-columns:74px minmax(0,1fr)}.town-detail-page .town-detail-hero__panel{max-width:none}.portal-editor-row,.portal-editor .grid.two,.portal-editor .grid.three,.personal-center-strip{grid-template-columns:1fr}.personal-center-strip article,.personal-center-card{border-right:0;border-bottom:1px solid #dfe7df}.personal-center-strip article:last-child,.personal-center-card:last-child{border-bottom:0}}.app-shell--portal .operations-page .btn.inspection-action-toggle,.app-shell--portal .operations-page .btn.inspection-action-toggle span,.app-shell--portal .operations-page .btn.inspection-action-toggle svg,.app-shell--portal .operations-page .btn.approval-action,.app-shell--portal .operations-page .btn.approval-action span,.app-shell--portal .operations-page .btn.approval-action svg{color:#fff;stroke:currentColor}
