
/* Copied verbatim from original/index.html critical CSS. The reference's standalone stylesheet relies on this base layout. */
+/* Critical: Base + Layout + Header + Hero + Sidebar Actions */
*,::before,::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;font-size:15px;line-height:1.6;color:#1a1d23;background:#f6f7f9;-webkit-font-smoothing:antialiased}
a{color:var(--color-action-primary-hover);text-decoration:none}img{max-width:100%;height:auto;display:block}
.page-wrapper{min-height:100vh;display:flex;flex-direction:column}
.disclaimer-banner{background:var(--color-disclaimer-bg);border-bottom:1px solid #fbd38d;color:var(--color-disclaimer);font-size:13px;padding:10px 20px;text-align:center}
.breadcrumb{max-width:1200px;margin:0 auto;padding:14px 20px;font-size:13px;color:#8a929f}
.breadcrumb a{color:#5a6270}.breadcrumb a:hover{color:#1a1d23}
.breadcrumb span{margin:0 6px;color:#e2e4e8}
.main-container{max-width:1200px;margin:0 auto;padding:0 20px 20px;display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}
.content-column{min-width:0}.sidebar-column{min-width:0;position:sticky;top:16px}
.card{background:#fff;border-radius:14px;border:1px solid #e2e4e8;box-shadow:0 1px 2px rgba(0,0,0,.04);overflow:hidden;margin-bottom:20px}
.object-header{background:#fff;border-radius:20px;border:1px solid #e2e4e8;box-shadow:0 2px 8px rgba(0,0,0,.06);padding:26px 28px 22px;margin-bottom:20px}
.object-type{display:inline-block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-accent);background:var(--color-accent-light);padding:4px 12px;border-radius:6px;margin-bottom:12px}
.object-name{font-size:28px;font-weight:800;line-height:1.25;margin:0 0 6px;letter-spacing:-.5px}
.object-name-short{font-size:16px;color:#5a6270;margin:0 0 14px;font-weight:400}
.object-address{font-size:15px;color:#5a6270;margin:0 0 4px;display:flex;align-items:center;gap:8px}
.object-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid #eef0f2}
.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:5px 12px;border-radius:6px}
.status-badge--open{background:var(--color-success-bg);color:var(--color-success)}.status-badge--closed{background:var(--color-error-bg);color:var(--color-error)}.status-badge--soon{background:var(--color-warning-bg);color:var(--color-warning)}.status-badge--unknown{background:#f6f7f9;color:#8a929f}
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot--open{background:var(--color-success);box-shadow:0 0 0 3px rgba(56,161,105,.2)}.status-dot--closed{background:var(--color-error)}
.verification-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#8a929f}
.verification-badge--verified{color:var(--color-success)}.verification-badge--outdated{color:var(--color-warning)}.verification-badge--unverified{color:var(--color-error)}
.actions-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.actions-row--mobile-fixed{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:14px;font-weight:600;padding:11px 20px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:all .15s ease;text-decoration:none;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.btn:focus{outline:none;box-shadow:0 0 0 3px rgba(49,130,206,.2)}
.btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn--primary:hover{background:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover);color:#fff;text-decoration:none}
.btn--secondary{background:#edf2f7;color:#1a1d23;border-color:#e2e4e8}.btn--secondary:hover{background:var(--color-action-secondary-hover);color:#1a1d23;text-decoration:none}
.btn--block{width:100%}
.sidebar-widget{background:#fff;border-radius:14px;border:1px solid #e2e4e8;box-shadow:0 1px 2px rgba(0,0,0,.04);margin-bottom:20px;overflow:hidden}
.sidebar-widget-title{font-size:14px;font-weight:700;padding:14px 18px;border-bottom:1px solid #eef0f2;margin:0}
.sidebar-widget-body{padding:14px 18px}
.quick-actions .btn{margin-bottom:8px}.quick-actions .btn:last-child{margin-bottom:0}
.card-header{padding:18px 22px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-title{font-size:17px;font-weight:700;margin:0;color:#1a1d23}
.card-body{padding:16px 22px 20px}.card-body-compact{padding:14px 22px}
.alert{padding:14px 18px;border-radius:10px;font-size:14px;display:flex;align-items:flex-start;gap:10px;margin-bottom:20px}
.alert--warning{background:var(--color-warning-bg);border:1px solid #fbd38d;color:#975a16}
.alert--error{background:var(--color-error-bg);border:1px solid #feb2b2;color:#c53030}
.alert--info{background:var(--color-info-bg);border:1px solid #c3dafe;color:#4c51bf}
.page-footer{margin-top:auto;background:#fff;border-top:1px solid #e2e4e8;padding:24px 20px;text-align:center;font-size:13px;color:#8a929f}
@media (max-width:900px){.main-container{grid-template-columns:1fr}.sidebar-column{position:static;order:2}.content-column{order:1}.object-name{font-size:22px}.actions-row{display:none}.actions-row--mobile-fixed{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e2e4e8;padding:10px 16px;gap:8px;z-index:999;box-shadow:0 -2px 8px rgba(0,0,0,.04)}.actions-row--mobile-fixed .btn{flex:1;padding:12px 8px;font-size:13px}}
@media (max-width:480px){.object-name{font-size:20px}.object-header{padding:20px 18px 18px}.card-header,.card-body,.card-body-compact{padding-left:18px;padding-right:18px}}


:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-border:#e2e4e8;--color-border-light:#eef0f2;--color-text-primary:#1a1d23;--color-text-secondary:#5a6270;--color-text-muted:#8a929f;--color-text-link:#2b6cb0;--color-text-link-hover:#1a4a7a;--color-accent:#3182ce;--color-accent-light:#ebf4ff;--color-success:#38a169;--color-success-bg:#f0fff4;--color-warning:#d69e2e;--color-warning-bg:#fffbeb;--color-error:#e53e3e;--color-error-bg:#fff5f5;--color-info:#5a67d8;--color-info-bg:#eef2ff;--color-disclaimer:#744210;--color-disclaimer-bg:#fffaf0;--color-action-success:#38a169;--color-action-success-hover:#2f855a;--color-source-official:#38a169;--color-source-catalog:#718096;--color-source-unverified:#d69e2e;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-md:0 2px 8px rgba(0,0,0,.06);--shadow-lg:0 4px 16px rgba(0,0,0,.08);--section-gap:20px}
/* Accessibility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}

/* Header */
.page-header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.page-header-inner{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{font-size:17px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.3px}
.logo span{color:var(--color-accent)}
.header-nav{display:flex;gap:20px;font-size:14px}
.header-nav a{color:var(--color-text-secondary);transition:color .15s}
.header-nav a:hover{color:var(--color-text-primary)}

/* Disclaimer */
.disclaimer-banner strong{font-weight:600}

/* Breadcrumb */
.breadcrumb a{transition:color .15s}
.breadcrumb .current{cursor:default}

/* Info Grid */
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px 24px}
.info-item{display:flex;flex-direction:column;gap:2px}
.info-item-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px}
.info-item-value{font-size:14px;color:var(--color-text-primary);word-break:break-word;min-width:0}
.info-item-value a{font-weight:500;transition:color .15s;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.info-item-value .value-full{white-space:normal;overflow:visible;text-overflow:clip}

/* Schedule */
.schedule-table{width:100%;border-collapse:collapse;font-size:14px}
.schedule-table th,.schedule-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border-light)}
.schedule-table th{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;background:var(--color-bg)}
.schedule-table tr:last-child td{border-bottom:none}
.schedule-table tr.today{background:var(--color-accent-light)}
.schedule-table tr.today td{font-weight:600}
.schedule-table .day-name{width:140px}
.schedule-table .day-hours{color:var(--color-text-secondary)}
.schedule-table .day-status{font-size:12px;padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-muted);white-space:nowrap}
.schedule-table tr.today .day-status{background:var(--color-accent);color:#fff}
.schedule-note{font-size:13px;color:var(--color-text-secondary);padding:10px 14px;background:var(--color-bg);border-radius:var(--radius-sm);margin-top:10px}

/* Phone List */
.phone-list{display:flex;flex-direction:column;gap:10px}
.phone-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--color-bg);border-radius:var(--radius-md);min-height:48px}
.phone-item-info{min-width:0}
.phone-item-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;display:block}
.phone-item-number{font-size:16px;font-weight:700;color:var(--color-text-primary);display:block;text-decoration:none;transition:color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.phone-item-ext,.phone-item-comment{font-size:12px;color:var(--color-text-muted);display:block;margin-top:2px}
.phone-item-comment{font-style:italic}
.phone-item-action .btn{padding:6px 14px;font-size:13px;min-height:36px;min-width:80px}

/* Vertical Sections */
.vertical-section{margin-bottom:var(--section-gap)}
.detail-list{display:flex;flex-direction:column;gap:12px}
.detail-item{display:flex;gap:12px}
.detail-item-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;width:160px;flex-shrink:0;padding-top:2px}
.detail-item-value{font-size:14px;color:var(--color-text-primary);flex:1}

/* Sources */
.source-list{display:flex;flex-direction:column;gap:12px}
.source-item{display:flex;gap:12px;padding:14px;background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border-light)}
.source-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:var(--radius-sm);flex-shrink:0;height:fit-content}
.source-badge--official{background:var(--color-success-bg);color:var(--color-source-official)}
.source-badge--catalog{background:#edf2f7;color:var(--color-source-catalog)}
.source-badge--unverified{background:var(--color-warning-bg);color:var(--color-source-unverified)}
.source-info{flex:1;min-width:0}
.source-name{font-weight:600;font-size:14px;margin:0 0 2px}
.source-description{font-size:13px;color:var(--color-text-secondary);margin:0 0 4px}
.source-meta{font-size:12px;color:var(--color-text-muted)}

/* Inline source icon */
.inline-source{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:700;cursor:help;margin-left:4px;vertical-align:middle}
.inline-source--official{background:var(--color-success-bg);color:var(--color-source-official)}
.inline-source--catalog{background:#edf2f7;color:var(--color-source-catalog)}
.inline-source--unverified{background:var(--color-warning-bg);color:var(--color-source-unverified)}

/* Error Form */
.error-form{display:flex;flex-direction:column;gap:14px}
.form-group{display:flex;flex-direction:column;gap:5px}
.form-label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}
.form-select,.form-input,.form-textarea{font-family:inherit;font-size:14px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);transition:border-color .15s;-webkit-appearance:none;appearance:none}
.form-select:focus,.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(49,130,206,.1)}
.form-textarea{min-height:80px;resize:vertical}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a6270' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}

/* Related Objects */
.related-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.related-item{display:block;padding:14px;background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border-light);transition:border-color .15s,box-shadow .15s}
.related-item:hover{border-color:var(--color-border);box-shadow:var(--shadow-sm);text-decoration:none}
.related-item-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--color-accent);margin-bottom:4px}
.related-item-name{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px;display:block}
.related-item-address{font-size:13px;color:var(--color-text-secondary);display:block}
.related-item-distance{font-size:12px;color:var(--color-text-muted);margin-top:6px;display:block}

/* History */
.history-list{display:flex;flex-direction:column;gap:0}
.history-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border-light)}
.history-item:last-child{border-bottom:none}
.history-date{font-size:12px;color:var(--color-text-muted);width:100px;flex-shrink:0;white-space:nowrap}
.history-text{font-size:14px;color:var(--color-text-secondary)}

/* Closed State */
.closed-overlay{background:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:var(--section-gap);display:flex;align-items:center;gap:16px}
.closed-overlay-icon{font-size:32px;flex-shrink:0}
.closed-overlay-title{font-size:18px;font-weight:800;color:var(--color-error);margin:0 0 4px}
.closed-overlay-text{font-size:14px;color:var(--color-text-secondary);margin:0}

/* Map */
.map-placeholder{background:#e8eaed;border-radius:var(--radius-md);height:180px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:13px;position:relative;overflow:hidden}
.map-placeholder::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#e8eaed 25%,#f0f1f3 25%,#f0f1f3 50%,#e8eaed 50%,#e8eaed 75%,#f0f1f3 75%);background-size:20px 20px;opacity:.5}
.map-placeholder span{position:relative;z-index:1}
.map-btn{margin-top:10px}

/* Official Links */
.official-link{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border-light)}
.official-link:last-child{border-bottom:none}
.official-link-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-accent-light);color:var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.official-link-text{min-width:0}
.official-link-label{font-size:13px;font-weight:600;color:var(--color-text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.official-link-url{font-size:12px;color:var(--color-text-muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Alert content */
.alert-icon{flex-shrink:0;font-size:18px;margin-top:1px}
.alert-content{flex:1}
.alert-title{font-weight:700;margin:0 0 4px}
.alert-text{margin:0;color:var(--color-text-secondary)}
.alert-text a{font-weight:500}

/* Conflict Block */
.conflict-list{margin-top:10px}
.conflict-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.conflict-item:last-child{border-bottom:none}
.conflict-field{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;width:120px;flex-shrink:0}
.conflict-values{flex:1}
.conflict-value{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.conflict-value:last-child{margin-bottom:0}
.conflict-value-source{font-size:12px;color:var(--color-text-muted)}
.conflict-value--chosen{font-weight:600}

/* Card footer */
.card-footer{padding:12px 22px;background:var(--color-bg);border-top:1px solid var(--color-border-light);font-size:13px;color:var(--color-text-muted)}

/* Utility text */
.text-muted{color:var(--color-text-muted)}
.text-secondary{color:var(--color-text-secondary)}
.text-success{color:var(--color-success)}
.text-warning{color:var(--color-warning)}
.text-error{color:var(--color-error)}

/* hCard microformat helpers */
.vcard .fn.org{font-weight:inherit}
.vcard .tel{font-size:inherit;color:inherit}
.vcard .email{color:var(--color-text-link)}
.vcard .street-address{font-size:inherit}
.vcard .type{font-size:inherit}

/* Demo Controls */
.demo-bar{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:12px 20px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;z-index:1000;box-shadow:0 -4px 16px rgba(0,0,0,.06)}
.demo-bar-label{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-right:8px}
.demo-bar select{font-family:inherit;font-size:13px;padding:6px 28px 6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer}
.demo-bar button{font-family:inherit;font-size:13px;padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all .15s;touch-action:manipulation;min-height:36px}
.demo-bar button:hover{background:var(--color-action-secondary-hover);color:var(--color-text-primary)}
.demo-bar button.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}
.demo-bar-spacer{height:64px}

/* Smooth transitions for JS state changes */
#obj-status-badge,#obj-verification,#sidebar-status,.alert{transition:all .2s ease}

/* Static preview diagnostics: visible without JavaScript. */
.alert{display:flex;gap:12px;padding:14px 18px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0 0 var(--section-gap);background:var(--color-bg)}
.alert--warning{background:var(--color-warning-bg);border-color:#f6c66d}.alert--error{background:var(--color-error-bg);border-color:#fc8181}.alert--info{background:var(--color-accent-light);border-color:#90cdf4}
.diagnostic-list,.missing-list{margin:8px 0 0;padding-left:20px}.diagnostic-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--color-text-muted)}
.missing-card{border-style:dashed}.missing-card .card-body{color:var(--color-text-secondary)}
.source-badge--forbidden{background:var(--color-error-bg);color:var(--color-error)}
.status-badge--partial,.status-badge--checking{background:var(--color-warning-bg);color:var(--color-warning)}
.status-badge--conflict,.status-badge--outdated{background:var(--color-error-bg);color:var(--color-error)}
.status-badge--closed{background:var(--color-error-bg);color:var(--color-error)}
.status-badge--unknown{background:var(--color-bg);color:var(--color-text-muted)}
.status-dot--partial,.status-dot--checking{background:var(--color-warning)}.status-dot--conflict,.status-dot--outdated,.status-dot--closed{background:var(--color-error)}.status-dot--unknown{background:var(--color-text-muted)}

/* ============================================
   TABLET (601–900px) — intermediate layout
   ============================================ */
@media (min-width:601px) and (max-width:900px){
.main-container{grid-template-columns:1fr 280px;gap:16px}
.sidebar-column{position:sticky;top:12px}
.object-name{font-size:24px}
.related-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.detail-item-label{width:140px}
}

/* ============================================
   MOBILE (≤600px) — single column, fixed actions
   ============================================ */
@media (max-width:600px){
.main-container{grid-template-columns:1fr;padding:0 16px 16px}
.sidebar-column{position:static;order:2}
.content-column{order:1}
.object-name{font-size:20px}
.object-header{padding:20px 18px 18px}
.actions-row{display:none}
.actions-row--mobile-fixed{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:10px 16px;gap:8px;z-index:999;box-shadow:0 -2px 8px rgba(0,0,0,.04)}
.actions-row--mobile-fixed .btn{flex:1;padding:12px 8px;font-size:13px;min-height:48px;min-width:80px}
.breadcrumb{padding:12px 16px;font-size:12px}
.card-header,.card-body,.card-body-compact,.card-footer{padding-left:18px;padding-right:18px}
.info-grid{grid-template-columns:1fr;gap:14px}
.related-list{grid-template-columns:1fr}
.phone-item{flex-direction:column;align-items:flex-start;gap:8px;min-height:auto}
.phone-item-action{width:100%}
.phone-item-action .btn{width:100%;min-height:44px}
.schedule-table th,.schedule-table td{padding:10px 10px}
.detail-item{flex-direction:column;gap:4px}
.detail-item-label{width:auto}
.conflict-item{flex-direction:column;gap:6px}
.conflict-field{width:auto}
.source-item{flex-direction:column;gap:8px}
.source-badge{align-self:flex-start}
.demo-bar{bottom:58px;padding:10px 12px}
.demo-bar button{padding:8px 12px;min-height:40px}
.demo-bar-spacer{height:120px}
.page-footer{padding:20px 16px}
.map-placeholder{height:160px}
}

/* ============================================
   SMALL MOBILE (≤360px) — extra compact
   ============================================ */
@media (max-width:360px){
.object-name{font-size:18px}
.object-header{padding:16px 14px 14px}
.card-header,.card-body,.card-body-compact{padding-left:14px;padding-right:14px}
.btn{padding:10px 14px;font-size:13px}
.btn--lg{padding:12px 18px}
.schedule-table{font-size:13px}
.day-name{width:100px}
}

/* ============================================
   TOUCH TARGETS & ACCESSIBILITY
   ============================================ */
@media (hover:none) and (pointer:coarse){
.btn,.phone-item-action .btn,.demo-bar button,.related-item,.official-link,.error-form button[type="submit"]{min-height:44px;min-width:44px}
.form-select,.form-input,.form-textarea{font-size:16px}
.phone-item-number{padding:4px 0}
.schedule-table td,.schedule-table th{padding:12px 14px}
}

/* Reduced motion preference */
@media (prefers-reduced-motion:reduce){
*,::before,::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* High contrast mode support */
@media (prefers-contrast:more){
.card,.object-header,.sidebar-widget{border-width:2px}
.btn{border-width:2px}
.schedule-table tr.today{background:#d4e9ff}
.status-badge--open{background:#d4edda}.status-badge--closed{background:#f8d7da}.status-badge--soon{background:#fff3cd}
}

/* ============================================
   VERTICAL THEMES — цветовая стилизация
   ============================================ */

/* МФЦ — стандартный синий (default) */
body.theme-mfc{--color-accent:#3182ce;--color-accent-light:#ebf4ff;--color-action-primary:#3182ce;--color-action-primary-hover:#2b6cb0}

/* МВД — полицейский тёмно-синий */
body.theme-mvd{--color-accent:#2c5282;--color-accent-light:#e6f0fa;--color-action-primary:#2c5282;--color-action-primary-hover:#1a365d}
body.theme-mvd .object-type{background:#e6f0fa;color:#2c5282}

/* ГИБДД — дорожный оранжевый */
body.theme-gibdd{--color-accent:#dd6b20;--color-accent-light:#fff5eb;--color-action-primary:#dd6b20;--color-action-primary-hover:#c05621}
body.theme-gibdd .object-type{background:#fff5eb;color:#c05621}
body.theme-gibdd .status-badge--open{background:#fff5eb;color:#c05621}
body.theme-gibdd .status-dot--open{background:#dd6b20;box-shadow:0 0 0 3px rgba(221,107,32,.2)}

/* ЗАГС — бордовый/свадебный */
body.theme-zags{--color-accent:#97266d;--color-accent-light:#fdf2f8;--color-action-primary:#97266d;--color-action-primary-hover:#702459}
body.theme-zags .object-type{background:#fdf2f8;color:#97266d}
body.theme-zags .status-badge--open{background:#fdf2f8;color:#97266d}
body.theme-zags .status-dot--open{background:#97266d;box-shadow:0 0 0 3px rgba(151,38,109,.2)}

/* ФНС — зелёный/финансовый */
body.theme-fns{--color-accent:#276749;--color-accent-light:#f0fff4;--color-action-primary:#276749;--color-action-primary-hover:#22543d}
body.theme-fns .object-type{background:#f0fff4;color:#276749}
body.theme-fns .status-badge--open{background:#f0fff4;color:#276749}
body.theme-fns .status-dot--open{background:#276749;box-shadow:0 0 0 3px rgba(39,103,73,.2)}

/* ФССП — стальной серый */
body.theme-fssp{--color-accent:#4a5568;--color-accent-light:#edf2f7;--color-action-primary:#4a5568;--color-action-primary-hover:#2d3748}
body.theme-fssp .object-type{background:#edf2f7;color:#4a5568}

/* Соцзащита / СФР — тёплый оранжевый (забота) */
body.theme-soc{--color-accent:#c05621;--color-accent-light:#fffaf0;--color-action-primary:#c05621;--color-action-primary-hover:#9c4221}
body.theme-soc .object-type{background:#fffaf0;color:#c05621}
body.theme-soc .status-badge--open{background:#fffaf0;color:#c05621}
body.theme-soc .status-dot--open{background:#c05621;box-shadow:0 0 0 3px rgba(192,86,33,.2)}

/* Центры занятости — фиолетовый */
body.theme-cz{--color-accent:#6b46c1;--color-accent-light:#f3e8ff;--color-action-primary:#6b46c1;--color-action-primary-hover:#553c9a}
body.theme-cz .object-type{background:#f3e8ff;color:#6b46c1}
body.theme-cz .status-badge--open{background:#f3e8ff;color:#6b46c1}
body.theme-cz .status-dot--open{background:#6b46c1;box-shadow:0 0 0 3px rgba(107,70,193,.2)}

/* Росреестр — земляной/коричневый */
body.theme-rosreestr{--color-accent:#744210;--color-accent-light:#fffaf0;--color-action-primary:#744210;--color-action-primary-hover:#55300b}
body.theme-rosreestr .object-type{background:#fffaf0;color:#744210}
body.theme-rosreestr .status-badge--open{background:#fffaf0;color:#744210}
body.theme-rosreestr .status-dot--open{background:#744210;box-shadow:0 0 0 3px rgba(116,66,16,.2)}

/* Образование — тёмно-синий/академический */
body.theme-edu{--color-accent:#2b6cb0;--color-accent-light:#ebf8ff;--color-action-primary:#2b6cb0;--color-action-primary-hover:#2c5282}
body.theme-edu .object-type{background:#ebf8ff;color:#2b6cb0}

/* Военкомат — хаки/оливковый */
body.theme-voen{--color-accent:#5c6b3a;--color-accent-light:#f7faf0;--color-action-primary:#5c6b3a;--color-action-primary-hover:#3f4d28}
body.theme-voen .object-type{background:#f7faf0;color:#5c6b3a}
body.theme-voen .status-badge--open{background:#f7faf0;color:#5c6b3a}
body.theme-voen .status-dot--open{background:#5c6b3a;box-shadow:0 0 0 3px rgba(92,107,58,.2)}

/* Нотариус — тёмно-бордовый */
body.theme-notary{--color-accent:#742a2a;--color-accent-light:#fff5f5;--color-action-primary:#742a2a;--color-action-primary-hover:#551c1c}
body.theme-notary .object-type{background:#fff5f5;color:#742a2a}
body.theme-notary .status-badge--open{background:#fff5f5;color:#742a2a}
body.theme-notary .status-dot--open{background:#742a2a;box-shadow:0 0 0 3px rgba(116,42,42,.2)}

/* Суд — тёмно-фиолетовый */
body.theme-court{--color-accent:#44337a;--color-accent-light:#f3e8ff;--color-action-primary:#44337a;--color-action-primary-hover:#322659}
body.theme-court .object-type{background:#f3e8ff;color:#44337a}
body.theme-court .status-badge--open{background:#f3e8ff;color:#44337a}
body.theme-court .status-dot--open{background:#44337a;box-shadow:0 0 0 3px rgba(68,51,122,.2)}

/* Organy opeki — бирюзовый/забота о детях */
body.theme-opeka{--color-accent:#0987a0;--color-accent-light:#e6fffa;--color-action-primary:#0987a0;--color-action-primary-hover:#086f83}
body.theme-opeka .object-type{background:#e6fffa;color:#0987a0}
body.theme-opeka .status-badge--open{background:#e6fffa;color:#0987a0}
body.theme-opeka .status-dot--open{background:#0987a0;box-shadow:0 0 0 3px rgba(9,135,160,.2)}

/* Theme transition */
body{transition:background-color .2s ease}
.object-type,.btn,.status-badge,.status-dot{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}

/* Smooth transitions for JS state changes */
#obj-status-badge,#obj-verification,#sidebar-status,.alert{transition:all .2s ease}
