/* Homepage refresh — Swiss flat admin surface. Scope only to non-control pages. */
body:not(:has(.control-page-root)) { background:#f6f8fa !important; color:#1f2937 !important; overflow:auto !important; }
body:not(:has(.control-page-root)) #root { min-height:100vh !important; background:#f6f8fa !important; }
body:not(:has(.control-page-root)) .ant-layout,
body:not(:has(.control-page-root)) .ant-layout-sider,
body:not(:has(.control-page-root)) .ant-layout-header,
body:not(:has(.control-page-root)) .ant-layout-content { background:#fff !important; box-shadow:none !important; }
body:not(:has(.control-page-root)) .ant-layout { min-height:100vh !important; }
body:not(:has(.control-page-root)) .ant-layout-sider { border-right:1px solid #e5e7eb !important; }
body:not(:has(.control-page-root)) .ant-layout-sider-children { padding:18px 12px !important; }
body:not(:has(.control-page-root)) .ant-menu { background:#fff !important; border-inline-end:0 !important; }
body:not(:has(.control-page-root)) .ant-menu-item,
body:not(:has(.control-page-root)) .ant-menu-submenu-title { height:38px !important; line-height:38px !important; margin:3px 0 !important; border-radius:6px !important; color:#64748b !important; font-size:13px !important; }
body:not(:has(.control-page-root)) .ant-menu-item-selected { background:#f0fdf4 !important; color:#16803c !important; font-weight:600 !important; }
body:not(:has(.control-page-root)) .ant-menu-item::after { display:none !important; }
body:not(:has(.control-page-root)) .ant-menu-item:hover,
body:not(:has(.control-page-root)) .ant-menu-submenu-title:hover { background:#f8fafc !important; color:#1f2937 !important; }
body:not(:has(.control-page-root)) .ant-layout-header { height:64px !important; line-height:64px !important; border-bottom:1px solid #e5e7eb !important; padding:0 28px !important; }
body:not(:has(.control-page-root)) .ant-layout-content { padding:28px !important; background:#f6f8fa !important; }
body:not(:has(.control-page-root)) .ant-card { border:1px solid #e5e7eb !important; border-radius:8px !important; box-shadow:none !important; background:#fff !important; }
body:not(:has(.control-page-root)) .ant-card-head { min-height:46px !important; border-bottom:1px solid #eef0f2 !important; padding:0 18px !important; }
body:not(:has(.control-page-root)) .ant-card-head-title { color:#1f2937 !important; font-size:14px !important; font-weight:600 !important; }
body:not(:has(.control-page-root)) .ant-card-body { padding:18px !important; }
body:not(:has(.control-page-root)) .ant-btn { border-radius:6px !important; box-shadow:none !important; font-size:13px !important; }
body:not(:has(.control-page-root)) .ant-btn-primary { background:#2db368 !important; border-color:#2db368 !important; }
body:not(:has(.control-page-root)) .ant-btn-primary:hover { background:#259b59 !important; border-color:#259b59 !important; }
body:not(:has(.control-page-root)) .ant-input,
body:not(:has(.control-page-root)) .ant-input-affix-wrapper,
body:not(:has(.control-page-root)) .ant-select-selector { border-radius:6px !important; border-color:#dfe3e8 !important; box-shadow:none !important; }
body:not(:has(.control-page-root)) .ant-table { background:#fff !important; }
body:not(:has(.control-page-root)) .ant-table-thead > tr > th { background:#fafbfc !important; color:#64748b !important; font-size:12px !important; font-weight:600 !important; border-bottom:1px solid #e5e7eb !important; }
body:not(:has(.control-page-root)) .ant-table-tbody > tr > td { border-bottom:1px solid #f0f2f4 !important; font-size:13px !important; }
body:not(:has(.control-page-root)) .ant-table-tbody > tr:hover > td { background:#fbfdfc !important; }
body:not(:has(.control-page-root)) .ant-statistic { padding:4px 0 !important; }
body:not(:has(.control-page-root)) .ant-statistic-title { color:#64748b !important; font-size:12px !important; }
body:not(:has(.control-page-root)) .ant-statistic-content { color:#1f2937 !important; font-size:24px !important; font-weight:600 !important; }
body:not(:has(.control-page-root)) .ant-tag { border-radius:4px !important; font-size:11px !important; }
body:not(:has(.control-page-root)) .ant-modal-content { border-radius:8px !important; box-shadow:0 12px 36px rgba(15,23,42,.14) !important; }
body:not(:has(.control-page-root)) .ant-modal-header { border-bottom:1px solid #eef0f2 !important; }
/* flatten app-specific decorative surfaces */
body:not(:has(.control-page-root)) [style*="linear-gradient"],
body:not(:has(.control-page-root)) [style*="radial-gradient"] { background-image:none !important; }
body:not(:has(.control-page-root)) [style*="box-shadow"] { box-shadow:none !important; }
/* compact device rows */
body:not(:has(.control-page-root)) .ant-table-wrapper { width:100% !important; }
body:not(:has(.control-page-root)) .ant-layout-sider-trigger { background:#fff !important; border-top:1px solid #e5e7eb !important; color:#64748b !important; }
/* Homepage component tuning */
body:not(:has(.control-page-root)) .ant-layout-sider .ant-typography,
body:not(:has(.control-page-root)) .ant-layout-header .ant-typography { color:#1f2937 !important; }
body:not(:has(.control-page-root)) .ant-layout-content > * { max-width:none !important; }
body:not(:has(.control-page-root)) .ant-row { row-gap:16px !important; }
body:not(:has(.control-page-root)) .ant-form-item-label > label { color:#475569 !important; font-size:12px !important; }
body:not(:has(.control-page-root)) .ant-switch-checked { background:#2db368 !important; }
/* force flat homepage shell on runtime-root pages */
html.home-flat-layout body { background:#f6f8fa !important; }
html.home-flat-layout #root { background:#f6f8fa !important; }
html.home-flat-layout .ant-layout-sider { background:#ffffff !important; border-right:1px solid #e5e7eb !important; }
html.home-flat-layout .ant-layout-sider-children { background:#ffffff !important; }
html.home-flat-layout .ant-layout-sider .ant-menu { background:#ffffff !important; }
html.home-flat-layout .ant-layout-header { background:#ffffff !important; }
html.home-flat-layout .ant-layout-content { background:#f6f8fa !important; }
html.home-flat-layout .ant-menu-item,html.home-flat-layout .ant-menu-submenu-title { color:#64748b !important; }
html.home-flat-layout .ant-menu-item-selected { background:#f0fdf4 !important; color:#16803c !important; }
html.home-flat-layout .ant-card { background:#ffffff !important; border-color:#e5e7eb !important; }
html.home-flat-layout .ant-card-head { background:#ffffff !important; }
/* inline-theme neutralization */
html.home-flat-layout .ant-layout,
html.home-flat-layout .ant-layout-sider,
html.home-flat-layout .ant-layout-sider *:not(.anticon),
html.home-flat-layout .ant-layout-header,
html.home-flat-layout .ant-layout-content,
html.home-flat-layout .ant-menu,
html.home-flat-layout .ant-menu-sub,
html.home-flat-layout .ant-menu-item,
html.home-flat-layout .ant-menu-submenu-title { background:#fff !important; background-image:none !important; }
html.home-flat-layout .ant-layout-content { background:#f6f8fa !important; }
html.home-flat-layout .ant-layout-sider { width:200px !important; min-width:200px !important; max-width:200px !important; }
html.home-flat-layout .ant-layout-sider .ant-menu-item-selected { background:#f0fdf4 !important; color:#16803c !important; }
html.home-flat-layout .ant-layout-sider .ant-menu-item-selected * { color:#16803c !important; }
html.home-flat-layout .ant-layout-sider .ant-menu-item,
html.home-flat-layout .ant-layout-sider .ant-menu-submenu-title { border-radius:6px !important; margin:3px 10px !important; width:calc(100% - 20px) !important; }

/* homepage-flat-v4 independent surfaces */
.home-flat-overlay{width:100%;min-height:calc(100vh - 120px);box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;color:#1f2937}
.home-flat-page-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e5e7eb;background:#fff}
.home-flat-kicker{font-size:11px;color:#64748b;margin-bottom:4px}
.home-flat-page-head h1{margin:0;font-size:20px;line-height:1.3;font-weight:600;color:#111827}
.home-flat-page-body{padding:18px 22px;background:#fff}
.home-flat-status{min-height:20px;margin-bottom:14px;color:#64748b;font-size:12px}
.home-flat-status.is-error{color:#b42318}
.home-flat-page-content{display:flex;flex-direction:column;gap:16px}
.home-flat-toolbar{display:flex;justify-content:space-between;align-items:center;color:#475569;font-size:13px;padding-bottom:8px}
.home-flat-table-wrap{overflow:auto;border:1px solid #e5e7eb;border-radius:6px}
.home-flat-table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}
.home-flat-table th{padding:10px 12px;text-align:left;white-space:nowrap;background:#f8fafc;color:#64748b;font-weight:600;border-bottom:1px solid #e5e7eb}
.home-flat-table td{padding:10px 12px;border-bottom:1px solid #eef0f2;color:#334155;vertical-align:middle}
.home-flat-table tr:last-child td{border-bottom:0}
.home-flat-table tr:hover td{background:#fbfdfc}
.home-flat-ellipsis{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-flat-empty{text-align:center;color:#94a3b8;padding:28px !important}
.home-flat-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.home-flat-actions .ant-btn{height:28px;padding:0 9px}
.home-flat-status-dot{display:inline-flex;align-items:center;gap:5px;color:#18794e;font-size:12px}
.home-flat-status-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:#2db368}
.home-flat-policy-section{border:1px solid #e5e7eb;border-radius:6px;background:#fff;overflow:hidden}
.home-flat-section-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eef0f2;background:#fff}
.home-flat-section-head h2{margin:0;font-size:15px;font-weight:600;color:#1f2937}
.home-flat-section-content{padding:14px 16px;overflow:auto}
.home-flat-inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.home-flat-input{height:32px;min-width:150px;box-sizing:border-box;padding:0 10px;border:1px solid #dfe3e8;border-radius:6px;background:#fff;color:#1f2937;font-size:13px;outline:none}
.home-flat-input:focus{border-color:#2db368;box-shadow:0 0 0 2px rgba(45,179,104,.12)}
.home-flat-grow{flex:1;min-width:220px}
.home-flat-upload{margin:0 0 16px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:6px;background:#fff}
.home-flat-upload-title{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:10px}
.home-flat-upload-status{min-height:18px;color:#64748b;font-size:12px;margin-top:8px}
.home-flat-share-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center}
.home-flat-share-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.28)}
.home-flat-share-dialog{position:relative;width:min(420px,calc(100vw - 36px));background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 12px 36px rgba(15,23,42,.14);overflow:hidden}
.home-flat-share-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #eef0f2;color:#1f2937}
.home-flat-share-close{border:0;background:transparent;color:#64748b;cursor:pointer;font-size:13px}
.home-flat-share-body{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px}
.home-flat-share-file{width:100%;font-size:13px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.home-flat-qr{width:220px;height:220px;object-fit:contain;border:1px solid #eef0f2}
.home-flat-share-url{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#f8fafc;color:#475569;font-size:12px;word-break:break-all}
.home-flat-share-actions{display:flex;gap:8px}
.home-flat-custom-menu .home-flat-menu-icon{display:inline-flex;width:18px;margin-inline-end:10px}
.home-flat-custom-menu .home-flat-menu-icon:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#94a3b8}
.home-flat-custom-menu.ant-menu-item-selected .home-flat-menu-icon:before{background:#2db368}
@media (max-width:900px){
  body:not(:has(.control-page-root)) .ant-layout-content{padding:16px !important}
  .home-flat-page-head,.home-flat-page-body{padding-left:14px;padding-right:14px}
  .home-flat-table{min-width:760px}
}
