/* Material and motion share the existing monochrome palette. No side accent strokes. */
:root{--motion-press:90ms;--motion-fast:130ms;--motion-state:180ms;--motion-panel:240ms;--motion-page:280ms;--motion-exit:110ms;--motion-ease:cubic-bezier(.2,.8,.2,1);--elevation-1:0 3px 10px #080b0d20,inset 0 1px 0 #edf2f309;--elevation-2:0 12px 30px #070a0d32,inset 0 1px 0 #edf2f30b;--elevation-3:0 24px 64px #05080b70,inset 0 1px 0 #edf2f313}
body,.main-shell{background-color:var(--bg)}
.main-shell{background-image:radial-gradient(ellipse at 45% 0,#c7d1db05,transparent 50%)}
.sidebar{box-shadow:8px 0 32px #080b0d16}.topbar{position:relative;box-shadow:0 4px 18px #080b0d16,inset 0 -1px 0 #edf2f306}
.registry{box-shadow:var(--elevation-2);background:linear-gradient(150deg,#edf2f304,transparent 45%),var(--paper)}
.registry .table-area{background:transparent}.registry .detail{background:linear-gradient(150deg,#edf2f305,transparent 42%),#24292a;box-shadow:-12px 0 28px #080b0d25}
.metric-card,.dashboard-panel,.panel{background-image:linear-gradient(145deg,#edf2f305,transparent 48%);box-shadow:var(--elevation-1)}
.dashboard-quick>button,.offer-box,.site-browser,.live-preview-surface{box-shadow:var(--elevation-1)}
.message-paper{box-shadow:0 14px 34px #080b0d38,inset 0 1px 0 #edf2f30b}
.select-popup,dialog{box-shadow:var(--elevation-3);background-image:linear-gradient(145deg,#edf2f307,transparent 45%)}
.btn,.icon-btn,.select-trigger,.nav-item,.tab,.period-button,.token,.stage-summary,.followup-item,.dashboard-quick>button{transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-state) var(--motion-ease),transform var(--motion-fast) var(--motion-ease);touch-action:manipulation}
.btn{position:relative;box-shadow:inset 0 1px 0 #edf2f30c,0 2px 4px #080b0d18}
.icon-btn{width:44px;height:44px;min-width:44px;min-height:44px}.btn.small{min-height:44px}
.btn.primary{background-image:linear-gradient(#edf2f30b,#edf2f300);box-shadow:inset 0 1px 0 #edf2f327,0 4px 12px #080b0d30}
.btn.ghost{box-shadow:none;background-image:none}
.btn:active:not(:disabled),.select-trigger:active:not(:disabled){transform:translateY(1px) scale(.99);transition-duration:var(--motion-press)}
.icon-btn:active:not(:disabled),.token:active:not(:disabled){transform:scale(.94);transition-duration:var(--motion-press)}
.tab:active,.period-button:active{transform:scale(.985);transition-duration:var(--motion-press)}
.btn.danger:active{transform:none}
.btn.ghost:active{transform:none}
.btn:disabled,.icon-btn:disabled,.select-trigger:disabled{transform:none;box-shadow:none;cursor:not-allowed}
.btn[aria-busy=true]{cursor:progress}.btn[aria-busy=true]>svg{opacity:.35}.btn[aria-busy=true]:before{position:absolute;right:7px;top:7px;width:8px;height:8px;margin:0;pointer-events:none}
.client-table tbody tr{transition:background-color var(--motion-fast) var(--motion-ease)}
.client-table tbody tr.selected{background-image:linear-gradient(90deg,#edf2f303,transparent 75%)}
.select-popup{transform-origin:top center}.select-popup[data-origin=above]{transform-origin:bottom center}
.disclosure-content{min-width:0;display:flow-root}.card-disclosure>summary,.dashboard-details>summary{transition:color var(--motion-fast) var(--motion-ease)}
input:not([type=checkbox]),select,textarea{transition:border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease);box-shadow:inset 0 2px 4px #080b0d18}
input:not([type=checkbox]):focus,textarea:focus{box-shadow:inset 0 2px 4px #080b0d12,0 0 0 3px #c7ced215}
dialog::backdrop{background:#080b0dc4;backdrop-filter:none;animation:backdrop-enter var(--motion-panel) var(--motion-ease)}
dialog[data-closing=true]::backdrop{animation:backdrop-exit var(--motion-exit) ease-in forwards}
dialog[data-closing=true] #modal-content{pointer-events:none}
.unsaved-notice{margin-bottom:var(--space-lg)}.unsaved-notice strong{font-size:17px}.unsaved-notice p{margin:var(--space-xs) 0 var(--space-md)}.unsaved-notice .actions{flex-wrap:wrap;gap:var(--action-gap)}
#toast{background:linear-gradient(#edf2f308,transparent),#303638;color:var(--ink);box-shadow:var(--elevation-3)}
#toast[data-tone=error]{color:var(--red)}
.request-progress{position:absolute;inset:auto 0 0;height:2px;overflow:hidden;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--motion-ease);background:#c7ced20c}
.request-progress.active{opacity:1}.request-progress:after{content:'';display:block;height:100%;width:25%;background:var(--secondary);animation:request-travel 1.1s ease-in-out infinite;animation-play-state:paused}.request-progress.active:after{animation-play-state:running}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}@keyframes backdrop-exit{to{opacity:0}}@keyframes request-travel{from{transform:translateX(-100%)}to{transform:translateX(500%)}}
@media(hover:hover) and (pointer:fine){
 .btn:not(.ghost):not(.danger):not(:disabled):hover{box-shadow:inset 0 1px 0 #edf2f319,0 4px 12px #080b0d30}
 .btn.primary:not(:disabled):hover,.btn.green:not(:disabled):hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 #edf2f324,0 7px 18px #080b0d40}
 .btn:not(.ghost):not(.danger):not(:disabled):active{transform:translateY(1px) scale(.99)}
 .dashboard-quick>button:hover{transform:translateY(-2px);box-shadow:var(--elevation-2)}
 .icon-btn:hover,.select-trigger:hover{box-shadow:inset 0 1px 0 #edf2f30d}
 .column-sort:hover .sort-indicator{transform:translateY(-1px)}
}
.sort-indicator{transition:opacity var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}
@media(max-width:1220px){.registry .detail{box-shadow:-20px 0 54px #05080b66}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .btn:hover,.btn:active,.icon-btn:hover,.icon-btn:active,.select-trigger:hover,.select-trigger:active,.tab:active,.period-button:active,.dashboard-quick>button:hover,.column-sort:hover .sort-indicator{transform:none!important}
 .request-progress:after{animation:none;transform:none;width:100%;opacity:.45}
}
