:root{--color-accent: oklch(.69 .16 41);--color-accent-light: oklch(.78 .09 41);--color-accent-dark: oklch(.44 .14 41);--color-accent-muted: oklch(.93 .03 41);--color-surface: white;--color-surface-raised: oklch(.96 .005 250);--color-surface-sunken: oklch(.935 .006 250);--color-text: oklch(.14 .01 250);--color-text-secondary: oklch(.4 .012 250);--color-text-tertiary: oklch(.58 .01 250);--color-text-placeholder: oklch(.72 .008 250);--color-text-on-accent: oklch(.97 .005 250);--color-border: oklch(.86 .006 250);--color-border-strong: oklch(.72 .012 250);--color-grid: oklch(.9 .004 250);--color-success: oklch(.68 .14 160);--color-warning: oklch(.76 .13 80);--color-danger: oklch(.58 .17 22);--font-display: "Source Serif 4", serif;--font-body: "Manrope", sans-serif;--font-mono: "Geist Mono", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.563rem;--text-xl: 1.953rem;--text-2xl: 2.441rem;--text-3xl: clamp(2.8rem, 5.5vw, 3.815rem);--text-4xl: clamp(3.2rem, 7vw, 5.06rem);--leading-tight: 1.08;--leading-snug: 1.25;--leading-normal: 1.6;--leading-relaxed: 1.8;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--page-content-gap: var(--space-8);--radius-xs: 2px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 10px;--radius-full: 9999px;--shadow-sm: 0 1px 2px oklch(.22 .005 250 / .07);--shadow-md: 0 2px 8px oklch(.22 .005 250 / .09);--shadow-lg: 0 6px 24px oklch(.22 .005 250 / .12);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-pop: cubic-bezier(.22, 1, .36, 1);--duration-fast: .18s;--duration-base: .34s;--duration-slow: .55s;--duration-enter: .9s;--max-width: 72rem;--gutter: clamp(1rem, 3vw, 2rem)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-y:scroll;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-surface)}input,textarea,select,button{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:400}input::placeholder,textarea::placeholder{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:300;color:var(--color-text-placeholder)}a{color:inherit;text-decoration:none}@keyframes driftUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.entrance{opacity:0;animation:driftUp var(--duration-enter) var(--ease-out-expo) both}.entrance-pop{opacity:0;animation:popIn var(--duration-enter) var(--ease-pop) both}.entrance-d1{animation-delay:80ms}.entrance-d2{animation-delay:.16s}.entrance-d3{animation-delay:.24s}.entrance-d4{animation-delay:.32s}.entrance-d5{animation-delay:.4s}@media(prefers-reduced-motion:reduce){.entrance,.entrance-pop,.entrance-d1,.entrance-d2,.entrance-d3,.entrance-d4,.entrance-d5{animation:none;opacity:1}}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-24) var(--gutter);background:var(--color-surface-sunken)}.login-card{width:min(480px,calc(100vw - 2 * var(--gutter)));background:var(--color-surface);padding:var(--space-12) var(--space-8);border:1px solid var(--color-border);text-align:center}.login-brand{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.login-subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-8)}.login-actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.login-provider-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500;align-self:flex-start}.login-buttons-row{display:flex;gap:var(--space-3);width:100%}.login-buttons-row .btn{flex:1;justify-content:center}.login-magic-form{display:flex;flex-direction:column;gap:var(--space-3);width:100%;margin-top:var(--space-2)}.login-magic-form .btn{width:100%;justify-content:center}.login-magic-sent{font-size:var(--text-sm);color:var(--color-accent);font-weight:500}.login-hint{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-4)}.login-dev-divider{display:flex;align-items:center;gap:var(--space-3);width:100%;margin-top:var(--space-4);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.login-dev-divider:before,.login-dev-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-dev-btn{opacity:.6;transition:opacity var(--duration-fast) ease}.login-dev-btn:hover{opacity:1}.login-alert{margin-bottom:var(--space-6);text-align:left}.login-alert .alert{text-align:left}.login-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8) 0}.login-loading p{font-size:var(--text-sm);color:var(--color-text-secondary)}.app-main{flex:1;min-width:0;padding:0 calc(var(--gutter) + 1.6rem)}.hero,.page-header{padding:var(--space-6) 0 var(--page-content-gap);position:relative;display:flex;align-items:center}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}.page-header-left,.page-header-actions{display:flex;align-items:center;gap:var(--space-3)}.page-header-row{display:flex;align-items:center;justify-content:space-between;width:100%}.hero-classification{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:var(--space-6)}.hero-classification .class-line{width:32px;height:1px;background:var(--color-border-strong)}.hero-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.03em;color:var(--color-text);max-width:16ch;white-space:nowrap}.hero-title .accent-word{color:var(--color-accent)}.hero-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}.hero-desc{margin-top:var(--space-8);font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-text-secondary);max-width:52ch}.hero-specs{margin-top:var(--space-12);display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--color-border);max-width:600px}.hero-spec{background:var(--color-surface);padding:var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:var(--space-1)}.hero-spec-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--color-text-tertiary)}.hero-spec-value{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em;color:var(--color-text)}.divider{border:none;height:1px;background:var(--color-border)}.section{padding:var(--space-16) var(--gutter);position:relative}.section-header{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-12)}.section-number{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;color:var(--color-accent);padding:var(--space-1) var(--space-2);border:1px solid var(--color-accent-muted);border-radius:var(--radius-xs);background:var(--color-accent-muted);white-space:nowrap}.section-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;line-height:var(--leading-snug);color:var(--color-text)}.field-label{font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-dark)}.data-table td{line-height:20px}.data-table td .btn-icon,.data-table td .row-edit-btn,.data-table td .icon-btn{width:20px;height:20px}.data-table td .btn-icon svg,.data-table td .row-edit-btn svg,.data-table td .icon-btn svg{width:12px;height:12px}.data-table td .member-avatar{width:20px;height:20px;font-size:8px}.spacing-specimen{display:flex;flex-direction:column}.element-list{padding-left:0}.list-item{display:flex;align-items:baseline;gap:8px;padding:2px 0}.list-marker{flex-shrink:0;width:16px}.list-bullet .list-marker:before{content:"•";font-size:.8rem;color:var(--color-accent)}.list-number{counter-increment:list-counter}.list-number .list-marker:before{content:counter(list-counter) ".";font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.list-text{font-size:.8rem;line-height:1.4}.element-card .card-title:empty{display:none}.stat-value{font-variant-numeric:tabular-nums}.element-avatar{object-fit:cover;display:block}.avatar-circle{border-radius:50%}.avatar-rounded{border-radius:8px}.avatar-square{border-radius:4px}.element-footer-text{font-size:.65rem;color:var(--color-text-tertiary, #9ca3af);margin-top:24px;padding-top:8px;border-top:1px solid var(--color-border, #e5e7eb)}.spacing-row{display:flex;align-items:center;gap:var(--space-4, 16px);padding:var(--space-2, 8px) 0;border-bottom:1px dashed var(--color-border)}.spacing-row:last-child{border-bottom:none}.spacing-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--color-text-secondary);flex:0 0 20%;text-align:right}.spacing-bar-track{flex:0 0 70%;height:16px;background:var(--color-surface-sunken);position:relative;overflow:hidden}.spacing-bar-fill:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--color-accent);opacity:1}.spacing-val{font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary, #9ca3af);letter-spacing:.02em;flex:0 0 10%;text-align:left}.spacing-bar-track{flex:1;height:10px;background:var(--color-surface-sunken);position:relative;overflow:hidden}.bar-label{font-size:.65rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.bar-lane{display:flex;align-items:center;gap:6px}.bar-value{font-size:.65rem;font-weight:600;color:#111827;white-space:nowrap;flex-shrink:0}.progress-bar-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:6px}.progress-bar-label{font-size:.7rem;font-weight:600;color:var(--color-text-secondary);text-align:right;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;justify-self:end}.progress-bar-pct{font-size:.7rem;font-weight:600;color:var(--color-accent);width:40px;text-align:right;flex-shrink:0}.spacing-bar-track{flex:1;height:16px;background:var(--color-surface-sunken);position:relative;overflow:hidden}.spacing-bar-fill{height:100%;background:var(--color-accent);opacity:.55;position:relative}.spacing-bar-fill:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--color-accent)}.bar-chart-wrap{padding:12px 0}.bar-chart-title{font-size:.8rem;font-weight:600;color:var(--color-text);margin:0 0 8px}.l-stack{display:flex;flex-direction:column;gap:var(--stack-gap, var(--space-4))}.l-stack--xs{--stack-gap: var(--space-1)}.l-stack--sm{--stack-gap: var(--space-2)}.l-stack--md{--stack-gap: var(--space-4)}.l-stack--lg{--stack-gap: var(--space-6)}.l-stack--xl{--stack-gap: var(--space-8)}.l-cluster{display:flex;flex-wrap:wrap;gap:var(--cluster-gap, var(--space-3));align-items:var(--cluster-align, center);justify-content:var(--cluster-justify, flex-start)}.l-cluster--gap-xs{--cluster-gap: var(--space-1)}.l-cluster--gap-sm{--cluster-gap: var(--space-2)}.l-cluster--gap-md{--cluster-gap: var(--space-3)}.l-cluster--gap-lg{--cluster-gap: var(--space-4)}.l-cluster--start{--cluster-justify: flex-start}.l-cluster--center{--cluster-justify: center}.l-cluster--between{--cluster-justify: space-between}.l-cluster--end{--cluster-justify: flex-end}.l-cluster--align-start{--cluster-align: flex-start}.l-cluster--align-center{--cluster-align: center}.l-cluster--align-end{--cluster-align: flex-end}.l-cluster--align-stretch{--cluster-align: stretch}.l-switcher{display:flex;flex-wrap:wrap;gap:var(--switcher-gap, var(--space-4));align-items:var(--switcher-align, center)}.l-switcher>*{flex-grow:1}.l-switcher>*:nth-last-child(n + var(--switcher-min, 2)):nth-last-child(n + var(--switcher-min, 2))~*,.l-switcher>*:nth-last-child(n + var(--switcher-min, 2)):first-child~*{flex-basis:100%}@media(max-width:768px){.l-switcher{flex-direction:column;align-items:stretch}}.l-sidebar{display:flex;gap:var(--sidebar-gap, var(--space-6));align-items:flex-start}.l-sidebar__main{flex:1;min-width:0}.l-sidebar__side{width:var(--sidebar-width, 280px);flex-shrink:0}@media(max-width:768px){.l-sidebar{flex-direction:column}.l-sidebar__side{width:100%}}.l-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--grid-min, 240px),100%),1fr));gap:var(--grid-gap, var(--space-4))}.l-grid--2col{grid-template-columns:repeat(auto-fill,minmax(min(var(--grid-min, 280px),100%),1fr))}.l-grid--dense{grid-auto-flow:dense}.l-grid--fixed-2{grid-template-columns:repeat(2,1fr)}.l-grid--fixed-3{grid-template-columns:repeat(3,1fr)}.l-grid--kv{grid-template-columns:var(--grid-label, 10ch) 1fr;gap:var(--grid-gap, var(--space-4));align-items:baseline}@media(max-width:640px){.l-grid--fixed-2,.l-grid--fixed-3,.l-grid--kv{grid-template-columns:1fr}}.l-split{display:grid;grid-template-columns:var(--split-columns, 1fr 1fr);gap:var(--split-gap, var(--space-6));align-items:start}@media(max-width:768px){.l-split{grid-template-columns:1fr}}.l-center{max-width:var(--center-max, 60ch);margin-inline:auto}.l-center--wide{--center-max: var(--max-width, 72rem)}.l-center--narrow{--center-max: 40ch}.l-cover{display:flex;flex-direction:column;min-height:var(--cover-min, 100dvh);padding:var(--cover-pad, var(--space-8));justify-content:center;align-items:center}.l-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--page-header-gap, var(--space-4));padding:var(--page-header-pad-top, var(--space-6)) 0 var(--page-header-pad-bottom, var(--space-8));position:relative}.l-page-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.l-page-header__title-group{display:flex;align-items:center;gap:var(--space-3)}.l-page-header__row{display:flex;align-items:center;justify-content:space-between;width:100%}@media(max-width:768px){.l-page-header{flex-direction:column;align-items:flex-start}.l-page-header__actions{width:100%}}.l-filter-bar{display:flex;flex-wrap:wrap;gap:var(--filter-gap, var(--space-4));align-items:var(--filter-align, flex-end);position:relative;z-index:10;margin-bottom:var(--filter-margin, var(--space-6))}.l-filter-bar__search{flex:1;min-width:var(--filter-search-min, 200px)}.l-filter-bar__filters{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end}@media(max-width:640px){.l-filter-bar{flex-direction:column}.l-filter-bar__search{width:100%;min-width:unset}}.l-field{display:flex;flex-direction:column;gap:var(--field-gap, var(--space-2))}.l-field__label{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.l-field__label--mono{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);font-weight:400}.l-field__hint{font-size:var(--text-sm);color:var(--color-text-tertiary)}.l-field--inline{flex-direction:row;align-items:center;gap:var(--space-3)}.l-empty{text-align:center;padding:var(--empty-pad, var(--space-12)) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.l-empty--compact{--empty-pad: var(--space-8)}.l-empty__icon{width:64px;height:64px;border-radius:var(--radius-full);background:var(--color-surface-sunken);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.l-empty__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text)}.l-empty__desc{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:40ch}.l-section{padding:var(--section-pad, var(--space-16)) var(--gutter);position:relative}.l-section--compact{--section-pad: var(--space-8)}.l-section__header{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--section-header-gap, var(--space-8))}.l-section__header--center{align-items:center;gap:var(--space-2)}.l-section__number{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;color:var(--color-accent);padding:var(--space-1) var(--space-2);border:1px solid var(--color-accent-muted);border-radius:var(--radius-xs);background:var(--color-accent-muted);white-space:nowrap}.l-info-bar{display:flex;align-items:center;gap:var(--info-gap, var(--space-6));padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}@media(max-width:640px){.l-info-bar{flex-wrap:wrap;gap:var(--space-3)}}.l-panel{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.l-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px dashed var(--color-border)}.l-panel__body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.l-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--color-text-tertiary);font-size:var(--text-sm)}.l-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-3);border-top:1px solid var(--color-border);margin-top:var(--space-6)}.l-pagination--centered{justify-content:center;gap:var(--space-4)}.l-pagination__info{font-size:var(--text-sm);color:var(--color-text-tertiary)}.l-pagination__controls{display:flex;align-items:center;gap:var(--space-2)}.l-table-wrap{width:100%;overflow-x:auto;position:relative}.l-divider{border:none;height:1px;background:var(--color-border);margin:var(--divider-margin, var(--space-6)) 0}.l-divider--sm{--divider-margin: var(--space-3)}.l-divider--lg{--divider-margin: var(--space-8)}.l-grow{flex:1}.l-grow-0{flex-grow:0}.l-shrink-0{flex-shrink:0}.l-full{width:100%}.l-self-end{align-self:flex-end}.l-self-start{align-self:flex-start}.l-self-center{align-self:center}.l-mt-auto{margin-top:auto}.l-ml-auto{margin-left:auto}.l-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.l-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.l-wrap{display:contents}
