/* Shared brand and semantic tokens. Both surfaces use the same local assets. */
:root {
 color-scheme:light;
 --lc-green-dark:#073f35; --lc-green:#0b5d4b; --lc-green-soft:#e8f1ea;
 --lc-cream:#f7f5ef; --lc-surface:#fff; --lc-border:#cdd7ce;
 --lc-text:#1f2937; --lc-text-muted:#52635c;
 --lc-danger:#a32b3c; --lc-warning:#785413; --lc-success:#236343;
 --lc-radius-sm:.45rem; --lc-radius-md:.8rem; --lc-radius-lg:1.2rem;
 --lc-shadow-sm:0 3px 12px #073f3509; --lc-shadow-md:0 12px 32px #073f351a;
 --lc-space-1:.35rem; --lc-space-2:.65rem; --lc-space-3:1rem; --lc-space-4:1.5rem; --lc-space-5:2rem;
 --lc-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 /* Compatibility aliases keep specialized portal controls on the same tokens. */
 --font:var(--lc-font); --ink:var(--lc-text); --muted:var(--lc-text-muted);
 --canvas:var(--lc-cream); --surface:var(--lc-surface); --subtle:var(--lc-green-soft);
 --primary:var(--lc-green); --primary-hover:var(--lc-green-dark); --border:var(--lc-border); --focus:#986000;
 --success:var(--lc-success); --success-bg:#e7f3eb; --warning:var(--lc-warning); --warning-bg:#fff3d8;
 --danger:var(--lc-danger); --danger-bg:#fff0ee; --urgent:#8e2525; --urgent-bg:#fde4df;
 --radius:var(--lc-radius-md); --radius-small:var(--lc-radius-sm); --shadow:var(--lc-shadow-sm);
 --space-1:var(--lc-space-1); --space-2:var(--lc-space-2); --space-3:var(--lc-space-3); --space-4:var(--lc-space-4); --space-5:var(--lc-space-5);
 font-family:var(--font); color:var(--ink); background:var(--canvas); line-height:1.6;
}
* { box-sizing:border-box; }
body { margin:0; }
[hidden] { display:none !important; }
a { color:var(--primary); text-underline-offset:.2em; }
a:hover { color:var(--primary-hover); }
:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
h1,h2,h3 { line-height:1.25; letter-spacing:-.025em; }
.brand { display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; font-weight:750; line-height:1.2; }
.brand-mark { flex:none; width:44px; height:44px; }
.brand-name { min-width:0; }
.brand-env { display:inline-block; border-radius:var(--radius-small); padding:.25rem .4rem; background:var(--danger); color:white; font-size:.65rem; letter-spacing:.06em; vertical-align:middle; }
/* Shared controls and surfaces; feature layouts stay in site.css/public.css. */
button,input,select,textarea { font:inherit; color:inherit; }
button,.button { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:44px; border:1px solid transparent; border-radius:var(--radius-small); padding:.6rem 1.1rem; font-weight:650; background:var(--primary); color:white; cursor:pointer; text-decoration:none; margin:.3rem 0; }
button:hover,.button:hover { background:var(--primary-hover); color:white; } button:disabled { opacity:.65; cursor:not-allowed; } form[aria-busy="true"] button:disabled { cursor:wait; }
button.secondary,.button.secondary { background:var(--surface); color:var(--primary); border-color:var(--border); }
.icon-button { min-width:44px; padding:.35rem .65rem; font-size:1.3rem; background:transparent; color:var(--ink); }
.card { background:var(--surface); border:1px solid var(--border); padding:clamp(1.1rem,2.5vw,1.8rem); border-radius:var(--radius); margin:1rem 0; box-shadow:var(--shadow); }
label { display:block; font-weight:600; margin-bottom:.35rem; } input,select,textarea { display:block; width:100%; min-height:44px; padding:.65rem .8rem; border:1px solid #94aaa3; border-radius:var(--radius-small); background:var(--surface); }
textarea { resize:vertical; } input[type=file] { padding:.45rem; } input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true],.picker-trigger[aria-invalid=true] { border-color:var(--danger); }
.field { margin-bottom:1.25rem; } .field p,.help { font-size:.87rem; color:var(--muted); margin:.35rem 0 0; }
.checkbox { display:flex; align-items:flex-start; gap:.65rem; padding:.5rem 0; margin:0; } .checkbox input { width:1.25rem; min-height:1.25rem; margin:.25rem 0 0; flex-shrink:0; accent-color:var(--primary); }
fieldset { min-width:0; border:1px solid var(--border); padding:1.1rem; border-radius:var(--radius-small); margin:1.5rem 0; } legend { font-weight:700; padding:0 .4rem; }
.field-error,.field .field-error { color:var(--danger); font-size:.9rem; } .error-summary { background:var(--danger-bg); color:var(--danger); border:1px solid #d89d95; border-radius:var(--radius-small); padding:1rem; margin-bottom:1rem; }
.badge { display:inline-block; border-radius:.35rem; background:var(--subtle); color:var(--muted); padding:.16rem .5rem; font-size:.75rem; font-weight:750; line-height:1.5; vertical-align:middle; } .badge.urgent { color:var(--urgent); background:var(--urgent-bg); border:1px solid #db9c90; } .badge.important { color:var(--warning); background:var(--warning-bg); }
dialog { width:min(31rem,calc(100vw - 1.5rem)); max-height:calc(100dvh - 2rem); overflow:auto; border:1px solid var(--border); border-radius:1rem; padding:1.25rem; color:var(--ink); box-shadow:0 18px 60px #122b2a33; } dialog::backdrop { background:#102c2a99; } .dialog-actions { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1rem; } .small-dialog { max-width:26rem; }
button.secondary:hover,.button.secondary:hover { background:var(--subtle); color:var(--primary-hover); }
button.quiet,.button.quiet { background:transparent; color:var(--primary); text-decoration:underline; }
input,select,textarea { max-width:100%; }
button.danger,.button.danger { background:var(--danger); color:white; border-color:var(--danger); }
button.danger:hover,.button.danger:hover { background:var(--urgent); color:white; }
.empty-state { padding:var(--space-4); border:1px dashed var(--border); border-radius:var(--radius); color:var(--muted); }
