:root{--color-primary:#0e4a56;--color-primary-soft:#e4eef2;--color-primary-border:#9bb9c4;--color-accent:#f5b454;--color-action:#d97706;--color-action-hover:#b96305;--color-success:#1e6b33;--color-success-soft:#e5f2e7;--color-success-border:#8cbe97;--color-success-hover:#175427;--color-danger:#b3261e;--color-danger-strong:#a02318;--color-danger-soft:#fbe7e5;--color-danger-border:#d98a82;--color-warn:#8a5a00;--color-warn-soft:#fdf3e0;--color-warn-border:#e3bc6e;--color-text:#16181a;--color-text-muted:#5a6268;--color-text-faint:#8a9296;--color-bg:#f3f4f2;--color-surface:#fff;--color-border:#dde1df;--color-border-input:#c9cfcc;--color-row-border:#eef0ef}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:IBM Plex Sans,system-ui,sans-serif;margin:0}a{color:var(--color-primary);text-decoration:none}input,select,textarea{font-family:inherit}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px}.btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:700;gap:6px;height:44px;justify-content:center;padding:0 18px;transition:background .15s ease}.btn--success{background:var(--color-success);color:#fff}.btn--success:hover{background:var(--color-success-hover)}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:#0a3944}.btn--action{background:var(--color-action);color:#fff}.btn--action:hover{background:var(--color-action-hover)}.btn--outline{background:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}.btn--outline:hover{background:var(--color-primary-soft)}.btn--outline-danger{background:transparent;border:2px solid var(--color-danger);color:var(--color-danger)}.btn--outline-danger:hover{background:var(--color-danger-soft)}.btn--disabled,.btn:disabled{background:#e8ece9;border:none;color:var(--color-text-faint);cursor:not-allowed}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}
