:root{--palette-paper-0:#fdfdfb;--palette-paper-50:#f6f7f2;--palette-paper-100:#eef0ea;--palette-paper-200:#e6e8e0;--palette-paper-300:#d3d2c6;--palette-paper-400:#c2c1b2;--palette-ink-400:#8a8770;--palette-ink-500:#647380;--palette-ink-600:#4a5b67;--palette-ink-800:#22333f;--palette-ink-900:#152431;--palette-green-50:#e2ebe4;--palette-green-100:#cfdcd2;--palette-green-600:#2f6b5b;--palette-green-700:#255547;--palette-green-900:#17342c;--palette-amber-50:#f2e7d5;--palette-amber-100:#e6d4b8;--palette-amber-600:#a9702c;--palette-amber-700:#855524;--palette-danger-50:#f4e2de;--palette-danger-100:#e8c8c1;--palette-danger-600:#a33f2e;--palette-danger-700:#833125;--palette-info-50:#e2e8ed;--palette-info-100:#c9d5de;--palette-info-600:#3c6079;--palette-info-700:#2f4c60;--color-bg:var(--palette-paper-100);--color-bg-elevated:var(--palette-paper-50);--color-bg-muted:var(--palette-paper-200);--color-bg-subtle:var(--palette-green-50);--color-bg-field:var(--palette-paper-0);--color-text:var(--palette-ink-900);--color-text-secondary:var(--palette-ink-600);--color-text-muted:var(--palette-ink-500);--color-text-dim:var(--palette-ink-400);--color-text-inverse:var(--palette-paper-50);--color-border:var(--palette-paper-300);--color-border-subtle:var(--palette-paper-200);--color-border-strong:var(--palette-paper-400);--color-border-focus:var(--palette-green-600);--color-primary:var(--palette-green-600);--color-primary-hover:var(--palette-green-700);--color-primary-subtle:var(--palette-green-50);--color-primary-ring:var(--palette-green-100);--color-primary-deep:var(--palette-green-900);--color-action:var(--palette-ink-900);--color-action-hover:var(--palette-green-600);--color-action-text:var(--palette-paper-50);--color-surface-ink:var(--palette-ink-900);--color-surface-ink-mid:var(--palette-ink-800);--color-success:var(--palette-green-600);--color-success-bg:var(--palette-green-50);--color-success-border:var(--palette-green-100);--color-success-strong:var(--palette-green-700);--color-warning:var(--palette-amber-600);--color-warning-bg:var(--palette-amber-50);--color-warning-border:var(--palette-amber-100);--color-warning-strong:var(--palette-amber-700);--color-danger:var(--palette-danger-600);--color-danger-bg:var(--palette-danger-50);--color-danger-border:var(--palette-danger-100);--color-danger-strong:var(--palette-danger-700);--color-info:var(--palette-info-600);--color-info-bg:var(--palette-info-50);--color-info-border:var(--palette-info-100);--color-info-strong:var(--palette-info-700);--color-backdrop:#1524316b;--color-scrollbar:var(--palette-paper-400);--color-scrollbar-hover:var(--palette-ink-400);--radius-sm:.125rem;--radius-md:.125rem;--radius-lg:.1875rem;--radius-full:9999px;--shadow-float:0 8px 24px #1524311a;--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.3s;--duration-sidebar:.4s;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-sidebar:cubic-bezier(.4, 0, .2, 1);--ease-drawer:cubic-bezier(.16, 1, .3, 1);--shell-collapse-label-max:11rem;--font-serif:Spectral, Georgia, "Times New Roman", serif;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--label-size:.6875rem;--label-tracking:.08em;--header-height:4rem;--sidebar-width-expanded:15rem;--sidebar-width-collapsed:4rem;--sidebar-width:var(--sidebar-width-expanded);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}*,:before,:after{box-sizing:border-box;margin:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{min-height:100vh;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);font-size:.9375rem;line-height:1.6}#app{min-height:100vh}h1,h2,h3{font-family:var(--font-serif);letter-spacing:-.005em;color:var(--color-text);font-weight:500}h1{font-size:1.5rem;line-height:1.25}h2{font-size:1.25rem;line-height:1.3}h3{font-size:1.0625rem;line-height:1.35}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.label-mono{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-transform:uppercase;font-weight:500}.input{width:100%;height:2.5rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg-field);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-normal) var(--ease-default), box-shadow var(--duration-normal) var(--ease-default);padding:0 .75rem;font-size:.875rem}.input::placeholder{color:var(--color-text-muted)}.input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-ring);outline:none}.input:disabled{color:var(--color-text-muted);background-color:var(--color-bg-muted);cursor:not-allowed}.input-group{position:relative}.input-group__icon{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.input-group__icon svg{width:1rem;height:1rem}.input--with-icon-left{padding-left:2.5rem}.input--with-icon-right{padding-right:2.5rem}.input-group__action{color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-normal) var(--ease-default);background:0 0;border:none;padding:0;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.input-group__action:hover{color:var(--color-text-secondary)}.input-group__action svg{width:1rem;height:1rem}.field{flex-direction:column;gap:.375rem;font-size:.875rem;display:flex}.field__label{color:var(--color-text);font-weight:500}.btn{height:2.5rem;font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-default), border-color var(--duration-normal) var(--ease-default), color var(--duration-normal) var(--ease-default);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.125rem;font-size:.875rem;font-weight:500;line-height:1;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 2px var(--color-bg-elevated), 0 0 0 4px var(--color-primary);outline:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{color:var(--color-action-text);background-color:var(--color-action)}.btn--primary:hover:not(:disabled){background-color:var(--color-action-hover)}.btn--secondary{color:var(--color-text-secondary);background-color:var(--color-bg-elevated);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){color:var(--color-text);background-color:var(--color-bg-muted);border-color:var(--color-border-strong)}.btn--ghost{color:var(--color-text-secondary);background-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--color-text);background-color:var(--color-bg-muted)}.btn--block{width:100%}.btn--lg{height:2.75rem;font-size:.875rem;font-weight:500}.card{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.banner{border-radius:var(--radius-md);border:1px solid #0000;padding:.75rem 1rem;font-size:.875rem}.banner--danger{color:var(--color-danger-strong);background-color:var(--color-danger-bg);border-color:var(--color-danger-border);align-items:flex-start;gap:.625rem;display:flex}.banner__icon{color:var(--color-danger);flex-shrink:0;margin-top:.125rem}.banner__icon svg{width:1rem;height:1rem}.banner--success{color:var(--color-success-strong);background-color:var(--color-success-bg);border-color:var(--color-success-border)}.badge{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-transform:uppercase;white-space:nowrap;border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:.375rem;padding:.1875rem .5rem;font-weight:500;line-height:1.4;display:inline-flex}.badge--neutral{color:var(--color-text-secondary);background-color:var(--color-bg-muted);border-color:var(--color-border)}.badge--success{color:var(--color-success-strong);background-color:var(--color-success-bg);border-color:var(--color-success-border)}.badge--warning{color:var(--color-warning-strong);background-color:var(--color-warning-bg);border-color:var(--color-warning-border)}.badge--danger{color:var(--color-danger-strong);background-color:var(--color-danger-bg);border-color:var(--color-danger-border)}.spinner{border:2px solid color-mix(in srgb, var(--color-action-text), transparent 65%);border-top-color:var(--color-action-text);border-radius:var(--radius-full);width:1.25rem;height:1.25rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.link{color:var(--color-primary);transition:color var(--duration-normal) var(--ease-default);font-size:.875rem;font-weight:500;text-decoration:none}.link:hover{color:var(--color-primary-hover);text-decoration:underline}.link--muted{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.table-wrapper--bleed{margin-inline:calc(-1 * var(--app-main-padding,1.5rem));border-inline:none;border-radius:0}.table-wrapper--bleed .table__head th:first-child,.table-wrapper--bleed .table__body td:first-child{padding-left:var(--app-main-padding,1.5rem)}.table-wrapper--bleed .table__head th:last-child,.table-wrapper--bleed .table__body td:last-child{padding-right:var(--app-main-padding,1.5rem)}.table{border-collapse:collapse;background-color:var(--color-bg-elevated);width:100%;min-width:56rem;font-size:.875rem}.table__head{background-color:var(--color-bg-muted);border-bottom:1px solid var(--color-border)}.table__head th{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-align:left;text-transform:uppercase;color:var(--color-text-secondary);white-space:nowrap;padding:.625rem 1rem;font-weight:500}.table__body td{vertical-align:top;border-bottom:1px solid var(--color-border-subtle);padding:.875rem 1rem}.table__body tr:last-child td{border-bottom:none}.table__row--interactive{transition:background-color var(--duration-normal) var(--ease-default)}.table__row--interactive:hover{background-color:var(--color-bg-muted)}.table__cell--numeric{text-align:right;font-variant-numeric:tabular-nums}.table__cell--actions{text-align:center;white-space:nowrap;width:4.5rem;padding-left:1.25rem;padding-right:1rem}.table__empty,.table__loading{text-align:center;color:var(--color-text-secondary);padding:2.5rem 1rem}.table-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.table-toolbar__search{flex:16rem;min-width:12rem}.table-toolbar__field{flex:0 11rem;min-width:9rem}.table-toolbar__field--sort{flex:0 10.5rem;min-width:8.5rem}.table-toolbar__actions{flex-shrink:0;margin-left:auto;display:flex}.table-toolbar__checkbox{min-height:2.5rem;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding-inline:.25rem;font-size:.875rem;display:inline-flex}.table-toolbar__checkbox input{width:1rem;height:1rem;accent-color:var(--color-primary)}.pagination{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pagination--dock{margin-top:auto;margin-inline:calc(-1 * var(--app-main-padding,1.5rem));margin-bottom:calc(-1 * var(--app-main-padding,1.5rem));padding:.875rem var(--app-main-padding,1.5rem);background-color:var(--color-bg-elevated);border-top:1px solid var(--color-border)}.pagination__info{font-family:var(--font-mono);color:var(--color-text-secondary);font-size:.75rem}.pagination__actions{align-items:center;gap:.5rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header__title{margin:0 0 .25rem}.page-header__lead{color:var(--color-text-secondary);margin:0;font-size:.9375rem}.page-header__actions{flex-shrink:0;gap:.5rem;display:flex}.modal{z-index:var(--z-modal);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal__backdrop{z-index:0;cursor:pointer;background-color:var(--color-backdrop);border:none;padding:0;position:absolute;inset:0}.modal__panel{z-index:1;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(100%,32rem);max-height:min(90vh,52rem);box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:relative;overflow:hidden}.modal__panel--lg{width:min(100%,44rem)}.modal__header{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1.25rem 1.25rem 0;display:flex}.modal__title{font-family:var(--font-serif);color:var(--color-text);margin:0;font-size:1.125rem;font-weight:500}.modal__close{width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-md);transition:color var(--duration-normal) var(--ease-default);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.5rem;line-height:1;display:flex}.modal__close:hover{color:var(--color-text)}.modal__body{flex:1;min-height:0;padding:1.25rem;overflow-y:auto}.modal__footer{flex-direction:column;gap:.75rem;padding:0 1.25rem 1.25rem;display:flex}.modal__footer-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.modal__hint{color:var(--color-text-muted);margin:0;font-size:.8125rem}.form-section{flex-direction:column;gap:1rem;display:flex}.form-section+.form-section{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.form-section__title{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-dim);margin:0;font-weight:500}.form-section__subtitle{color:var(--color-text-muted);margin:-.5rem 0 0;font-size:.8125rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.form-grid__full{grid-column:1/-1}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.field__error{color:var(--color-danger);margin:0;font-size:.8125rem}.input-group--suffix .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-suffix{height:2.5rem;font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;background-color:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:none;align-items:center;padding:0 .75rem;font-size:.8125rem;display:inline-flex}.input-group--suffix{display:flex}.input-group--suffix .input{flex:1;min-width:0}.success-panel{flex-direction:column;gap:1rem;display:flex}.success-panel__title{font-family:var(--font-serif);color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:500}.success-panel__list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.success-panel__item{flex-direction:column;gap:.375rem;font-size:.875rem;display:flex}.success-panel__label{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-dim);font-weight:500}.success-panel__actions{flex-wrap:wrap;gap:.5rem;display:flex}.link-box{align-items:center;gap:.5rem;display:flex}.link-box__url{min-width:0;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;background-color:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);flex:1;padding:.625rem .75rem;font-size:.8125rem;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.focus-ring:focus-visible{box-shadow:0 0 0 2px var(--color-bg-elevated), 0 0 0 4px var(--color-primary);outline:none}.custom-scrollbar{overscroll-behavior:contain;scroll-behavior:smooth}.custom-scrollbar::-webkit-scrollbar{width:5px}.custom-scrollbar::-webkit-scrollbar-track{background:0 0}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar);border-radius:var(--radius-full);background-clip:content-box;border:1px solid #0000}.custom-scrollbar:hover::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-hover)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.shell-transition-width{transition:grid-template-columns var(--duration-sidebar) var(--ease-sidebar)}.shell-collapse-fade{max-width:var(--shell-collapse-label-max);opacity:1;white-space:nowrap;transition:max-width var(--duration-sidebar) var(--ease-sidebar), opacity calc(var(--duration-sidebar) * .65) var(--ease-sidebar), margin-inline var(--duration-sidebar) var(--ease-sidebar);overflow:hidden}.shell-is-collapsed .shell-collapse-fade{opacity:0;pointer-events:none;max-width:0;margin-inline:0}.shell-collapse-group{opacity:1;min-width:0;max-width:14rem;transition:max-width var(--duration-sidebar) var(--ease-sidebar), opacity calc(var(--duration-sidebar) * .65) var(--ease-sidebar), flex-grow var(--duration-sidebar) var(--ease-sidebar);flex:auto;overflow:hidden}.shell-is-collapsed .shell-collapse-group{opacity:0;pointer-events:none;flex-grow:0;max-width:0}.shell-collapse-padding{transition:padding-inline var(--duration-sidebar) var(--ease-sidebar), gap var(--duration-sidebar) var(--ease-sidebar), justify-content var(--duration-sidebar) var(--ease-sidebar)}.shell-drawer{transition:transform var(--duration-sidebar) var(--ease-drawer)}.shell-backdrop{animation:shell-backdrop-in var(--duration-normal) var(--ease-default)}@keyframes shell-backdrop-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.shell-transition-width,.shell-collapse-fade,.shell-collapse-group,.shell-collapse-padding,.shell-drawer{transition:none}.shell-backdrop{animation:none}}@media (width<=1023px){.shell-is-collapsed .shell-collapse-fade{max-width:var(--shell-collapse-label-max);margin-inline:unset;opacity:1;pointer-events:auto}.shell-is-collapsed .shell-collapse-group{opacity:1;pointer-events:auto;flex-grow:1;max-width:14rem}}
