/* Public, opt-in primitives. Product themes override --lp-* on the same surface. */
.lp-ui {
  --lp-bg:#fffdf7; --lp-card:#fff; --lp-fg:#183b38; --lp-muted:#48645f;
  --lp-line:#788f84; --lp-accent:#176b58; --lp-on-accent:#fff; --lp-focus:#96560a;
  --lp-success:#176b58; --lp-danger:#a1243f; --lp-radius:12px; --lp-control-radius:8px;
  --lp-font:system-ui,sans-serif; --lp-display:var(--lp-font); --lp-space:20px;
  --lp-target:44px; --lp-shadow:0 12px 35px #142b2b12;
  color:var(--lp-fg); background:var(--lp-bg); font:16px/1.55 var(--lp-font);
  color-scheme:light; overflow-wrap:anywhere;
}
.lp-ui[data-theme=dark] {--lp-bg:#142b2b;--lp-card:#203b3a;--lp-fg:#f2f6ed;--lp-muted:#bed0c8;--lp-line:#718f83;--lp-accent:#8bd8bd;--lp-on-accent:#142b2b;--lp-focus:#ffcf78;--lp-success:#8bd8bd;--lp-danger:#ffabb9;color-scheme:dark}
/* Studio geometry is portable; each product supplies its own palette. */
.lp-ui[data-direction=studio] {--lp-display:Arial,Helvetica,sans-serif;--lp-radius:7px;--lp-control-radius:5px}
.lp-ui *, .lp-ui *::before, .lp-ui *::after {box-sizing:border-box}
.lp-ui [hidden] {display:none!important}
.lp-ui :is(h1,h2,h3) {font-family:var(--lp-display);line-height:1.15;letter-spacing:-.025em;font-weight:600}
.lp-ui h1 {font-size:clamp(1.8rem,3vw,2.65rem);margin:0 0 12px}
.lp-ui h2 {font-size:1.35rem;margin:0 0 16px}
.lp-ui p {color:var(--lp-muted)}
.lp-ui a {color:var(--lp-accent);text-underline-offset:4px}
.lp-ui :is(button,input,select,textarea,summary) {font:inherit;max-width:100%;min-height:var(--lp-target)}
.lp-ui :is(button,.lp-button) {display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 17px;border:1px solid var(--lp-line);border-radius:var(--lp-control-radius);background:var(--lp-card);color:var(--lp-fg);font-weight:650;cursor:pointer;text-decoration:none;line-height:1.4}
.lp-ui :is(button[type=submit],[data-variant=primary]) {background:var(--lp-accent);border-color:var(--lp-accent);color:var(--lp-on-accent)}
.lp-ui [data-variant=quiet] {background:transparent;border-color:transparent}
.lp-ui [data-variant=danger] {color:var(--lp-danger);border-color:var(--lp-danger)}
.lp-ui button:not(:disabled):hover {filter:brightness(.94)}
.lp-ui :is(button,input,select):disabled {opacity:.65;cursor:not-allowed}
.lp-ui label {display:block;font-size:.9rem;font-weight:650;margin:16px 0}
.lp-ui :is(input,select,textarea) {display:block;width:100%;padding:10px 12px;margin-top:7px;border:1px solid var(--lp-line);border-radius:var(--lp-control-radius);background:var(--lp-card);color:var(--lp-fg)}
.lp-ui :is(input,select,textarea) {font-weight:400}
.lp-ui input:is([type=checkbox],[type=radio]) {display:inline-block;width:20px;height:20px;min-height:0;padding:0;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--lp-accent)}
.lp-ui input[aria-invalid=true] {border:2px solid var(--lp-danger)}
.lp-ui :focus-visible {outline:3px solid var(--lp-focus);outline-offset:3px}
.lp-ui :is(.lp-notice,[role=status]) {padding:12px 16px;border-inline-start:3px solid var(--lp-accent);background:var(--lp-card);color:var(--lp-fg);border-radius:0 var(--lp-control-radius) var(--lp-control-radius) 0}
.lp-ui [role=status]:empty {padding:0;border:0;min-height:0;margin-block:0;background:transparent}
.lp-ui .lp-notice[data-tone=error] {border-color:var(--lp-danger)}
.lp-ui .lp-notice[data-tone=success] {border-color:var(--lp-success)}
.lp-ui .lp-hint {font-size:.85rem;color:var(--lp-muted);font-weight:400;display:block;margin-top:6px}
.lp-ui .lp-actions {display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
:is(.lp-ui dialog,dialog.lp-ui) {width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:clamp(16px,4vw,28px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--lp-line);border-radius:var(--lp-radius);background:var(--lp-card);color:var(--lp-fg);box-shadow:var(--lp-shadow)}
:is(.lp-ui dialog,dialog.lp-ui)::backdrop {background:#10182099}
.lp-ui .lp-icon {width:21px;height:21px;flex-shrink:0;vertical-align:middle}
.lp-ui .lp-account {position:relative}
.lp-ui .lp-account summary {list-style:none;display:flex;align-items:center;gap:10px;padding:6px 10px;cursor:pointer;border:1px solid var(--lp-line);border-radius:var(--lp-control-radius)}
.lp-ui .lp-account summary::-webkit-details-marker {display:none}
.lp-ui .lp-account-panel {position:absolute;z-index:5;inset-block-start:calc(100% + 10px);inset-inline-end:0;width:min(280px,80vw);padding:16px;border:1px solid var(--lp-line);border-radius:var(--lp-radius);background:var(--lp-card);box-shadow:var(--lp-shadow)}
.lp-ui .lp-account-panel :is(button,.lp-button) {width:100%;justify-content:flex-start;margin-top:8px;min-height:var(--lp-target)}
.lp-ui .lp-account-panel {max-height:calc(100dvh - 110px);overflow:auto}
.lp-ui .lp-settings-nav {display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.lp-ui .lp-settings-nav a {display:inline-flex;align-items:center;min-height:var(--lp-target);padding:8px 12px;border:1px solid var(--lp-line);border-radius:var(--lp-control-radius);background:var(--lp-card);text-decoration:none}
.lp-ui .lp-settings section {margin:20px 0;padding:var(--lp-space);border:1px solid var(--lp-line);border-radius:var(--lp-radius);background:var(--lp-card);scroll-margin-block:24px;min-width:0}
.lp-ui .lp-settings :is(input,select,textarea) {min-width:0}
.lp-ui .lp-settings-header {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.lp-ui .lp-settings-header h1 {margin:0}
.lp-ui .lp-avatar {display:grid;place-items:center;width:32px;height:32px;background:var(--lp-accent);color:var(--lp-on-accent);font-size:12px;font-weight:700;border-radius:50%}
@media (prefers-reduced-motion:reduce) {.lp-ui * {scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media (forced-colors:active) {.lp-ui :is(button,input,select,summary,dialog) {border:1px solid ButtonText}.lp-ui :focus-visible {outline-color:Highlight}}
