/* Shared visual contract. Layout and module behaviour remain owned by their modules. */
html[data-ui430] :is(.module-card,.metric-grid>article,.clock-card,.settings-tile,.chart-card,.chart-panel){background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important}
html[data-ui430] .module-card{border-top:4px solid var(--design-primary)!important;padding:24px}
html[data-ui430] .module-card p,html[data-ui430] .metric-grid article span{color:var(--muted)!important}
html[data-ui430] .metric-grid article b{color:var(--ink)!important;font-size:2rem}
html[data-ui430] .metric-grid article i,html[data-ui430] .module-card i{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-soft)!important;color:var(--design-link)!important;border:1px solid var(--line);border-radius:50%;width:48px;height:48px}
html[data-ui430]{--surface:#fff;--surface-soft:#f5f8fb;--page:#edf2f6;--ink:#20354b;--muted:#53677c;--line:#d7e1eb;--shadow:0 5px 20px #20354b0b,0 1px 3px #20354b0a;--radius:18px;--space:24px;--success:#187944;--danger:#ad3037;--warning:#835705;--focus:#1764a6;color-scheme:light;background:var(--page)}
html[data-ui430][data-theme=dark]{--surface:#1c2735;--surface-soft:#243244;--page:#111923;--ink:#eef4fa;--muted:#b6c5d6;--line:#42566e;--shadow:0 6px 22px #0004;--success:#7be2a5;--danger:#ff9b9f;--warning:#f6ce79;--focus:#9acbff;color-scheme:dark}
html[data-density=compact]{--space:14px;--radius:13px}
html[data-ui430] body{background:var(--page)!important;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5;letter-spacing:.005em}
html[data-ui430] body::before,html[data-ui430] body::after{background:none!important;backdrop-filter:none!important;pointer-events:none}
html[data-ui430] :is(h1,h2,h3,h4){color:var(--ink);line-height:1.25;letter-spacing:-.02em}
html[data-ui430] h1{font-size:clamp(1.5rem,2.8vw,2rem)}html[data-ui430] h2{font-size:clamp(1.15rem,2.2vw,1.5rem)}
html[data-ui430] :is(.panel,.card,.form-card,.stat-card,.metric-card,.kpi-card,.pdv-panel,.pdv-block,.rp-card,.fv-card,.settings-card,.modal-content,.login-card,.diary-card,.public-card){background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important;backdrop-filter:none!important}
html[data-ui430] :is(.panel,.form-card,.pdv-panel,.rp-card,.diary-card){padding:var(--space);margin-bottom:20px}
html[data-ui430] :is(.panel-heading,.pdv-hero,.rp-heading,.fv-hero){background:var(--surface)!important;color:var(--ink)!important;border-radius:var(--radius);padding:20px;border:1px solid var(--line)}
html[data-ui430] :is(.pdv-hero,.fv-hero) :is(h1,p,span){color:var(--ink)!important}
html[data-ui430] :is(.work-calendar,.work-day,.work-repair,.pdv-block,fieldset){border-top:3px solid var(--design-accent,#177b70)!important;background:var(--surface-soft)!important}
html[data-ui430] fieldset{min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:12px 0}
html[data-ui430] legend{font-weight:700;padding:0 8px;color:var(--ink)}
html[data-ui430] :is(.muted,.help,.subtitle,.rp-muted,small){color:var(--muted)}
html[data-ui430] :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea){background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:10px!important;min-height:44px;max-width:100%;padding:10px 12px;box-sizing:border-box}
html[data-ui430] input::placeholder,html[data-ui430] textarea::placeholder{color:var(--muted);opacity:1}
html[data-ui430] label{color:var(--ink)}html[data-ui430] textarea{min-height:100px}
html[data-ui430] :is(button,.button,.btn,.rp-primary){border-radius:11px!important;min-height:42px;font-weight:600;box-shadow:none;max-width:100%;white-space:normal}
html[data-ui430] :is(button,.button,.btn):not(.primary):not(.danger):not(.rp-primary):not([data-outcome]):not([data-notification-toggle]):not([data-chat-toggle]){border:1px solid var(--line)}
html[data-ui430] :is(.primary,.btn-primary,.rp-primary,button[type=submit]){background:var(--design-primary,#ffdc00);color:var(--design-on-primary,#111);border:1px solid transparent}
html[data-ui430] :is(.danger,.btn-danger){color:var(--danger)!important;border:1px solid var(--danger)!important;background:var(--surface)!important}
html[data-ui430] :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus)!important;outline-offset:3px}
html[data-ui430] :is(.sidebar,.app-sidebar){background:var(--surface)!important;color:var(--ink)!important;border-right:1px solid var(--line);box-shadow:var(--shadow)}
html[data-ui430] .sidebar :is(a,span,small){color:var(--ink)!important}
html[data-ui430] .sidebar a{border-radius:12px;padding:12px;margin:3px 8px}
html[data-ui430] .sidebar a.active{background:var(--surface-soft)!important;border-left:4px solid var(--design-primary)!important;font-weight:700}
html[data-ui430] .sidebar :is(.brand,.sidebar-brand) img{width:min(100%,190px);height:auto;max-height:100px;object-fit:contain;padding:12px}
html[data-ui430] :is(.topbar,.app-header,header.top){background:var(--surface)!important;border-bottom:1px solid var(--line);color:var(--ink)}
html[data-ui430] .ui-icon{width:22px;height:22px;stroke-width:1.9;vertical-align:middle;flex-shrink:0}
html[data-ui430] :is(.sidebar i,.dashboard-card i){background:var(--surface-soft);border-radius:12px;padding:8px;color:var(--design-accent-ink,#176658)}
html[data-ui430] :is(.tabs,.pdv-tabs,.tab-bar,.button-row){gap:8px;flex-wrap:wrap}
html[data-ui430] .tabs{display:flex;align-items:center}
html[data-ui430] .btn:not(.primary):not(.danger){background:var(--surface)!important;color:var(--ink)!important}
html[data-ui430] .ui-preferences button,html[data-ui430] .website-actions button:not(.primary){background:var(--surface);color:var(--ink);border:1px solid var(--line)}
html[data-ui430] .website-actions a{display:inline-flex;align-items:center}
html[data-ui430] .website-actions{align-items:center}
html[data-ui430] .website-grid{align-items:start}
html[data-ui430] :is(.tabs,.pdv-tabs,.tab-bar) a{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line);border-radius:12px;padding:12px 16px}
html[data-ui430] :is(.tabs,.pdv-tabs,.tab-bar) a.active{border-bottom:4px solid var(--design-primary)!important;font-weight:700}
html[data-ui430] table{color:var(--ink);border-collapse:separate;border-spacing:0;width:100%}
html[data-ui430] :is(th,td){border-color:var(--line)!important;padding:11px 12px}
html[data-ui430] th{background:var(--surface-soft)!important;color:var(--ink)!important;font-weight:700}
html[data-ui430] tbody tr{background:var(--surface)}html[data-ui430] tbody tr:nth-child(even){background:var(--surface-soft)}
html[data-ui430] :is(.table-wrap,.table-responsive,.diary-table-wrap){overflow:auto;max-width:100%;border-radius:14px;border:1px solid var(--line)}
html[data-ui430] :is(.calendar,.work-grid,.shift-grid,.month-calendar){color:var(--ink)}
html[data-ui430] .work-grid a{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}
html[data-ui430] :is(.alert,.notice,.flash){border-radius:12px;border:1px solid var(--line);padding:14px;background:var(--surface-soft);color:var(--ink)}
html[data-ui430] :is(.alert.error,.flash.error,[role=alert]){border-left:4px solid var(--danger);color:var(--danger)}
html[data-ui430] a{color:var(--design-link,#1764a6)}html[data-theme=dark] a{color:var(--focus)}
html[data-theme=dark] :is(.rp-stop,.rp-summary article,.theme-preview,.fv-stat,.pdv-stat,.stat,.metric,.kpi,.modal,.popup,.drawer,.settings-tile){background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}
html[data-theme=dark] :is(.rp-steps button,.rp-stop-tools,.shift-cell,.monthly-work-cell){background:var(--surface-soft)!important;color:var(--ink)!important}
html[data-theme=dark] .rp-agenda-travel{background:var(--surface-soft)!important;color:var(--muted)!important}
html[data-ui430] .app>header{background:var(--surface)!important;color:var(--ink);border-bottom:1px solid var(--line)}
html[data-ui430] .sidebar{border-top:5px solid var(--design-sidebar)!important}
html[data-ui430] .daily,html[data-ui430] .public-shell{background:var(--surface);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}
html[data-theme=dark] :is(.stat-card,.kpi-card,.metric-card) :is(strong,span,p){color:var(--ink)}
.ui-preferences{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.ui-preferences select{width:auto;max-width:160px!important}.ui-theme-control{display:flex;gap:10px;flex-wrap:wrap}.ui-theme-control input[type=text]{width:120px}
html[data-ui430] .website-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:20px}.website-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.website-editor label{display:block;margin:12px 0}.website-editor input:not([type=checkbox]),.website-editor textarea,.website-editor select{width:100%}.website-editor img{max-width:100%;max-height:180px;object-fit:contain}.website-preview{width:100%;height:600px;border:1px solid var(--line);border-radius:14px}.website-preview.mobile{max-width:390px}
@media(max-width:700px){html[data-ui430]{--space:16px;--radius:15px}html[data-ui430] :is(.content,.main-content,main){min-width:0;max-width:100%;box-sizing:border-box}html[data-ui430] :is(.panel,.pdv-panel,.rp-card){margin-bottom:14px}html[data-ui430] :is(button,.button,.btn){min-height:44px}html[data-ui430] :is(.modal,.modal-content){max-width:calc(100vw - 24px)!important}.ui-preferences{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){html[data-ui430] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{html[data-ui430]{--surface:#fff;--surface-soft:#fff;--page:#fff;--ink:#111;--muted:#444;--line:#ccc;--shadow:none}.ui-preferences{display:none!important}}
