/* Threepaws shared UI contract. No viewport scaling, external fonts or raster controls. */
:root {
 color-scheme:light;
 --font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --font-size-base:1rem;--font-small:.875rem;--font-body:1rem;--font-label:.875rem;--font-button:.9375rem;--font-table:.9375rem;
 --font-h1:clamp(1.5rem,1.25rem + .4vw,2rem);--font-h2:1.25rem;--font-h3:1.125rem;
 --line-height:1.5;--line-heading:1.2;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
 --bg:#f3f5f9;--surface:#ffffff;--surface-raised:#ffffff;--surface-hover:#eaf0f8;--surface-active:#dce9ff;
 --text:#192638;--text-muted:#526175;--text-disabled:#64748b;--border:#cbd4df;--border-strong:#79899e;
 --accent:#205ac7;--accent-hover:#16469f;--on-accent:#fff;--danger:#b42332;--warning:#855000;--success:#167047;--info:#1c60ab;
 --danger-surface:#fff0f0;--warning-surface:#fff5df;--success-surface:#edf9f1;--focus:#205ac7;
 --radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.875rem;
 --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;
 --control-height:2.75rem;--header-height:4.5rem;--control-pad:.625rem;--cell-pad:.75rem;--panel-pad:1.25rem;
 --shadow-sm:0 1px 3px #14263c0d;--shadow-md:0 8px 24px #14263c20;
 /* Compatibility aliases for existing plugin markup. */
 --surface-2:var(--surface-hover);--muted:var(--text-muted);--hover:var(--surface-hover);--important:var(--warning-surface);--important-hover:var(--surface-active);
}
:root[data-theme="dark"] {
 color-scheme:dark;--bg:#111820;--surface:#19232f;--surface-raised:#202d3b;--surface-hover:#27374a;--surface-active:#213f65;
 --text:#e8eef6;--text-muted:#aebed1;--text-disabled:#92a3b8;--border:#3e5066;--border-strong:#8194ab;
 --accent:#8ab7ff;--accent-hover:#aecfff;--on-accent:#122138;--danger:#ff9ca5;--warning:#f1c56d;--success:#75d6a1;--info:#97caff;
 --danger-surface:#3c242d;--warning-surface:#342e22;--success-surface:#1c342e;--focus:#a7caff;
 --shadow-sm:0 1px 3px #0003;--shadow-md:0 8px 24px #0005;
}
@media(prefers-color-scheme:dark){:root[data-theme="system"]{
 color-scheme:dark;--bg:#111820;--surface:#19232f;--surface-raised:#202d3b;--surface-hover:#27374a;--surface-active:#213f65;
 --text:#e8eef6;--text-muted:#aebed1;--text-disabled:#92a3b8;--border:#3e5066;--border-strong:#8194ab;
 --accent:#8ab7ff;--accent-hover:#aecfff;--on-accent:#122138;--danger:#ff9ca5;--warning:#f1c56d;--success:#75d6a1;--info:#97caff;
 --danger-surface:#3c242d;--warning-surface:#342e22;--success-surface:#1c342e;--focus:#a7caff;
 --shadow-sm:0 1px 3px #0003;--shadow-md:0 8px 24px #0005;
}}
html{font-size:100%;background:var(--bg)}html[data-text-size="large"]{font-size:112.5%}
html[data-density="compact"]{--control-height:2.25rem;--control-pad:.375rem;--cell-pad:.4375rem;--panel-pad:.875rem}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:var(--weight-normal) var(--font-body)/var(--line-height) var(--font-family)}
[hidden]{display:none!important}h1,h2,h3,h4{line-height:var(--line-heading);font-weight:var(--weight-bold);overflow-wrap:anywhere;margin:0 0 var(--space-4)}
h1{font-size:var(--font-h1)}h2{font-size:var(--font-h2)}h3,h4{font-size:var(--font-h3)}p{margin:0 0 var(--space-4)}small,.ui-muted{font-size:var(--font-small);color:var(--text-muted)}
a{color:var(--accent);text-underline-offset:.2em;overflow-wrap:anywhere}a:hover{color:var(--accent-hover)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}
button,.ui-button,.home-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--control-pad) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:var(--font-button);font-weight:var(--weight-semibold);line-height:1.35;text-decoration:none;cursor:pointer;max-width:100%;overflow-wrap:anywhere}
button:hover,.ui-button:hover,.home-button:hover{background:var(--surface-hover);color:var(--text)}button:active,.ui-button:active{background:var(--surface-active)}
.ui-primary,button[type="submit"]:not(.ui-danger):not(.danger){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.ui-primary:hover,button[type="submit"]:not(.ui-danger):not(.danger):hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}
.ui-danger,.danger{color:var(--danger);border-color:var(--danger);background:var(--danger-surface)}
button:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled="true"]{color:var(--text-disabled);background:var(--surface-hover);cursor:not-allowed;border-color:var(--border);opacity:.8}
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:var(--control-height);width:100%;min-width:0;padding:var(--control-pad) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:var(--font-body);line-height:1.4}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}textarea{resize:vertical;min-height:6rem}input[type="color"]{padding:var(--space-1)!important}input[type="checkbox"],input[type="radio"]{accent-color:var(--accent);width:1.125rem;height:1.125rem;vertical-align:middle;margin:0 var(--space-2) 0 0;flex-shrink:0}
label{font-size:var(--font-label);font-weight:var(--weight-medium)}fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-4);min-width:0}legend{font-weight:var(--weight-semibold)}
.ui-field,.form-grid label,.edit-grid label,.builder-form label{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.ui-form,.form-grid,.edit-grid,.builder-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:var(--space-4)}
.ui-stack>*+*{margin-top:var(--space-4)}.ui-full,.full,.edit-full{grid-column:1/-1}.ui-grow{flex:1;min-width:0}
.ui-card,.ui-panel,.panel,.lift-section,.lift-header,.builder-form{padding:var(--panel-pad);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}
.ui-toolbar,.lifts-toolbar,.row-actions,.actions,.lift-meta,.lifts-stats{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.ui-badge,.lift-badge,.lifts-stat{display:inline-flex;gap:var(--space-1);align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--font-small);font-weight:var(--weight-medium);border-radius:var(--radius-sm);background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}
.ui-empty,.ui-error,.ui-loading{padding:var(--space-6);border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-muted);text-align:center}.ui-error{background:var(--danger-surface);color:var(--danger)}
.ui-loading::before{content:"";display:inline-block;width:1rem;height:1rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin-right:var(--space-2);animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{rotate:360deg}}
.ui-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);border-bottom:1px solid var(--border);padding-bottom:var(--space-2)}.ui-tabs [aria-current="page"],.ui-tabs [aria-selected="true"]{color:var(--accent);background:var(--surface-active);border-color:var(--accent)}
.ui-dropdown{position:relative}.ui-dropdown>summary{list-style:none}.ui-dropdown>summary::-webkit-details-marker{display:none}.ui-dropdown-panel{position:absolute;right:0;top:calc(100% + var(--space-2));width:min(23rem,calc(100vw - 2rem));max-height:75vh;overflow:auto;z-index:30;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-4)}
.ui-dialog{width:min(36rem,calc(100% - 2rem));max-height:85vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);color:var(--text);padding:var(--space-5);box-shadow:var(--shadow-md)}.ui-dialog::backdrop{background:#0008}
.ui-tooltip-wrap{position:relative;display:inline-flex}.ui-tooltip{display:none;position:absolute;bottom:calc(100% + .5rem);left:0;padding:.5rem .75rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);width:max-content;max-width:18rem;font-size:var(--font-small);z-index:40}.ui-tooltip-wrap:hover .ui-tooltip,.ui-tooltip-wrap:focus-within .ui-tooltip{display:block}
.ui-table-shell,.lifts-table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);max-height:75vh}table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-table)}th,td{padding:var(--cell-pad) var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}thead th{position:sticky;top:0;z-index:2;background:var(--surface-hover);font-weight:var(--weight-semibold)}tbody tr:hover{background:var(--surface-hover)}
.ui-icon{width:1.25rem;height:1.25rem;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ui-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.ui-skip{position:fixed;left:1rem;top:-5rem;z-index:100;background:var(--surface);padding:1rem}.ui-skip:focus{top:1rem}
.app-header{display:flex;align-items:center;gap:var(--space-4);min-height:var(--header-height);padding:var(--space-3) clamp(1rem,1.5vw,3rem);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}
.app-brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text);font-weight:var(--weight-bold);text-decoration:none;min-height:var(--control-height)}.app-brand .ui-icon{color:var(--accent)}
.app-nav{display:flex;flex:1;flex-wrap:wrap;gap:var(--space-1);align-items:center;min-width:0}.app-nav a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--control-pad) var(--space-3);color:var(--text-muted);font-size:var(--font-button);font-weight:var(--weight-medium);text-decoration:none;border-radius:var(--radius-sm)}.app-nav a:hover{background:var(--surface-hover);color:var(--text)}.app-nav a[aria-current="page"]{background:var(--surface-active);color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
.app-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.app-main{padding:clamp(1rem,1.5vw,3rem);min-width:0;width:100%}.app-main>section+section{margin-top:var(--space-6)}
summary{cursor:pointer;padding:var(--space-3);font-weight:var(--weight-semibold);overflow-wrap:anywhere}details{min-width:0}details[open]>summary{margin-bottom:var(--space-2)}
.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-4);align-items:start}.home-button{min-height:4rem;justify-content:flex-start;box-shadow:var(--shadow-sm)}.home-button.dragging,.saved-row.dragging{opacity:.45}.custom-home-button{max-width:100%!important}.recording-capable .old-call{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem}.old-call svg{width:2rem;height:2rem;fill:currentColor}.old-call .wave{display:none}.is-recording,.recording-active{outline:2px solid var(--danger);outline-offset:2px}
.login-wrap{width:min(100%,28rem);margin:clamp(2rem,8vh,6rem) auto}.login-wrap form{display:grid;gap:var(--space-4)}.login-wrap label{display:grid;gap:var(--space-2)}.login-error{margin-top:var(--space-4);color:var(--danger)}
.lifts-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.lifts-title{margin-bottom:var(--space-2)}.lifts-subtitle{color:var(--text-muted);font-size:var(--font-small)}.lifts-toolbar{padding:var(--panel-pad);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.lifts-toolbar input[type="search"]{flex:1 1 18rem;width:auto}.lifts-columns{margin-bottom:var(--space-4)}.lifts-columns-box{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);padding:var(--space-3)}.lifts-columns-box label{display:flex;align-items:center;min-height:2rem}
#lifts-table th,#lifts-table td{white-space:nowrap}#lifts-table th button{padding:0;min-height:1.75rem;background:transparent;border:0;font:inherit;color:inherit;justify-content:flex-start}#lifts-table tbody tr{cursor:pointer}.sort-marker{margin-left:var(--space-1)}.hidden-column{display:none}.lift-important td,.lift-important{background:var(--warning-surface)}.lift-important-mark{margin-left:var(--space-1)}.lifts-empty{text-align:center;color:var(--text-muted);padding:var(--space-6)}
.lift-card-page{width:100%}.lift-back{display:inline-block;margin-bottom:var(--space-4)}.lift-header,.lift-important{margin-bottom:var(--space-4)}.lift-important{padding:var(--panel-pad);border:1px solid var(--warning);border-radius:var(--radius-md)}.lift-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));gap:var(--space-4)}.lift-data{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);margin:0}.lift-data dt,.lift-data dd{padding:var(--cell-pad) 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.lift-data dt{color:var(--text-muted);padding-right:var(--space-3)}.lift-data dd{margin:0}.lift-notes{grid-column:1/-1}.lift-notes p,.lift-important p{white-space:pre-wrap}
.builder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-5)}.preview{display:flex;align-items:center;justify-content:center;min-height:6rem;margin-bottom:var(--space-4);overflow:auto}#preview-button{display:inline-flex;align-items:center;justify-content:center;max-width:100%;overflow-wrap:anywhere}.saved{display:grid;gap:var(--space-3)}.saved-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm)}.saved-row small{display:block;overflow-wrap:anywhere}.saved-row .row-actions{margin-left:auto}.edit-box{display:none;margin-top:var(--space-3)}.edit-box.open{display:block}.edit-grid{margin-top:var(--space-3)}.actions{margin-top:var(--space-4)}.drag-handle{cursor:grab}.builder-form{margin:var(--space-3) 0}.builder-section{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--panel-pad);margin-bottom:var(--space-4)}.builder-block{border-top:1px solid var(--border);padding-top:var(--space-4);margin-top:var(--space-4)}.builder-component{margin-bottom:var(--space-3)}.builder-text{white-space:pre-wrap;overflow-wrap:anywhere}
.notify-wrap{position:relative}.notify-bell{position:relative;padding:var(--space-2);min-width:var(--control-height)}.notify-badge{position:absolute;right:-.25rem;top:-.25rem;min-width:1.125rem;min-height:1.125rem;padding:0 .25rem;border-radius:1rem;background:var(--danger);color:var(--surface);font-size:.75rem;font-weight:700}.notify-panel{display:none;position:absolute;right:0;top:calc(100% + .5rem);width:min(25rem,calc(100vw - 2rem));max-height:70vh;overflow:auto;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:40}.notify-panel.open{display:block}.notify-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border)}.notify-title,.notify-item-title{font-weight:var(--weight-semibold)}.notify-item{display:block;width:100%;text-align:left;padding:var(--space-3);border:0;border-bottom:1px solid var(--border);border-radius:0;font-weight:400}.notify-item-body,.notify-item-time{display:block;color:var(--text-muted);font-size:var(--font-small);margin-top:var(--space-1)}.notify-empty{padding:var(--space-5);color:var(--text-muted)}.notification-read{border-left:3px solid var(--border)}
.security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));gap:var(--space-5)}.security-list{list-style:none;margin:0;padding:0}.security-list>li{padding:var(--space-4) 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.security-list .ui-toolbar{margin-top:var(--space-3)}
.call-page{display:grid;justify-items:center;gap:var(--space-5);padding:var(--space-7)}#call{width:7rem;height:7rem;border-radius:50%;color:var(--accent)}#call .ui-icon{width:3rem;height:3rem}#call.recording{color:var(--danger);border-color:var(--danger);background:var(--danger-surface)}
@media(min-width:160rem){.builder{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
@media(max-width:60rem){.app-nav{order:3;flex-basis:100%}.builder{grid-template-columns:1fr}.app-header{gap:var(--space-2)}.app-brand{margin-right:auto}}
@media(max-width:40rem){.app-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--space-1)}.app-nav a{flex-shrink:0}.app-brand span{display:none}.app-main{padding:var(--space-4)}.app-header{padding:var(--space-3) var(--space-4)}.lift-data{grid-template-columns:1fr}.lift-data dt{border:0;padding-bottom:0}.lift-data dd{padding-top:var(--space-1)}.lifts-toolbar input[type="search"]{flex-basis:100%;width:100%}.saved-row .row-actions{width:100%;margin-left:0}.notify-panel{position:fixed;right:1rem;top:5rem}.ui-dropdown-panel{position:fixed;right:1rem;top:5rem}}
@media(pointer:coarse){html[data-density]{--control-height:2.75rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.ui-list{list-style:none;margin:0;padding:0}.ui-list>li{overflow-wrap:anywhere}.builder-form>button{align-self:end;justify-self:start}.ui-toolbar form{max-width:100%}

.ui-list .ui-toolbar{align-items:flex-start}.ui-list .ui-toolbar>.ui-grow{flex:1 1 20rem}.app-main>form+section{margin-top:var(--space-5)}
