:root{color-scheme:light;--bg: oklch(.984 .004 75);--paper: oklch(.997 .0016 75);--off-paper: oklch(.957 .006 75);--sidebar-bg: oklch(.972 .005 75);--hairline: oklch(.905 .006 75);--hairline-strong: oklch(.82 .009 70);--subtle: color-mix(in oklch, var(--ink) 5%, transparent);--ink: oklch(.255 .008 70);--ink-2: oklch(.42 .011 70);--ink-3: oklch(.515 .013 70);--ink-4: oklch(.66 .011 70);--ink-70: var(--ink-2);--ink-60: var(--ink-2);--ink-50: var(--ink-3);--ink-40: var(--ink-4);--ink-30: var(--ink-4);--tessera: oklch(.6 .118 64);--tessera-deep: oklch(.52 .115 62);--brand: var(--brand-primary, var(--tessera));--brand-hover: color-mix(in oklch, var(--brand) 82%, black);--brand-ink: var(--brand-on, #ffffff);--brand-soft: color-mix(in oklch, var(--brand) 12%, transparent);--brand-softer: color-mix(in oklch, var(--brand) 7%, transparent);--brand-accent: var(--brand-secondary, var(--ink));--red: var(--brand);--red-hover: var(--brand-hover);--red-tint: var(--brand-soft);--steel: var(--brand-accent);--steel-hover: color-mix(in oklch, var(--brand-accent) 80%, black);--success: oklch(.55 .1 150);--success-soft: color-mix(in oklch, var(--success) 13%, transparent);--warning: oklch(.62 .12 70);--warning-soft: color-mix(in oklch, var(--warning) 15%, transparent);--danger: oklch(.52 .17 25);--danger-hover: color-mix(in oklch, var(--danger) 84%, black);--danger-soft: color-mix(in oklch, var(--danger) 11%, transparent);--info: oklch(.53 .07 245);--info-soft: color-mix(in oklch, var(--info) 13%, transparent);--sage: var(--success);--sage-tint: var(--success-soft);--amber: var(--warning);--amber-tint: var(--warning-soft);--focus: var(--brand);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Libre Caslon Display", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-2xs: .6875rem;--t-xs: .75rem;--t-sm: .8125rem;--t-ui: .875rem;--t-base:.9375rem;--t-md: 1rem;--t-lg: 1.125rem;--t-xl: 1.375rem;--t-2xl: 1.75rem;--t-3xl: 2.25rem;--sp-0_5: .125rem;--sp-1: .25rem;--sp-1_5: .375rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--radius-sm: 5px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(38, 30, 18, .05);--shadow-sm: 0 1px 2px rgba(38, 30, 18, .06), 0 1px 1px rgba(38, 30, 18, .04);--shadow: 0 2px 4px rgba(38, 30, 18, .05), 0 6px 16px rgba(38, 30, 18, .07);--shadow-lg: 0 10px 28px rgba(38, 30, 18, .12), 0 2px 6px rgba(38, 30, 18, .06);--shadow-pop: 0 14px 38px rgba(38, 30, 18, .18), 0 2px 8px rgba(38, 30, 18, .08);--ease: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-1: .12s;--dur-2: .18s;--dur-3: .24s;--z-raised: 10;--z-sticky: 20;--z-drawer: 30;--z-overlay: 40;--z-modal: 50;--z-popover: 60;--z-toast: 70;--z-tooltip: 80}[data-theme=dark]{color-scheme:dark;--bg: oklch(.205 .006 75);--paper: oklch(.247 .006 75);--off-paper: oklch(.175 .006 75);--sidebar-bg: oklch(.224 .006 75);--hairline: oklch(.33 .008 75);--hairline-strong: oklch(.42 .01 75);--ink: oklch(.93 .005 85);--ink-2: oklch(.78 .006 85);--ink-3: oklch(.645 .008 85);--ink-4: oklch(.48 .008 85);--tessera: oklch(.72 .12 68);--tessera-deep: oklch(.66 .12 66);--brand-hover: color-mix(in oklch, var(--brand) 80%, white);--success: oklch(.7 .13 150);--warning: oklch(.76 .13 72);--danger: oklch(.67 .16 25);--danger-hover: color-mix(in oklch, var(--danger) 82%, white);--info: oklch(.7 .09 240);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 30px rgba(0, 0, 0, .5);--shadow-pop: 0 16px 40px rgba(0, 0, 0, .6)}*{box-sizing:border-box}*{outline:none}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t-base);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;color:var(--ink);line-height:1.2;font-weight:600;text-wrap:balance}h1{font-family:var(--font-serif);font-weight:400;font-size:var(--t-2xl);letter-spacing:-.01em}h2{font-size:var(--t-xl);letter-spacing:-.01em}h3{font-size:var(--t-lg)}h4{font-size:var(--t-md)}p{margin:0}a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--hairline-strong);transition:color var(--dur-1) var(--ease),text-decoration-color var(--dur-1) var(--ease)}a:hover{color:var(--brand);text-decoration-color:var(--brand)}code,kbd,samp{font-family:var(--font-mono);font-size:.9em}code{background:var(--off-paper);padding:.1em .34em;border-radius:var(--radius-sm)}::selection{background:var(--brand-soft)}::placeholder{color:var(--ink-3);opacity:1}[data-nums],.nums{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;top:-48px;left:var(--sp-4);z-index:var(--z-tooltip);background:var(--ink);color:var(--bg);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);text-decoration:none;transition:top var(--dur-2) var(--ease)}.skip-link:focus{top:var(--sp-2);color:var(--bg)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.serif{font-family:var(--font-serif);font-weight:400}.muted{color:var(--ink-3)}.muted.error,.text-danger{color:var(--danger)}.text-success{color:var(--success)}.centered{display:grid;place-items:center;min-height:100%;color:var(--ink-3)}.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}.spin{animation:tbl-spin .7s linear infinite}@keyframes tbl-spin{to{transform:rotate(360deg)}}@keyframes tbl-shimmer{to{transform:translate(100%)}}@keyframes tbl-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.btn{--btn-bg: var(--paper);--btn-fg: var(--ink);--btn-bd: var(--hairline-strong);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:.55rem 1rem;min-height:2.25rem;font-family:inherit;font-size:var(--t-ui);font-weight:500;line-height:1;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-bd);border-radius:var(--radius);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.btn:hover:not(:disabled):not([aria-disabled=true]){box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(.5px);box-shadow:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{--btn-bg: var(--ink);--btn-fg: var(--bg);--btn-bd: var(--ink)}.btn-primary:hover:not(:disabled):not([aria-disabled=true]){--btn-bg: var(--brand);--btn-fg: var(--brand-ink);--btn-bd: var(--brand)}.btn-brand{--btn-bg: var(--brand);--btn-fg: var(--brand-ink);--btn-bd: var(--brand)}.btn-brand:hover:not(:disabled):not([aria-disabled=true]){--btn-bg: var(--brand-hover);--btn-bd: var(--brand-hover)}.btn-secondary{--btn-bg: var(--paper);--btn-fg: var(--ink);--btn-bd: var(--hairline-strong)}.btn-secondary:hover:not(:disabled):not([aria-disabled=true]){--btn-bd: var(--ink-3);background:var(--off-paper)}.btn-ghost{--btn-bg: transparent;--btn-fg: var(--ink-2);--btn-bd: transparent}.btn-ghost:hover:not(:disabled):not([aria-disabled=true]){--btn-fg: var(--ink);background:var(--subtle);box-shadow:none}.btn-danger{--btn-bg: var(--danger);--btn-fg: #fff;--btn-bd: var(--danger)}.btn-danger:hover:not(:disabled):not([aria-disabled=true]){--btn-bg: var(--danger-hover);--btn-bd: var(--danger-hover)}.btn-danger-ghost{--btn-bg: transparent;--btn-fg: var(--danger);--btn-bd: var(--hairline-strong)}.btn-danger-ghost:hover:not(:disabled):not([aria-disabled=true]){--btn-bd: var(--danger);background:var(--danger-soft)}.btn-provider{--btn-bg: var(--paper);--btn-fg: var(--ink);--btn-bd: var(--hairline-strong);width:100%}.btn-provider:hover:not(:disabled){background:var(--off-paper);--btn-bd: var(--ink-3)}.btn-sm{padding:.34rem .7rem;min-height:1.85rem;font-size:var(--t-sm)}.btn-lg{padding:.7rem 1.35rem;min-height:2.7rem;font-size:var(--t-md)}.btn-block{width:100%}.btn-icon{padding:0;width:2.25rem;height:2.25rem;min-height:0}.btn-icon.btn-sm{width:1.85rem;height:1.85rem}.btn[data-loading=true]{color:transparent!important;position:relative;pointer-events:none}.btn[data-loading=true]:after{content:"";position:absolute;width:1rem;height:1rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;color:var(--btn-fg);animation:tbl-spin .7s linear infinite}.link{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--hairline-strong);cursor:pointer;transition:color var(--dur-1) var(--ease),text-decoration-color var(--dur-1) var(--ease)}.link:hover{color:var(--brand);text-decoration-color:var(--brand)}.link-danger{color:var(--ink-3)}.link-danger:hover{color:var(--danger);text-decoration-color:var(--danger)}.input,.select,.textarea,input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=tel],input[type=url],input[type=date],textarea,select{width:100%;font:inherit;font-size:var(--t-ui);color:var(--ink);background:var(--paper);border:1px solid var(--hairline-strong);border-radius:var(--radius);padding:.5rem .7rem;min-height:2.25rem;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}textarea,.textarea{min-height:4.5rem;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus,input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input:disabled,input:disabled,textarea:disabled,select:disabled,.input[readonly],input[readonly]{background:var(--off-paper);color:var(--ink-3);cursor:not-allowed}.input[aria-invalid=true],input[aria-invalid=true],.input.error{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}select,.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23736a5c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2rem}[data-theme=dark] select,[data-theme=dark] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a39a8c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.field{display:flex;flex-direction:column;gap:var(--sp-1_5);margin-bottom:var(--sp-4)}.field>.label,.field-label{font-size:var(--t-sm);font-weight:500;color:var(--ink-2)}.field-hint{font-size:var(--t-xs);color:var(--ink-3)}.field-error{font-size:var(--t-xs);color:var(--danger)}.checkbox,.radio{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--t-ui);color:var(--ink);cursor:pointer}.checkbox input,.radio input,input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--brand)}.switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-track{width:2.4rem;height:1.4rem;border-radius:var(--radius-full);background:var(--hairline-strong);transition:background var(--dur-2) var(--ease);display:inline-flex;align-items:center;padding:2px}.switch-track:after{content:"";width:1rem;height:1rem;border-radius:50%;background:var(--paper);box-shadow:var(--shadow-sm);transition:transform var(--dur-2) var(--ease)}.switch input:checked+.switch-track{background:var(--brand)}.switch input:checked+.switch-track:after{transform:translate(1rem)}.switch input:focus-visible+.switch-track{outline:2px solid var(--focus);outline-offset:2px}.card{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-xs)}.card+.card{margin-top:var(--sp-4)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.card-title{font-size:var(--t-lg);font-weight:600}.card h2{font-size:var(--t-lg);margin-bottom:var(--sp-3)}.card-actions{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}.table-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--paper)}.table,.data-table{width:100%;border-collapse:collapse;font-size:var(--t-base)}.table th,.data-table th{position:sticky;top:0;text-align:left;font-weight:600;color:var(--ink-2);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--sp-2) var(--sp-3);background:var(--off-paper);border-bottom:1px solid var(--hairline);white-space:nowrap}.table td,.data-table td{text-align:left;padding:var(--sp-3);vertical-align:middle;border-bottom:1px solid var(--hairline);color:var(--ink)}.table tr:last-child td,.data-table tr:last-child td{border-bottom:none}.table tbody tr,.data-table tbody tr{transition:background var(--dur-1) var(--ease)}.table tbody tr:hover td,.data-table tbody tr:hover td{background:color-mix(in oklch,var(--brand) 4%,var(--paper))}.table .num,.data-table .num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.clickable-row{cursor:pointer}.row-actions{display:flex;gap:var(--sp-3);justify-content:flex-end}.pill{display:inline-flex;align-items:center;gap:.34rem;padding:.12rem .55rem;font-size:var(--t-xs);font-weight:500;border-radius:var(--radius-full);border:1px solid transparent;white-space:nowrap;line-height:1.5}.pill:before{content:"";width:.42rem;height:.42rem;border-radius:50%;background:currentColor}.pill-success,.pill-active,.pill-ready,.pill-verified{color:var(--success);background:var(--success-soft);border-color:color-mix(in oklch,var(--success) 30%,transparent)}.pill-warning,.pill-requested,.pill-pending,.pill-rendering{color:var(--warning);background:var(--warning-soft);border-color:color-mix(in oklch,var(--warning) 30%,transparent)}.pill-danger,.pill-error{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in oklch,var(--danger) 30%,transparent)}.pill-info{color:var(--info);background:var(--info-soft);border-color:color-mix(in oklch,var(--info) 30%,transparent)}.pill-neutral,.pill-archived,.pill-closed{color:var(--ink-2);background:var(--off-paper);border-color:var(--hairline)}.pill-brand{color:var(--brand);background:var(--brand-soft);border-color:color-mix(in oklch,var(--brand) 30%,transparent)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.05rem .4rem;font-size:var(--t-2xs);font-weight:600;border-radius:var(--radius-sm);background:var(--off-paper);color:var(--ink-2);font-variant-numeric:tabular-nums}.badge-brand{background:var(--brand-soft);color:var(--brand)}kbd,.kbd{font-family:var(--font-mono);font-size:var(--t-2xs);padding:.1rem .34rem;background:var(--off-paper);border:1px solid var(--hairline);border-bottom-width:2px;border-radius:var(--radius-sm);color:var(--ink-2)}.tabs,.tab-strip{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--hairline);margin-bottom:var(--sp-5);overflow-x:auto;scrollbar-width:thin}.tab,.tab-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;cursor:pointer;padding:var(--sp-3) var(--sp-3);margin-bottom:-1px;color:var(--ink-3);font-size:var(--t-ui);font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;text-decoration:none;transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.tab:hover,.tab-button:hover{color:var(--ink)}.tab.active,.tab-button.active,a.tab-button.active{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}a.tab-button{text-decoration:none}.tab-pane{display:flex;flex-direction:column}.segmented{display:inline-flex;padding:2px;gap:2px;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius)}.segmented button,.segmented .seg{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;cursor:pointer;padding:.3rem .7rem;font-size:var(--t-sm);font-weight:500;color:var(--ink-3);border-radius:calc(var(--radius) - 3px);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.segmented button:hover{color:var(--ink)}.segmented button.active,.segmented .seg.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-xs)}.alert{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:var(--t-ui);border:1px solid transparent}.alert-error,.alert-danger{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in oklch,var(--danger) 28%,transparent)}.alert-info{color:var(--ink);background:var(--off-paper);border-color:var(--hairline)}.alert-success{color:var(--success);background:var(--success-soft);border-color:color-mix(in oklch,var(--success) 28%,transparent)}.alert-warning{color:var(--warning);background:var(--warning-soft);border-color:color-mix(in oklch,var(--warning) 28%,transparent)}.modal,.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:color-mix(in oklch,var(--ink) 45%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:var(--sp-4);animation:tbl-fade-in var(--dur-2) var(--ease)}.modal-card,.dialog{width:100%;max-width:520px;max-height:min(85vh,720px);overflow-y:auto;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:var(--sp-6)}.modal-head,.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.modal-head h2,.dialog-head h2{font-size:var(--t-lg)}.modal-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;color:var(--ink-3);font-size:1.1rem;line-height:1;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm)}.modal-close:hover{color:var(--ink);background:var(--subtle)}dialog.dialog{padding:var(--sp-6);border:1px solid var(--hairline)}dialog.dialog::backdrop{background:color-mix(in srgb,#261e12 45%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.menu{position:fixed;z-index:var(--z-popover);min-width:11rem;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:var(--sp-1);animation:tbl-fade-in var(--dur-1) var(--ease)}.menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);font:inherit;font-size:var(--t-ui);text-align:left;background:none;border:none;border-radius:var(--radius-sm);color:var(--ink);cursor:pointer}.menu-item:hover{background:var(--subtle)}.menu-item.danger{color:var(--danger)}.menu-sep{height:1px;background:var(--hairline);margin:var(--sp-1) 0}.empty,.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-12) var(--sp-6);border:1px dashed var(--hairline-strong);border-radius:var(--radius-lg);background:var(--paper);background-image:radial-gradient(var(--off-paper) 1px,transparent 1.4px);background-size:14px 14px;color:var(--ink-3)}.empty-title,.empty-state .empty-title{font-family:var(--font-serif);font-weight:400;font-size:var(--t-xl);color:var(--ink);margin-bottom:var(--sp-1)}.empty p,.empty-state p{max-width:42ch}.empty .btn,.empty-state .btn{margin-top:var(--sp-3)}.skel{position:relative;overflow:hidden;background:var(--off-paper);border-radius:var(--radius-sm)}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--paper) 70%,transparent),transparent);animation:tbl-shimmer 1.3s var(--ease) infinite}.skel-line{height:.85rem;margin:var(--sp-2) 0}.skel-line.short{width:40%}.stat{display:flex;flex-direction:column;gap:var(--sp-1)}.stat-value{font-size:var(--t-2xl);font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}.stat-label{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3);margin:var(--sp-4) 0 var(--sp-8)}.kpi-card{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);text-decoration:none;color:var(--ink);box-shadow:var(--shadow-xs);transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}a.kpi-card:hover{border-color:var(--hairline-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.kpi-value{font-size:1.65rem;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.kpi-label{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-2) var(--sp-4);align-items:baseline}.kv dt,.kv .k{color:var(--ink-3);font-size:var(--t-sm)}.kv dd,.kv .v{margin:0;color:var(--ink)}.toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.hr{height:1px;background:var(--hairline);border:none;margin:var(--sp-5) 0}.divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0;color:var(--ink-3);font-size:var(--t-sm)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--hairline)}.shell{display:grid;grid-template-columns:16rem minmax(0,1fr);min-height:100vh;background:var(--bg)}.shell-topbar{display:none}.shell-sidebar{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5) var(--sp-3) var(--sp-4);background:var(--sidebar-bg);border-right:1px solid var(--hairline)}.sidebar-brand-row{display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-2);margin-bottom:var(--sp-3)}.sidebar-brand-row .drawer-toggle{display:none}.workspace-switcher{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--sp-3);margin-bottom:var(--sp-3);box-shadow:var(--shadow-xs)}.workspace-label,.eyebrow{display:block;font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.07em;font-weight:600;color:var(--ink-3);margin-bottom:var(--sp-1)}.workspace-switcher select{margin-top:var(--sp-1)}.workspace-name{font-weight:600;font-size:var(--t-ui);color:var(--ink)}.workspace-actions{margin-top:var(--sp-2);display:flex;justify-content:space-between;align-items:center}.workspace-action-link{font-size:var(--t-sm);color:var(--brand);text-decoration:none;font-weight:500}.workspace-action-link:hover{text-decoration:underline}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-nav:first-of-type{flex:1 1 auto}.sidebar-section-label{font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.07em;font-weight:600;color:var(--ink-3);padding:var(--sp-3) var(--sp-2) var(--sp-1)}.sidebar-link{position:relative;display:flex;align-items:center;gap:var(--sp-2);padding:.5rem .7rem;border-radius:var(--radius);font-size:var(--t-ui);font-weight:500;color:var(--ink-2);text-decoration:none;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.sidebar-link:hover{background:var(--subtle);color:var(--ink)}.sidebar-link.active{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:var(--shadow-xs)}.sidebar-link.active:before{content:"";position:absolute;left:-1px;top:50%;transform:translateY(-50%);width:3px;height:1.1rem;border-radius:var(--radius-full);background:var(--brand)}.sidebar-settings{margin-top:var(--sp-1)}.sidebar-foot{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:var(--sp-2)}.who{padding:0 var(--sp-2)}.who-name{font-weight:600;font-size:var(--t-sm);color:var(--ink)}.who-meta{font-size:var(--t-xs);color:var(--ink-3);word-break:break-all}.theme-toggle{display:flex;align-items:center;gap:var(--sp-2);width:100%;background:transparent;border:1px solid var(--hairline);border-radius:var(--radius);padding:.4rem .7rem;font:inherit;font-size:var(--t-sm);color:var(--ink-2);cursor:pointer;transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}.theme-toggle:hover{border-color:var(--hairline-strong);color:var(--ink);background:var(--subtle)}.theme-toggle-icon{font-size:1rem;line-height:1}.shell-main{min-width:0;padding:var(--sp-8) clamp(var(--sp-5),4vw,var(--sp-12));width:100%;max-width:1280px;margin:0 auto}.app-powered-by{margin-top:var(--sp-12);padding-top:var(--sp-4);border-top:1px solid var(--hairline);font-size:var(--t-xs);color:var(--ink-3)}.app-powered-by strong{color:var(--tessera);font-weight:600}.page{display:flex;flex-direction:column}.page-head,.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.page-head h1,.page-header h1{font-family:var(--font-serif);font-weight:400;font-size:var(--t-2xl);letter-spacing:-.01em}.page-head-titles{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.page-sub{color:var(--ink-3);font-size:var(--t-ui);margin:var(--sp-1) 0 0;max-width:70ch}.page-actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.page-header.tight{margin-bottom:var(--sp-2)}.page-header.tight h2{font-size:var(--t-lg);font-weight:600}.crumb{font-size:var(--t-sm);color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.02em;margin-bottom:var(--sp-1)}.settings-layout{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:var(--sp-8);align-items:start}.settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:var(--sp-8)}.settings-group-label{font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.07em;font-weight:600;color:var(--ink-3);padding:var(--sp-3) var(--sp-2) var(--sp-1)}.settings-content{min-width:0}@media (max-width: 760px){.settings-layout{grid-template-columns:1fr;gap:var(--sp-5)}.settings-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:var(--sp-1)}}.auth-page,.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--sp-8) var(--sp-5);background:var(--bg)}.auth-card{width:100%;max-width:400px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--sp-8)}.auth-card .brand,.auth-brand{margin-bottom:var(--sp-6)}.auth-card h1{font-family:var(--font-serif);font-weight:400;font-size:var(--t-2xl);margin-bottom:var(--sp-2)}.auth-sub{color:var(--ink-3);font-size:var(--t-ui);margin-bottom:var(--sp-6)}.provider-row{display:flex;flex-direction:column;gap:var(--sp-2)}.email-form{display:flex;flex-direction:column;gap:var(--sp-4)}.email-form label{display:flex;flex-direction:column;gap:var(--sp-1_5);font-size:var(--t-sm);font-weight:500;color:var(--ink-2)}.email-form .btn{margin-top:var(--sp-1)}.auth-footer{display:flex;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-6);font-size:var(--t-ui)}.brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:var(--t-lg);color:var(--ink);letter-spacing:-.01em;text-decoration:none}.brand-mark{width:1.05rem;height:1.05rem;border-radius:3px;background:var(--brand);display:inline-block;flex:none}.brand-tag{font-size:var(--t-sm);color:var(--ink-3);margin-top:.1rem}.wordmark-image{display:inline-block;height:1.4rem;width:auto;vertical-align:middle}.wordmark-tagline{color:var(--ink-3);font-size:var(--t-sm);margin-left:.4rem}.drawer-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-radius:var(--radius-sm);font-size:1.2rem;line-height:1;cursor:pointer;color:var(--ink);padding:.25rem .5rem}.drawer-toggle:hover{background:var(--subtle)}.shell-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklch,var(--ink) 40%,transparent);z-index:var(--z-overlay);animation:tbl-fade-in var(--dur-2) var(--ease)}@media (max-width: 899px){.shell{grid-template-columns:1fr}.shell-topbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--sidebar-bg);border-bottom:1px solid var(--hairline);position:sticky;top:0;z-index:var(--z-sticky)}.topbar-spacer{flex:1}.shell-sidebar{position:fixed;inset:0 auto 0 0;width:16rem;z-index:var(--z-drawer);transform:translate(-100%);transition:transform var(--dur-2) var(--ease);box-shadow:var(--shadow-lg)}.shell-drawer-open .shell-sidebar{transform:translate(0)}.sidebar-brand-row .drawer-toggle{display:inline-flex}.shell-main{padding:var(--sp-5) var(--sp-4) var(--sp-8)}}.powered-by{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--hairline);font-size:var(--t-xs);color:var(--ink-3)}.powered-by img{height:.95rem;width:auto;opacity:.85}.powered-by strong{font-weight:600;color:var(--tessera)}.brand-loading{display:inline-block;min-width:6rem;height:1.4rem}.section-label{font-size:var(--t-sm);font-weight:600;color:var(--ink-2);margin:0 0 var(--sp-3)}.card-form{display:flex;flex-direction:column;gap:var(--sp-4)}.card-form>h2{margin:0;font-size:var(--t-lg)}.card-form label{display:flex;flex-direction:column;gap:var(--sp-1_5);font-size:var(--t-sm);font-weight:500;color:var(--ink-2)}.detail-list,.picker-list{list-style:none;margin:var(--sp-2) 0 0;padding:0;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden}.detail-list li,.picker-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);font-size:var(--t-ui);border-bottom:1px solid var(--hairline)}.detail-list li:last-child,.picker-list li:last-child{border-bottom:none}.detail-list li>span:last-child,.picker-list li>span:last-child{display:flex;gap:var(--sp-3);align-items:center;white-space:nowrap}.filter-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.detail-section-title{font-size:var(--t-ui);font-weight:600;color:var(--ink-2);margin:var(--sp-5) 0 var(--sp-2)}.onboarding-step-meta{font-size:var(--t-sm);color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.02em;margin-bottom:var(--sp-1)}.settings-form{display:flex;flex-direction:column;gap:var(--sp-4);max-width:32rem;margin-top:var(--sp-4)}.settings-form+.settings-form{margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--hairline)}.settings-form h2{margin:0;font-size:var(--t-lg)}.settings-form label{display:flex;flex-direction:column;gap:var(--sp-1_5);font-size:var(--t-sm);font-weight:500;color:var(--ink-2)}.name-edit{display:inline-flex;gap:var(--sp-2);align-items:center}.name-edit input{padding:.25rem .45rem;min-height:0;width:auto}.account-card{margin-bottom:var(--sp-4)}.account-card h2{font-size:var(--t-lg);margin-bottom:var(--sp-3)}.account-section-title{font-size:var(--t-ui);font-weight:600;color:var(--ink-2);margin:var(--sp-5) 0 var(--sp-2)}.profile-fieldset{border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4) var(--sp-4);margin-top:var(--sp-3)}.profile-fieldset legend{padding:0 var(--sp-2);color:var(--ink-3);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em}.profile-fieldset label{display:block;margin-bottom:var(--sp-2);font-size:var(--t-sm);color:var(--ink-2)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.form-actions{display:flex;gap:var(--sp-4);align-items:center;margin-top:var(--sp-3);flex-wrap:wrap}@media (max-width: 600px){.grid-3,.grid-2{grid-template-columns:1fr}}.staging-title{font-size:var(--t-lg);margin:var(--sp-6) 0 var(--sp-3);color:var(--ink-2);font-weight:600}.contact-notes{display:block;margin:var(--sp-4) 0;color:var(--ink-3);font-size:var(--t-sm)}.qty-input{width:4.5rem;min-height:0;padding:.35rem .4rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4);margin-top:var(--sp-5)}.project-card{display:flex;flex-direction:column;gap:var(--sp-1_5);padding:var(--sp-4) var(--sp-5);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);text-decoration:none;color:var(--ink);position:relative;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.project-card:hover{border-color:var(--hairline-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.project-insignia,.project-detail-insignia{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.project-detail-insignia{font-size:var(--t-sm);margin-bottom:var(--sp-1)}.project-name{font-size:var(--t-md);font-weight:600}.project-meta{display:flex;justify-content:space-between;font-size:var(--t-xs);color:var(--ink-3);margin-top:auto}.project-archive{position:absolute;top:var(--sp-2);right:var(--sp-3);font-size:var(--t-sm);opacity:0;transition:opacity var(--dur-1) var(--ease)}.project-card:hover .project-archive{opacity:1}.client-detail{display:flex;flex-direction:column;gap:var(--sp-5)}.client-detail-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.client-detail-head h1{margin:0}.client-detail-meta{display:flex;gap:var(--sp-6);flex-wrap:wrap;margin-top:var(--sp-2);color:var(--ink-3);font-size:var(--t-ui)}.detail-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.detail-row input{width:auto}.detail-label{color:var(--ink-3);font-size:var(--t-sm);min-width:7rem}.reset-link-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}.reset-link-row input{flex:1;min-width:16rem;font-size:var(--t-sm);background:var(--off-paper)}.placeholder-thread{display:flex;flex-direction:column;gap:var(--sp-3);max-width:480px;margin:var(--sp-5) auto 0}.placeholder-message{display:flex;flex-direction:column;gap:.2rem}.placeholder-message.me{align-items:flex-end}.placeholder-meta{font-size:var(--t-2xs);color:var(--ink-4)}.placeholder-bubble{padding:var(--sp-2) var(--sp-3);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);max-width:80%;font-size:var(--t-ui)}.placeholder-message.me .placeholder-bubble{background:var(--ink);color:var(--bg);border-color:var(--ink)}.kanban-board{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:var(--sp-3);align-items:flex-start}.kanban-column{flex:0 0 244px;width:244px;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:calc(100vh - 230px)}.kanban-col-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--hairline)}.kanban-col-name{font-weight:600;font-size:var(--t-sm)}.kanban-col-count{font-size:var(--t-xs);color:var(--ink-3);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-full);padding:.05rem .5rem;font-variant-numeric:tabular-nums}.kanban-col-body{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);overflow-y:auto}.kanban-empty{text-align:center;margin:var(--sp-2) 0;font-size:var(--t-sm);color:var(--ink-3)}.kanban-card{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1_5);box-shadow:var(--shadow-xs)}.kanban-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:var(--t-xs);color:var(--ink-3)}.kanban-card-id{font-family:var(--font-mono);letter-spacing:.02em}.kanban-card-title{font-size:var(--t-ui);font-weight:500;line-height:1.3}.kanban-card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.kanban-card-since{font-size:var(--t-2xs);color:var(--ink-3)}.kanban-card-move{width:100%;margin-top:.15rem;min-height:0;padding:.3rem .4rem;font-size:var(--t-sm)}.chat-layout{display:flex;gap:var(--sp-5);align-items:stretch;min-height:28rem}.chat-channels{flex:0 0 220px;display:flex;flex-direction:column;gap:2px}.chat-channel-btn{font:inherit;text-align:left;padding:var(--sp-2) var(--sp-3);border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.chat-channel-btn:hover{background:var(--subtle)}.chat-channel-btn.active{background:var(--paper);border-color:var(--hairline);font-weight:600;box-shadow:var(--shadow-xs)}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.chat-messages{flex:1;overflow-y:auto;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.chat-msg{display:flex;flex-direction:column;gap:.1rem}.chat-msg-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--t-xs);color:var(--ink-3)}.chat-msg-author{font-weight:600;color:var(--ink)}.chat-msg-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--t-base)}.chat-msg-delete{visibility:hidden}.chat-msg:hover .chat-msg-delete,.chat-msg-delete:focus-visible{visibility:visible}.chat-msg.pending{opacity:.55}.chat-composer{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);align-items:flex-end}.chat-composer textarea{flex:1;resize:none}.tab-drag{display:inline-flex;cursor:grab}.tab-drag>.tab-button{cursor:grab}.tab-drag.dragging{opacity:.55}.tab-drag.dragging,.tab-drag.dragging>.tab-button{cursor:grabbing}.tab-drag.drop-before{box-shadow:inset 2px 0 0 var(--brand)}.tab-drag.drop-after{box-shadow:inset -2px 0 0 var(--brand)}.order-type-engineering{color:var(--success);border-color:var(--success)}.order-type-manufacturing{color:var(--warning);border-color:var(--warning)}.order-detail-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}.inv-thumb{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--off-paper);font-size:.95rem;line-height:1}.inv-thumb-empty{border-style:dashed;color:var(--ink-3);font-size:var(--t-xs)}.inv-qty-controls{display:inline-flex;gap:var(--sp-1);margin-left:var(--sp-2);vertical-align:middle}.inv-qty-btn{width:1.5rem;height:1.5rem;min-height:0;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;line-height:1}.inv-photo-pane{display:flex;gap:var(--sp-4);align-items:flex-start;margin:var(--sp-3) 0 var(--sp-4)}.inv-photo{max-width:240px;max-height:180px;object-fit:contain;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--off-paper)}.inv-photo-placeholder{width:120px;height:90px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--hairline);border-radius:var(--radius);background:var(--off-paper);color:var(--ink-3);font-size:var(--t-sm)}.inv-photo-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.mold-shots{margin-top:var(--sp-5)}.mold-shots h3{margin-bottom:var(--sp-2)}.mold-shots-head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}.mold-shots-head .btn{margin-left:auto}.mold-shots-count{font-size:1.6rem;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.shot-history{list-style:none;padding:0;margin:var(--sp-3) 0 0}.shot-history li{border-top:1px solid var(--hairline);padding:var(--sp-2) 0;font-size:var(--t-ui)}.shot-notes{font-size:var(--t-sm);margin-top:.15rem;color:var(--ink-3)}.time-employee-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.time-employee-row label{color:var(--ink-3);font-size:var(--t-ui)}.time-employee-row select{width:auto;min-width:16rem}.time-upsert-note{font-size:var(--t-sm);margin:var(--sp-3) 0 0;color:var(--ink-3)}.time-range{display:flex;align-items:center;gap:var(--sp-3)}.time-range label{display:flex;align-items:center;gap:var(--sp-1_5);color:var(--ink-3);font-size:var(--t-sm)}.time-range input{width:auto;font-size:var(--t-ui)}.time-trace{font-size:var(--t-xs);color:var(--ink-3);white-space:nowrap}.time-actions{white-space:nowrap}.vault-section{margin:var(--sp-4) 0}.vault-section summary{cursor:pointer;font-weight:600}.vault-mine{border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);background:var(--off-paper)}.vault-mine-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.vault-explorer{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--paper);margin:var(--sp-4) 0;display:flex;flex-direction:column;min-height:60vh;box-shadow:var(--shadow-xs)}.vault-topbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,440px) auto;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--hairline);background:var(--off-paper);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.vault-topbar-left{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.vault-back{padding:.15rem .6rem;min-height:0;font-size:1rem;line-height:1.3;flex:none}.vault-crumbs{display:flex;align-items:center;gap:.15rem;min-width:0;overflow:hidden;white-space:nowrap}.vault-crumb{display:inline-flex;align-items:center;gap:.15rem}.vault-crumb-sep{color:var(--ink-3);padding:0 .1rem}.vault-crumb-here{font-weight:600}.vault-topbar-center{display:flex;justify-content:center}.vault-search{width:100%;max-width:440px;padding:.35rem .8rem;border-radius:var(--radius-full)}.vault-topbar-right{display:flex;align-items:center;gap:var(--sp-2);justify-content:flex-end}.vault-statusbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-1_5) var(--sp-3);border-bottom:1px solid var(--hairline);font-size:var(--t-sm);color:var(--ink-2)}.vault-statusbar-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.vault-body{display:flex;align-items:stretch;flex:1;min-height:0}.vault-listing{flex:1;min-width:0;padding:var(--sp-1_5) var(--sp-3) var(--sp-3);overflow:auto}.vault-pad{padding:var(--sp-1)}.vault-group-head{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;margin:var(--sp-2) 0 var(--sp-1);color:var(--ink-3)}.vault-node-row{display:flex;align-items:center;gap:.45rem;padding:.3rem .4rem;cursor:pointer;min-height:1.9rem;border-bottom:1px solid var(--subtle)}.vault-node-row:hover{background:var(--subtle)}.vault-file-row{cursor:default}.vault-toggle{width:1rem;text-align:center;-webkit-user-select:none;user-select:none;color:var(--ink-3);flex:none}.vault-folder-icon{flex:none}.vault-file-icon{flex:none;color:var(--ink-3)}.vault-node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vault-client-row .vault-node-label{font-weight:600}.vault-badge{background:var(--subtle);border-radius:var(--radius-sm);padding:0 .3rem;font-size:var(--t-xs);color:var(--ink-2);flex:none}.vault-count{font-size:var(--t-xs);color:var(--ink-3);flex:none}.vault-file-name{background:none;border:0;padding:0;font:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vault-file-name:hover{color:var(--brand);text-decoration:underline}.vault-rev-badge{background:var(--success-soft);color:var(--success);border-radius:var(--radius-sm);padding:0 .3rem;font-size:var(--t-2xs);font-weight:600;flex:none}.vault-size{font-size:var(--t-xs);color:var(--ink-3);flex:none;margin-left:auto;font-variant-numeric:tabular-nums}.vault-lock{font-size:var(--t-xs);color:var(--warning);flex:none;white-space:nowrap}.vault-lock-mine{color:var(--success)}.vault-empty{font-size:var(--t-sm);cursor:default;color:var(--ink-3)}.vault-detail{width:340px;flex:none;border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);background:var(--paper);position:sticky;top:var(--sp-4);max-height:calc(100vh - 2rem);overflow:auto}.vault-detail-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.vault-detail-header h3{margin:0 0 var(--sp-2);overflow-wrap:anywhere}.vault-detail-meta{display:grid;grid-template-columns:auto 1fr;gap:.2rem var(--sp-3);font-size:var(--t-sm);margin:0 0 var(--sp-3)}.vault-detail-meta dt{color:var(--ink-3)}.vault-detail-meta dd{margin:0;overflow-wrap:anywhere}.vault-history{margin-top:var(--sp-2)}.vault-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklch,var(--ink) 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.vault-modal{background:var(--paper);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);width:min(760px,92vw);max-height:84vh;overflow:auto;box-shadow:var(--shadow-pop)}.vault-checkin-controls{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3)}.vault-checkin-controls label{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.vault-desktop p{margin:var(--sp-2) 0}.vault-desktop-steps{margin:var(--sp-1) 0 var(--sp-3);padding-left:1.4rem;font-size:var(--t-ui)}.vault-desktop-steps li{margin:.15rem 0}.vault-desktop code{overflow-wrap:anywhere}.vault-checksum{margin-top:var(--sp-2)}.doc-attach{border-radius:var(--radius);padding:var(--sp-1_5)}.doc-attach.drag-over{outline:2px dashed var(--brand);outline-offset:2px;background:var(--brand-soft)}.roles-page{display:flex;flex-direction:column;gap:var(--sp-5)}.roles-list{display:flex;flex-direction:column;gap:var(--sp-3)}.role-row{padding:var(--sp-4) var(--sp-5);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--sp-2);box-shadow:var(--shadow-xs)}.role-row-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4)}.role-row-head h3{margin:0;font-size:var(--t-lg);display:flex;align-items:center;gap:var(--sp-2)}.role-row-head p{margin:.15rem 0 0;font-size:var(--t-ui);color:var(--ink-3)}.role-row-actions{display:flex;gap:var(--sp-3)}.role-archive-btn:disabled{opacity:.4;cursor:not-allowed}.role-row-meta{display:flex;gap:var(--sp-2);font-size:var(--t-sm)}.role-row-tabs{display:flex;flex-wrap:wrap;gap:.35rem}.role-tab-pill{font-size:var(--t-2xs)}.role-starter{font-size:var(--t-2xs);font-weight:500}.role-form{display:flex;flex-direction:column;gap:var(--sp-4)}.role-form h2{margin:0;font-size:var(--t-xl)}.role-form h3{margin:0;font-size:var(--t-ui);font-weight:600}.role-form-field{display:flex;flex-direction:column;gap:var(--sp-1_5)}.role-form-field span{font-size:var(--t-sm);color:var(--ink-2)}.role-form-matrix{display:flex;flex-direction:column;gap:var(--sp-4)}.role-form-module{margin:0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--hairline);border-radius:var(--radius)}.role-form-module legend{padding:0 .4rem;font-weight:600;font-size:var(--t-sm);text-transform:capitalize}.role-form-perms{display:flex;flex-direction:column;gap:var(--sp-1_5);padding-top:.35rem}.role-form-perm{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--t-ui);cursor:pointer}.role-form-perm input[type=checkbox]{margin-top:.25rem}.role-form-perm code{font-size:var(--t-sm)}.role-form-perm-desc{display:block;font-size:var(--t-sm);margin-top:.1rem;color:var(--ink-3)}.role-form-preview{padding:var(--sp-3) var(--sp-4);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-2)}.card.info{background:var(--success-soft);border-color:color-mix(in oklch,var(--success) 30%,transparent);color:var(--success)}.viewer-block{margin-top:var(--sp-6);padding:var(--sp-4);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.viewer-block h2{font-size:var(--t-md);font-weight:500;margin-bottom:var(--sp-3);color:var(--ink-2)}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--sp-5);align-items:start}@media (max-width: 900px){.viewer-layout{grid-template-columns:1fr}}.mesh-viewer{width:100%}.mesh-canvas{width:100%;background:var(--off-paper);border-radius:var(--radius);overflow:hidden}.mesh-error{color:var(--danger);font-size:var(--t-ui);margin-top:var(--sp-2);min-height:1.2em}.mesh-viewer-toolbar{display:flex;gap:var(--sp-4);align-items:center;margin-bottom:var(--sp-2);font-size:var(--t-ui)}.mesh-viewer-checkbox{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-3)}.mesh-metadata{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);font-size:var(--t-sm)}.mesh-metadata h3{font-size:var(--t-ui);font-weight:500;margin:0 0 var(--sp-2);color:var(--ink-2)}.mesh-metadata h4{font-size:var(--t-xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin:var(--sp-3) 0 var(--sp-1)}.mesh-metadata section+section{border-top:1px solid var(--hairline);padding-top:var(--sp-2)}.mesh-metadata-table{width:100%;border-collapse:collapse}.mesh-metadata-table th{text-align:left;font-weight:500;color:var(--ink-3);padding:.15rem .5rem .15rem 0;width:4.5rem}.mesh-metadata-table td{padding:.15rem .5rem .15rem 0;font-variant-numeric:tabular-nums}.mesh-metadata-table td.muted{color:var(--ink-3)}.mesh-metadata-warning{font-size:var(--t-sm);color:var(--warning);background:var(--warning-soft);padding:.4rem .6rem;border-radius:var(--radius);margin:0 0 var(--sp-2)}.pdf-viewer{width:100%}.pdf-viewer-toolbar{display:flex;gap:var(--sp-3);align-items:center;font-size:var(--t-ui);padding:.35rem .6rem;background:var(--off-paper);border-radius:var(--radius);margin-bottom:var(--sp-2)}.pdf-viewer-spacer{flex:1}.pdf-viewer-canvas-wrap{overflow:auto;background:#3a3d40;border-radius:var(--radius);display:flex;justify-content:center;padding:var(--sp-2)}.pdf-viewer-canvas-wrap canvas{box-shadow:var(--shadow-lg);background:#fff}.image-viewer{background:var(--off-paper);border-radius:var(--radius);padding:var(--sp-2);display:flex;justify-content:center}.image-viewer img{border-radius:calc(var(--radius) - 2px)}.download-only-viewer{background:var(--off-paper);border:1px dashed var(--hairline-strong);border-radius:var(--radius);padding:var(--sp-6);text-align:center}.download-only-viewer .btn{margin-top:var(--sp-2)}.dxf-viewer{position:relative}.dxf-loading{position:absolute;top:var(--sp-2);right:var(--sp-3);background:color-mix(in oklch,var(--paper) 85%,transparent);padding:.15rem .5rem;border-radius:var(--radius)}.files-panel{margin-top:var(--sp-6)}.files-page{display:flex;flex-direction:column;gap:var(--sp-5)}.files-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.files-header h1{margin:var(--sp-1) 0 0}.files-header-titles{display:flex;flex-direction:column;gap:.15rem}.files-toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:end;padding:var(--sp-4);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);margin-bottom:var(--sp-5)}.files-toolbar label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--t-sm);color:var(--ink-3)}.files-toolbar select{width:auto}.folder-section{margin-bottom:var(--sp-6)}.folder-section-title{font-size:var(--t-ui);font-weight:600;color:var(--ink);margin:0 0 var(--sp-2);padding-bottom:.35rem;border-bottom:1px solid var(--hairline)}.upload-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-left:auto}.upload-button input[hidden]{display:none}.files-view-toggle{display:inline-flex;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;background:var(--paper)}.files-view-toggle-btn{font:inherit;background:transparent;border:0;padding:.45rem .9rem;color:var(--ink-2);cursor:pointer;border-right:1px solid var(--hairline)}.files-view-toggle-btn:last-child{border-right:0}.files-view-toggle-btn.active{background:var(--off-paper);color:var(--ink);font-weight:600}.files-view-toggle-btn:disabled{color:var(--ink-4);cursor:not-allowed}.files-filters{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4);background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.files-search{flex:1 1 220px;min-width:200px}.files-chip-select{width:auto}.files-checkbox-label{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--t-ui);color:var(--ink-2);cursor:pointer}.files-flat{display:flex;flex-direction:column;gap:var(--sp-4)}.files-flat-count{font-size:var(--t-sm);color:var(--ink-3)}.files-table-wrap{overflow-x:auto}.files-table{width:100%;border-collapse:collapse;font-size:var(--t-base)}.files-table th,.files-table td{text-align:left;padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--hairline);vertical-align:middle}.files-table th{font-weight:600;color:var(--ink-2);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em}.files-table tr:hover td{background:var(--off-paper)}.files-table-row{cursor:pointer}.files-table-row.selected td{background:var(--brand-soft)}.files-cell-filename{font-weight:500}.files-pills{display:inline-flex;flex-wrap:wrap;gap:.35rem}.files-preview-pane{border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);background:var(--paper)}.files-preview-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-3)}.files-preview-header h3{font-size:var(--t-md);margin:0;word-break:break-all}.files-preview-close{background:none;border:0;color:var(--ink-3);cursor:pointer;font-size:1.1rem;padding:.1rem .5rem}.files-meta{display:grid;grid-template-columns:max-content 1fr;gap:.35rem var(--sp-4);font-size:var(--t-ui);margin:0 0 var(--sp-3)}.files-meta dt{color:var(--ink-3)}.files-meta dd{margin:0}.files-preview-stub{font-size:var(--t-sm);border-top:1px dashed var(--hairline);padding-top:var(--sp-2)}
