:root {
  --suite-navy: #142737;
  --suite-accent: #bf2238;
  --suite-accent-hover: #a0172b;
  --suite-soft: #fcf0f2;
  --suite-canvas: #f4f6f8;
  --suite-text: #172c3d;
  --suite-muted: #647585;
  --suite-border: #dce3e9;
  --suite-radius: 8px;
  --suite-panel-radius: 12px;
}
html { scrollbar-gutter:stable; }
/* Keep wheel, touch and keyboard scrolling inside an open modal. */
html:has(body.suite-app dialog[open]),
body.suite-app:has(dialog[open]) { overflow:hidden; overscroll-behavior:none; }
.suite-app dialog[open],
.suite-app dialog[open] :is(.suite-dialog-body,.help-body,.detail-body,.dialog-body,.analytics-body,.export-body,.admin-body,.task-form-body) { overscroll-behavior:contain; }
.suite-app dialog::backdrop { touch-action:none; }
.suite-app { margin:0; color:var(--suite-text); background:var(--suite-canvas); font:14px/1.6 "Segoe UI","Microsoft YaHei",Arial,sans-serif; }
.suite-app [hidden] { display:none !important; }
.suite-app *, .suite-app *::before, .suite-app *::after { box-sizing:border-box; }
#suite-nav { position:relative; z-index:40; }
.suite-header { background:var(--suite-navy); border-top:3px solid var(--suite-accent); color:#fff; }
.suite-header-inner { max-width:1360px; min-height:72px; padding:0 32px; margin:auto; display:flex; align-items:center; gap:44px; }
.suite-brand { display:flex; align-items:center; gap:18px; text-decoration:none; color:white; white-space:nowrap; }
.suite-wordmark { font-weight:800; letter-spacing:.08em; font-size:22px; }
.suite-brand-label { border-left:1px solid #486071; padding-left:18px; font-size:14px; font-weight:500; color:#dce7ef; }
.suite-links { display:flex; align-self:stretch; gap:30px; align-items:stretch; }
.suite-links a { display:flex; position:relative; align-items:center; padding:0 3px; text-decoration:none; color:#b8c7d2; font-size:14px; white-space:nowrap; }
.suite-links a:hover { color:#fff; }
.suite-links a[aria-current=page] { color:white; font-weight:650; }
.suite-links a[aria-current=page]::after { content:""; position:absolute; height:3px; bottom:0; left:0; right:0; background:#e05266; }
.suite-copy-label { margin-left:auto; padding:3px 9px; border:1px solid #486071; border-radius:5px; font-size:11px; color:#c4d1da; white-space:nowrap; }
.suite-app button,.suite-app input,.suite-app select,.suite-app textarea { font-family:inherit; }
.suite-app :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #507dba; outline-offset:3px; }
.suite-app :is(button.primary,button.secondary,button.danger,button.export-button,button.clear-filter,.suite-button) {
  display:inline-flex; justify-content:center; align-items:center; gap:7px;
  min-height:40px; padding:8px 16px; border:1px solid #c9d4dd; border-radius:var(--suite-radius);
  background:#fff; color:var(--suite-text); font-size:13px; line-height:1.5; font-weight:600;
  white-space:nowrap; text-decoration:none; cursor:pointer; box-shadow:none;
  transition:background .15s,border-color .15s,color .15s;
}
.suite-app :is(button.secondary,button.export-button,.suite-button):hover { background:#eef2f5; border-color:#aebdca; }
.suite-app :is(button.primary,.suite-button.primary) { background:var(--suite-accent); border-color:var(--suite-accent); color:#fff; font-weight:650; }
.suite-app :is(button.primary,.suite-button.primary):hover { background:var(--suite-accent-hover); border-color:var(--suite-accent-hover); }
.suite-app button.danger { background:white; color:var(--suite-accent); border-color:#df9ca7; }
.suite-app button.danger:hover { background:var(--suite-soft); border-color:var(--suite-accent); }
.suite-app :is(button.compact,.suite-button.compact) { min-height:32px; padding:5px 11px; font-size:12px; }
.suite-app button.text-button { min-height:32px; padding:5px 0; border:0; border-radius:4px; background:transparent; color:var(--suite-accent); font-size:13px; font-weight:600; box-shadow:none; }
.suite-app button.text-button:hover { text-decoration:underline; }
.suite-app button.icon-button { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; min-width:34px; padding:0; border:1px solid #c9d4dd; border-radius:8px; background:white; color:var(--suite-muted); font-size:20px; line-height:1; }
.suite-app button.icon-button:hover { color:var(--suite-text); background:#eef2f5; }
.suite-app button:disabled, .suite-button[aria-disabled=true] { opacity:.55; cursor:not-allowed; }
.suite-app :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea) { border:1px solid #cbd5de; border-radius:8px; background:#fff; color:var(--suite-text); font-size:13px; padding:10px 12px; }
.suite-app :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select) { min-height:43px; }
.suite-app textarea { line-height:1.7; }
.suite-app :is(.panel,.form-panel,.ledger-panel,.filter-panel,.result-card,.model,.summary,.stats) { border-color:var(--suite-border); }
.suite-app :is(.panel,.form-panel,.ledger-panel,.filter-panel,.summary,.stats) { border-radius:var(--suite-panel-radius); }
.suite-app :is(.metric,.stat) { font-family:inherit; }
.suite-app :is(.metric strong,.stat strong) { font-variant-numeric:tabular-nums; font-size:30px; font-weight:650; }
.suite-app dialog { border:1px solid var(--suite-border); border-radius:12px; padding:0; box-shadow:0 24px 70px #14273730; max-width:calc(100vw - 40px); max-height:calc(100dvh - 48px); color:var(--suite-text); }
.suite-app dialog::backdrop { background:rgb(20 39 55 / .42); }
.suite-app :is(.detail-head,.dialog-header) { padding:20px 24px; border-bottom:1px solid var(--suite-border); background:#fff; }
.suite-app :is(.detail-head,.dialog-header) h2 { margin:0; font-size:20px; line-height:1.45; }
.suite-app :is(.detail-foot,.dialog-actions) { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:16px 24px; border-top:1px solid var(--suite-border); background:#fff; }
.suite-app .toast { position:fixed; right:24px; bottom:24px; left:auto; transform:none; z-index:120; max-width:min(480px,calc(100vw - 48px)); padding:12px 18px; border-radius:8px; background:var(--suite-navy); color:white; font-size:13px; box-shadow:0 6px 24px #14273724; }
.suite-app .toast.error { background:#942437; }
.suite-app .toast.error-toast { background:#942437; }
.suite-board .login-screen { top:75px; }
.suite-app :is(.error-banner,.login-error,.field-error,.export-error) { color:#a0172b; }
.suite-app :is(.task-head,thead) { color:#506778; }
.suite-app :is(.task-row,tbody tr):hover { background:#f8fafb; }
.suite-app .suite-preview-note { color:var(--suite-muted); font-size:12px; }
.suite-app:is(.suite-board,.suite-spares) .suite-servicebar,
.suite-app.suite-complaints .suite-servicebar { padding:0; border:0; border-bottom:1px solid var(--suite-border); background:#fff; color:var(--suite-text); box-shadow:none; }
.suite-app:is(.suite-board,.suite-spares) .suite-servicebar .suite-servicebar-inner,
.suite-app.suite-complaints .suite-servicebar .suite-servicebar-inner { width:100%; max-width:1360px; min-height:80px; margin:0 auto; padding:12px 32px; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:24px; }
.suite-app .suite-servicebar .suite-service-heading { display:block; flex:0 0 auto; min-width:0; }
.suite-app .suite-servicebar .suite-service-title { display:block; margin:0; padding:0; font-size:24px; line-height:32px; font-weight:650; letter-spacing:0; color:var(--suite-text); }
.suite-app .suite-servicebar .suite-service-subtitle { display:block; margin:2px 0 0; padding:0; font-size:12px; line-height:18px; font-weight:400; letter-spacing:0; color:var(--suite-muted); }
.suite-app.suite-complaints .suite-servicebar nav { align-self:stretch; margin:-12px 0; }
.suite-app:is(.suite-board,.suite-spares) main,.suite-app.suite-complaints main { padding:24px 32px 48px; }
.suite-app:is(.suite-board,.suite-spares) .workspace-note,.suite-app.suite-complaints .workspace-note { font-size:12px; line-height:18px; margin:0 0 24px; }
.suite-app:is(.suite-board,.suite-spares) .page-heading,.suite-app.suite-complaints .page-heading { margin:0 0 26px; }
.suite-app:is(.suite-board,.suite-spares) .page-heading h2,.suite-app.suite-complaints .page-heading :is(h1,h2) { margin:0 0 6px; font-size:28px; line-height:1.4; font-weight:650; letter-spacing:0; }
.suite-app:is(.suite-board,.suite-spares) .page-heading p,.suite-app.suite-complaints .page-heading p { margin:0; color:var(--suite-muted); font-size:13px; line-height:1.6; }
@media(max-width:1100px) {
  .suite-app:is(.suite-board,.suite-spares) .suite-servicebar .suite-servicebar-inner,
  .suite-app.suite-complaints .suite-servicebar .suite-servicebar-inner { flex-direction:column; align-items:flex-start; gap:12px; }
  .suite-app.suite-complaints .suite-servicebar nav { margin:0 0 -12px; min-height:42px; }
}
@media(max-width:860px) {
  .suite-header-inner { gap:24px; padding:0 22px; }
  .suite-brand-label { display:none; }
  .suite-links { gap:22px; }
}
@media(max-width:560px) {
  .suite-board .login-screen { top:103px; }
  .suite-header-inner { min-height:100px; flex-wrap:wrap; gap:0 18px; padding:12px 18px 0; }
  .suite-wordmark { font-size:19px; }
  .suite-copy-label { order:1; }
  .suite-brand { order:0; }
  .suite-links { order:2; width:100%; min-height:44px; gap:28px; }
  .suite-links a { font-size:13px; }
  .suite-app:is(.suite-board,.suite-spares) .suite-servicebar .suite-servicebar-inner,
  .suite-app.suite-complaints .suite-servicebar .suite-servicebar-inner { padding:12px 18px; }
  .suite-app .suite-servicebar .suite-service-title { font-size:22px; line-height:30px; }
  .suite-app:is(.suite-board,.suite-spares) main,.suite-app.suite-complaints main { padding:20px 18px 36px; }
  .suite-app:is(.suite-board,.suite-spares) .workspace-note,.suite-app.suite-complaints .workspace-note { font-size:11px; flex-wrap:wrap; gap:8px; }
  .suite-app.suite-complaints .workspace-note>span:first-child { display:block; }
  .suite-app:is(.suite-board,.suite-spares) .page-heading h2,.suite-app.suite-complaints .page-heading :is(h1,h2) { font-size:24px; }
  .suite-app dialog { max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); }
  .suite-app :is(.detail-head,.dialog-header,.detail-foot,.dialog-actions) { padding:16px; }
  .suite-app .toast { right:16px; bottom:16px; max-width:calc(100vw - 32px); }
}
@media(prefers-reduced-motion:reduce) { .suite-app * { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
