.button{min-height:36px;font:inherit;letter-spacing:-.005em;white-space:nowrap;color:var(--text-strong);background:var(--surface);cursor:pointer;transition:background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;display:inline-flex;position:relative}.button--sm{min-height:32px;padding-inline:10px;font-size:13px}.button--lg{min-height:40px;padding-inline:16px}.button__label{align-items:center;gap:6px;display:inline-flex}.button svg{flex:none}.button:focus-visible{box-shadow:var(--focus-ring);outline:0}.button:disabled{opacity:.5;cursor:not-allowed}.button.is-loading .button__label{visibility:hidden}.button__spinner{place-items:center;display:grid;position:absolute;inset:0}.button--primary{color:var(--primary-ink);border-color:var(--primary);background:var(--primary);box-shadow:inset 0 1px #ffffff1f}.button--primary:hover:not(:disabled){border-color:var(--primary-strong);background:var(--primary-strong)}.button--primary:focus-visible{box-shadow:inset 0 1px 0 #ffffff1f, var(--focus-ring)}.button--secondary{border-color:var(--border-strong);background:var(--surface)}.button--secondary:hover:not(:disabled){background:var(--surface-hover)}.button--ghost{color:var(--text-soft);background:0 0}.button--ghost:hover:not(:disabled){color:var(--text-strong);background:var(--surface-hover)}.button--danger{color:#fff;border-color:var(--danger-solid,var(--danger));background:var(--danger-solid,var(--danger))}.button--danger:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger-solid,var(--danger)) 92%, black);background:color-mix(in srgb, var(--danger-solid,var(--danger)) 92%, black)}.button--danger-soft{color:var(--danger);border-color:var(--danger-bg);background:var(--danger-bg)}.button--danger-soft:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger) 18%, var(--danger-bg));background:color-mix(in srgb, var(--danger) 8%, var(--danger-bg))}.icon-button{border:1px solid var(--border-strong);width:36px;height:36px;color:var(--text-soft);background:var(--surface);cursor:pointer;transition:background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);border-radius:8px;flex:none;place-items:center;display:inline-grid}.icon-button--sm{width:32px;height:32px}.icon-button--lg{width:40px;height:40px}.icon-button:hover:not(:disabled){color:var(--text-strong);background:var(--surface-hover)}.icon-button:focus-visible{box-shadow:var(--focus-ring);outline:0}.icon-button:disabled{opacity:.5;cursor:not-allowed}.input,.select,.textarea{border:1px solid var(--border-strong);width:100%;min-height:36px;font:inherit;color:var(--text);background:var(--surface);transition:border-color var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease);border-radius:8px;padding:0 12px;font-size:14px;line-height:1.4}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23636b85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.textarea{resize:vertical;min-height:96px;padding-block:8px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus,.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring);outline:0}.input:disabled,.select:disabled,.textarea:disabled{opacity:.55;cursor:not-allowed;background:var(--surface-subtle)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true],.field--invalid .input,.field--invalid .select,.field--invalid .textarea{border-color:var(--danger)}.field--invalid .input:focus,.field--invalid .select:focus,.field--invalid .textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent)}.field{gap:6px;display:grid}.field__label{color:var(--text-strong);font-size:13px;font-weight:500}.field__hint,.field__error{color:var(--text-soft);font-size:12px;line-height:1.4}.field__error{color:var(--danger)}.form-grid{gap:16px;display:grid}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.badge{border-radius:var(--radius-sm,6px);white-space:nowrap;width:fit-content;min-height:20px;color:var(--text-soft);background:var(--surface-subtle);align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;line-height:1.3;display:inline-flex}.badge__dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge--primary{color:var(--primary-text,var(--primary-strong));background:var(--primary-soft)}.badge--success{color:var(--success);background:var(--success-bg)}.badge--warning{color:var(--warning);background:var(--warning-bg)}.badge--danger{color:var(--danger);background:var(--danger-bg)}.badge--info{color:var(--info);background:var(--info-bg)}.card{border:1px solid var(--border);border-radius:var(--radius-lg,14px);background:var(--surface);box-shadow:var(--shadow-panel);overflow:hidden}.card__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.card__heading{gap:2px;min-width:0;display:grid}.card__header h2{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--text-strong);margin:0;font-size:15px;font-weight:600;line-height:1.25}.card__header p{color:var(--text-soft);margin:0;font-size:13px;line-height:1.45}.card__actions{flex:none;align-items:center;gap:8px;display:flex}.card__body{padding:20px}.card--flush>.card__body{padding:0}.card__body:has(>.data-table:only-child){padding:0}.card__body>.data-table{box-shadow:none;border:0;border-radius:0}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.metric{border:1px solid var(--border);border-radius:var(--radius-lg,14px);background:var(--surface);min-height:104px;box-shadow:var(--shadow-panel);align-content:start;gap:6px;padding:16px 20px;display:grid}.metric__label,.metric>span:first-child{color:var(--text-soft);font-size:12px;font-weight:500}.metric__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.metric strong{letter-spacing:-.02em;color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.1}.metric small{color:var(--text-soft);font-size:12px;line-height:1.4}.metric--primary strong{color:var(--primary-text,var(--primary-strong))}.metric--success strong{color:var(--success)}.metric--warning strong{color:var(--warning)}.metric--danger strong{color:var(--danger)}.metric--info strong{color:var(--info)}.alert{border:1px solid var(--border);border-radius:var(--radius-md,10px);color:var(--text);background:var(--surface-subtle);align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;line-height:1.5;display:flex}.alert__icon{flex:none;margin-top:3px}.alert__content{min-width:0}.alert strong{color:var(--text-strong);margin-bottom:2px;font-size:14px;font-weight:600;display:block}.alert--info{border-color:color-mix(in srgb, var(--info) 25%, var(--border));background:var(--info-bg)}.alert--info .alert__icon{color:var(--info)}.alert--success{border-color:color-mix(in srgb, var(--success) 25%, var(--border));background:var(--success-bg)}.alert--success .alert__icon{color:var(--success)}.alert--warning{border-color:color-mix(in srgb, var(--warning) 25%, var(--border));background:var(--warning-bg)}.alert--warning .alert__icon{color:var(--warning)}.alert--danger{border-color:color-mix(in srgb, var(--danger) 25%, var(--border));background:var(--danger-bg)}.alert--danger .alert__icon{color:var(--danger)}.alert--primary{border-color:color-mix(in srgb, var(--primary) 25%, var(--border));background:var(--primary-soft)}.alert--primary .alert__icon{color:var(--primary-text,var(--primary-strong))}.alert__action{margin-top:10px}.empty{text-align:center;align-content:center;justify-items:center;gap:6px;min-height:240px;padding:48px 24px;display:grid}.empty__icon{border-radius:var(--radius-md,10px);width:40px;height:40px;color:var(--primary-text,var(--primary-strong));background:var(--primary-soft);place-items:center;margin-bottom:8px;display:grid}.empty h3{font-family:var(--font-heading);color:var(--text-strong);margin:0;font-size:16px;font-weight:600;line-height:1.25}.empty p{max-width:44ch;color:var(--text-soft);margin:0;font-size:14px;line-height:1.5}.empty__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:14px;display:flex}.skeleton{gap:10px;display:grid}.skeleton span{background:var(--surface-subtle);height:44px;animation:pulse 1.4s var(--ease) infinite;border-radius:8px}.search-input{border:1px solid var(--border-strong);min-height:36px;color:var(--text-faint);background:var(--surface);transition:border-color var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease);border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:flex}.search-input:hover{border-color:var(--text-faint)}.search-input:focus-within{border-color:var(--primary);box-shadow:var(--focus-ring)}.search-input input{min-width:0;font:inherit;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:14px}.search-input input::placeholder{color:var(--text-faint)}.search-input input::-webkit-search-cancel-button{cursor:pointer}.dialog-backdrop{z-index:100;animation:fade-in var(--motion-base) var(--ease);background:#070b1c8c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--border);border-radius:var(--radius-lg,14px);background:var(--surface-raised);width:min(480px,100%);max-height:min(720px,100dvh - 48px);box-shadow:var(--shadow-lg);animation:rise-in var(--motion-base) var(--ease);flex-direction:column;display:flex}.dialog--wide{width:min(720px,100%)}.dialog__header{flex:none;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 20px 16px;display:flex}.dialog__heading{gap:4px;min-width:0;display:grid}.dialog__header h2{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--text-strong);margin:0;font-size:16px;font-weight:600;line-height:1.25}.dialog__header p{color:var(--text-soft);margin:0;font-size:13px;line-height:1.45}.dialog__close{background:0 0;border-color:#0000}.dialog__body,.drawer__body{flex:auto;min-height:0;padding:4px 20px 20px;overflow:auto}.dialog__footer{border-top:1px solid var(--line);flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.drawer-backdrop{place-items:stretch end;padding:0}.drawer{border-left:1px solid var(--border);background:var(--surface-raised);width:min(480px,100%);height:100dvh;box-shadow:var(--shadow-lg);animation:slide-in var(--motion-base) var(--ease);flex-direction:column;display:flex}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex;position:relative}.switch-row.is-disabled{opacity:.55;cursor:not-allowed}.switch-row__text{gap:2px;min-width:0;display:grid}.switch-row strong{color:var(--text-strong);font-size:14px;font-weight:500}.switch-row small{color:var(--text-soft);font-size:12px;line-height:1.4}.switch-row input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.switch{background:var(--border-strong);width:32px;height:18px;transition:background var(--motion-fast) var(--ease);border-radius:999px;flex:none;position:relative}.switch:after{content:"";width:14px;height:14px;transition:transform var(--motion-fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0f152640}.switch-row input:checked+.switch{background:var(--primary)}.switch-row input:checked+.switch:after{transform:translate(14px)}.switch-row:has(input:focus-visible) .switch{box-shadow:var(--focus-ring)}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.55}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.button,.icon-button,.input,.select,.textarea,.search-input,.switch,.switch:after{transition:none}.dialog-backdrop,.dialog,.drawer,.skeleton span{animation:none}}@media (width<=959px){.button,.button--sm,.button--lg{min-height:40px}.icon-button,.icon-button--sm{width:40px;height:40px}.input,.select,.textarea,.search-input{min-height:40px}.input,.select,.textarea,.search-input input{font-size:16px}.search-input input{align-self:stretch}.textarea{min-height:112px}.switch-row{min-height:44px}.switch{width:40px;height:22px}.switch:after{width:18px;height:18px}.switch-row input:checked+.switch:after{transform:translate(18px)}.alert__action .button,.empty__actions .button{min-height:40px}}@media (width<=680px){.card__header{flex-direction:column;align-items:flex-start;padding:16px}.card__actions{flex-wrap:wrap}.dialog__header{padding-right:12px}.dialog__footer{flex-wrap:wrap}.dialog__footer .button{flex:auto}.drawer{border-left:0;width:100%}.alert{padding:12px}.row-primary strong,.row-primary small,.card__body{overflow-wrap:anywhere}.card__actions{width:100%}.card__actions .button{flex:1}.card__body{padding:16px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-height:92px;padding:14px 16px}.metric strong{font-size:24px}.empty{padding:32px 16px}.dialog-backdrop{place-items:end stretch;padding:0}.dialog,.dialog--wide{border-radius:var(--radius-lg,14px) var(--radius-lg,14px) 0 0;width:100%;max-height:92dvh}.dialog__header{padding:16px 16px 12px}.dialog__body,.drawer__body{padding:4px 16px 16px}.dialog__footer{padding:12px 16px}.drawer{width:100%}}@media (width<=560px){.form-grid--two{grid-template-columns:1fr}}
