:root{--diamond-950:oklch(24% 0.055 252);--diamond-900:oklch(32% 0.08 252);--diamond-700:oklch(48% 0.13 252);--diamond-600:oklch(58% 0.16 248);--diamond-500:oklch(67% 0.15 238);--diamond-300:oklch(82% 0.09 230);--diamond-100:oklch(95% 0.025 230);--ice-50:oklch(98.5% 0.008 230);--ink-950:oklch(24% 0.035 245);--ink-700:oklch(39% 0.03 245);--ink-600:oklch(52% 0.025 245);--line-200:oklch(88% 0.018 235);--surface-canvas:var(--ice-50);--surface-panel:oklch(97% 0.012 232);--surface-raised:oklch(99% 0.006 232);--text-primary:var(--ink-950);--text-secondary:var(--ink-600);--text-on-action:oklch(99% 0.005 240);--border-subtle:var(--line-200);--border-emphasis:oklch(82% 0.024 238);--focus-ring:var(--diamond-500);--action-primary:var(--diamond-700);--action-primary-hover:var(--diamond-900);--selection-soft:var(--diamond-100);--selection-strong:var(--diamond-600);--state-ok:oklch(52% 0.12 152);--state-ok-soft:oklch(95.5% 0.03 152);--state-warn:oklch(50% 0.11 75);--state-warn-soft:oklch(96% 0.035 85);--state-danger:oklch(53% 0.14 30);--state-danger-strong:oklch(44% 0.14 30);--state-danger-soft:oklch(95.5% 0.025 25);--state-info:oklch(52% 0.1 245);--state-info-soft:oklch(96% 0.02 240);--s8:64px;--radius-control:10px;--radius-panel:14px;--radius-dialog:18px;--radius-pill:999px;--shadow-raised:0 12px 36px oklch(24% 0.055 252/0.1);--shadow-floating:0 20px 56px oklch(24% 0.055 252/0.16);--z-nav:30;--z-drawer:40;--z-dialog:50;--z-toast:60;--type-display:700 28px/1.15 var(--font-display);--type-h1:700 22px/1.22 var(--font-display);--type-h2:650 18px/1.32 var(--font-display);--type-h3:700 16px/1.35 var(--font);--type-body:450 14px/1.5 var(--font);--type-label:650 13px/1.35 var(--font);--type-meta:500 12px/1.4 var(--font);--motion-fast:140ms;--motion-standard:200ms;--motion-expressive:640ms;--ease-out-productive:cubic-bezier(0.16,1,0.3,1);--ease-out-expressive:cubic-bezier(0.19,1,0.22,1)}.ds-btn:focus-visible,.ds-dialog:focus-visible,.ds-iconbtn:focus-visible,.ds-input:focus-visible,.ds-tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ds-btn,.ds-dialog-close,.ds-iconbtn,.ds-input,.ds-tab{touch-action:manipulation}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:40px;padding:0 var(--s4);border:1px solid transparent;border-radius:var(--radius-control);font:650 14px/1.2 var(--font);cursor:pointer;text-decoration:none;max-width:100%;transition:background-color var(--motion-fast) var(--ease-out-productive),border-color var(--motion-fast) var(--ease-out-productive),transform var(--motion-fast) var(--ease-out-productive)}.ds-btn:active:not(:disabled){transform:translateY(1px)}.ds-btn:disabled{opacity:.55;cursor:not-allowed}.ds-btn--primary{background:var(--action-primary);color:var(--text-on-action)}.ds-btn--primary:hover:not(:disabled){background:var(--action-primary-hover)}.ds-btn--secondary{background:transparent;color:var(--action-primary);border-color:var(--action-primary)}.ds-btn--secondary:hover:not(:disabled){background:var(--selection-soft)}.ds-btn--tertiary{background:transparent;color:var(--action-primary)}.ds-btn--tertiary:hover:not(:disabled){text-decoration:underline}.ds-btn--danger{background:var(--state-danger);color:var(--text-on-action)}.ds-btn--danger:hover:not(:disabled){background:var(--state-danger-strong)}.ds-btn--lg{min-height:44px;padding:0 var(--s5);font-size:15px}.ds-btn--block{display:flex;width:100%}.ds-btn--loading{pointer-events:none}.ds-spinner{width:16px;height:16px;flex:none;border:2px solid;border-right:2px solid transparent;border-radius:var(--radius-pill);animation:ds-spin .7s linear infinite}@keyframes ds-spin{to{transform:rotate(1turn)}}.ds-iconbtn{min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--text-secondary);border-radius:var(--radius-control);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out-productive),transform var(--motion-fast) var(--ease-out-productive)}.ds-iconbtn:hover:not(:disabled){background:var(--surface-panel);color:var(--text-primary)}.ds-iconbtn:active:not(:disabled){transform:translateY(1px)}.ds-iconbtn:disabled{opacity:.55;cursor:not-allowed}.ds-field{display:grid;grid-gap:var(--s1);gap:var(--s1)}.ds-field-label{font:var(--type-label);color:var(--text-primary)}.ds-input{width:100%;min-height:40px;padding:var(--s2) var(--s3);font:var(--type-body);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-emphasis);border-radius:var(--radius-control);transition:border-color var(--motion-fast) var(--ease-out-productive),background-color var(--motion-fast) var(--ease-out-productive)}.ds-input:disabled{background:var(--surface-panel);color:var(--text-secondary);cursor:not-allowed}.ds-input--error{border-color:var(--state-danger)}textarea.ds-input{min-height:88px;resize:vertical}.ds-field-help{font:var(--type-meta);color:var(--text-secondary);margin:0}.ds-field-error{font:var(--type-meta);color:var(--state-danger);margin:0}.ds-overlay{position:fixed;inset:0;z-index:var(--z-dialog);background:oklch(24% .035 245/.45);display:grid;place-items:center}.ds-dialog{display:flex;flex-direction:column;overscroll-behavior:contain;width:min(480px,calc(100% - var(--s6)));max-height:calc(100dvh - var(--s6));overflow:auto;background:var(--surface-raised);border-radius:var(--radius-dialog);box-shadow:var(--shadow-floating)}.ds-dialog--sheet{align-self:end;justify-self:stretch;width:100%;max-width:none;max-height:calc(100dvh - var(--s7));border-radius:var(--radius-dialog) var(--radius-dialog) 0 0;padding-bottom:env(safe-area-inset-bottom,0)}.ds-sheet-grip{flex:none;width:36px;height:4px;margin:var(--s2) auto 0;border-radius:var(--radius-pill);background:var(--border-emphasis)}.ds-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s5) var(--s5) 0}.ds-dialog-title{font:var(--type-h2);color:var(--text-primary);margin:0}.ds-dialog-desc{font:var(--type-body);color:var(--text-secondary);margin:var(--s1) 0 0}.ds-dialog-close{flex:none}.ds-dialog-body{padding:var(--s4) var(--s5);font:var(--type-body);color:var(--text-primary)}.ds-dialog-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s2);padding:0 var(--s5) var(--s5)}.ds-dialog-foot .btn,.ds-dialog-foot .ds-btn{white-space:nowrap}.ds-dialog.admin-audit-dialog{width:min(1040px,calc(100vw - var(--s6)));max-width:1040px;overflow:hidden}.admin-audit-dialog .ds-dialog-body{min-height:0;overflow:auto}.admin-audit-content{min-width:0}.admin-audit-loading{display:grid;justify-items:center;grid-gap:var(--s2);gap:var(--s2);padding:var(--s6);color:var(--text-secondary)}.admin-audit-loading .spinner{width:26px;height:26px;color:var(--action-primary)}.admin-audit-empty{margin:0;padding:var(--s5) 0;color:var(--text-secondary);text-align:center}.admin-audit-table{table-layout:fixed}.admin-audit-col-when{width:17%}.admin-audit-col-action{width:22%}.admin-audit-col-target{width:39%}.admin-audit-col-actor{width:22%}.admin-audit-table td{vertical-align:top;overflow-wrap:anywhere}.admin-audit-table td:first-child{white-space:nowrap}.admin-audit-table .admin-audit-value{display:block;min-width:0;text-align:left}.admin-audit-table .nm{font-weight:650}.admin-audit-table .sub{margin-top:var(--s1);color:var(--text-secondary)}.ds-tabs-wrap{position:relative;min-width:0;max-width:100%}.ds-tabs-scroll{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-mask-image:linear-gradient(90deg,black calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,black calc(100% - 44px),transparent)}.ds-tabs-scroll::-webkit-scrollbar{display:none}.ds-tabs-wrap[data-at-end=true] .ds-tabs-scroll{-webkit-mask-image:none;mask-image:none}.ds-tabs-wrap[data-at-end=true] .ds-tabs-chevron{display:none}.ds-tabs{display:flex;gap:var(--s1);width:max-content;min-width:100%;padding-right:var(--s6);border-bottom:1px solid var(--border-subtle)}.ds-tab{position:relative;display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s3);border:0;color:var(--text-secondary);font:650 14px/1.2 var(--font);white-space:nowrap;cursor:pointer;text-decoration:none;border-radius:var(--radius-control) var(--radius-control) 0 0}.ds-tab,.ds-tab:after{background:transparent;transition:background-color var(--motion-fast) var(--ease-out-productive)}.ds-tab:after{content:"";position:absolute;left:var(--s2);right:var(--s2);bottom:0;height:2px;border-radius:var(--radius-pill)}.ds-tab:hover{color:var(--text-primary)}.ds-tab--active{color:var(--action-primary)}.ds-tab--active:after{background:var(--selection-strong)}.ds-tab-badge{display:inline-grid;place-items:center;min-width:18px;padding:2px 6px;border-radius:var(--radius-pill);background:var(--selection-soft);color:var(--action-primary);font:650 12px/1 var(--font)}.ds-tab--locked{color:var(--text-secondary);opacity:.6;cursor:not-allowed}.ds-tab--locked svg{width:13px;height:13px;margin-left:4px}.ds-tabs-chevron{position:absolute;top:0;right:var(--s1);height:44px;display:grid;place-items:center;color:var(--text-secondary);font-size:14px;pointer-events:none}.ds-tabpanel{padding:var(--s4) 0;font:var(--type-body);color:var(--text-primary)}.ds-toast-region{position:fixed;inset-inline:0;bottom:calc(var(--s4) + env(safe-area-inset-bottom, 0px));z-index:var(--z-toast);display:grid;justify-items:center;grid-gap:var(--s2);gap:var(--s2);padding:0 var(--s4);pointer-events:none}.ds-toast{pointer-events:auto;display:inline-flex;align-items:center;gap:var(--s3);max-width:min(480px,100%);padding:var(--s3) var(--s4);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);box-shadow:var(--shadow-raised);font:var(--type-body);color:var(--text-primary)}.ds-toast-icon{flex:none;display:grid;place-items:center}.ds-toast--ok .ds-toast-icon{color:var(--state-ok)}.ds-toast--err{border-color:var(--state-danger)}.ds-toast--err .ds-toast-icon{color:var(--state-danger)}.ds-toast-action{flex:none}.ds-banner{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);font:var(--type-body)}.ds-banner-icon{flex:none;display:grid;place-items:center;margin-top:1px}.ds-banner-body{flex:1 1;align-self:center}.ds-banner-action{flex:none;margin-left:auto;align-self:center}.ds-banner--info{background:var(--state-info-soft);color:var(--state-info)}.ds-banner--warning{background:var(--state-warn-soft);color:var(--state-warn)}.ds-banner--error{background:var(--state-danger-soft);color:var(--state-danger)}.ds-banner--degraded{background:var(--state-warn-soft);color:var(--state-warn)}.ds-empty{display:grid;justify-items:center;text-align:center;grid-gap:var(--s2);gap:var(--s2);padding:var(--s6) var(--s4)}.ds-empty-illustration{color:var(--text-secondary);margin-bottom:var(--s1)}.ds-empty-title{font:650 16px/1.35 var(--font);color:var(--text-primary);margin:0}.ds-empty-hint{font:450 14px/1.5 var(--font);color:var(--text-secondary);margin:0;max-width:44ch}.ds-empty-action{margin-top:var(--s2)}.ds-pageheader{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4)}.ds-pageheader-eyebrow{font:650 12px/1.3 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 var(--s1)}.ds-pageheader-title{font:var(--type-h1);color:var(--text-primary);margin:0}.ds-pageheader-sub{font:450 14px/1.5 var(--font);color:var(--text-secondary);margin:var(--s1) 0 0}.ds-pageheader-action{flex:none}.ds-skeleton{min-height:14px;background:var(--surface-panel);border-radius:var(--radius-control)}@media (max-width:860px){.ds-btn,.ds-input{min-height:44px}.ds-dialog{align-self:end;justify-self:stretch;max-height:calc(100dvh - var(--s7));border-radius:var(--radius-dialog) var(--radius-dialog) 0 0;padding-bottom:env(safe-area-inset-bottom,0)}.ds-dialog,.ds-dialog.admin-audit-dialog{width:100%;max-width:none}}@media (max-width:600px){.admin-audit-dialog .ds-dialog-head{padding:var(--s4) var(--s4) 0}.admin-audit-dialog .ds-dialog-body{padding:var(--s3) var(--s4)}.admin-audit-dialog .ds-dialog-foot{padding:0 var(--s4) var(--s4)}.admin-audit-table td{align-items:flex-start}.admin-audit-table td:before{flex:0 0 72px}.admin-audit-table .admin-audit-value{flex:1 1;text-align:right}.admin-audit-table .sub{margin-top:0}}