:root{--font-sans: "IBM Plex Sans", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "Consolas", monospace;--ink-strong: #172133;--ink: #25334a;--ink-soft: #596982;--ink-faint: #7b8aa0;--canvas: #f3ede1;--canvas-deep: #e5dbc9;--canvas-glow-1: rgba(15, 106, 131, .14);--canvas-glow-2: rgba(183, 110, 37, .11);--surface: rgba(255, 251, 245, .74);--surface-strong: rgba(255, 250, 242, .92);--surface-soft: rgba(250, 243, 233, .9);--surface-inset: rgba(239, 230, 217, .82);--line-soft: rgba(29, 49, 84, .08);--line: rgba(29, 49, 84, .14);--line-strong: rgba(29, 49, 84, .24);--signal-good: #2f7a61;--signal-bad: #b34d4d;--signal-warn: #a9701f;--signal-neutral: #4c6386;--signal-good-wash: rgba(47, 122, 97, .14);--signal-bad-wash: rgba(179, 77, 77, .14);--signal-warn-wash: rgba(169, 112, 31, .14);--signal-neutral-wash: rgba(76, 99, 134, .14);--accent: #0f6a83;--accent-deep: #0c4f62;--accent-soft: #2d88a1;--accent-wash: rgba(15, 106, 131, .14);--accent-wash-strong: rgba(15, 106, 131, .22);--shadow-sm: 0 10px 28px rgba(39, 42, 71, .08);--shadow: 0 22px 58px rgba(39, 42, 71, .14);--radius-2xl: 32px;--radius-xl: 24px;--radius-lg: 18px;--radius-md: 14px;--radius-sm: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px}:root[data-theme=dark]{--ink-strong: #edf3ff;--ink: #d0d9ea;--ink-soft: #9fb0cb;--ink-faint: #7383a0;--canvas: #0d1421;--canvas-deep: #121c2d;--canvas-glow-1: rgba(53, 126, 156, .2);--canvas-glow-2: rgba(154, 104, 44, .18);--surface: rgba(16, 24, 39, .82);--surface-strong: rgba(19, 29, 47, .96);--surface-soft: rgba(24, 35, 57, .92);--surface-inset: rgba(10, 17, 30, .86);--line-soft: rgba(163, 181, 220, .07);--line: rgba(163, 181, 220, .14);--line-strong: rgba(163, 181, 220, .24);--signal-good: #68d0a1;--signal-bad: #ff8e87;--signal-warn: #efb35d;--signal-neutral: #8fb5ff;--signal-good-wash: rgba(104, 208, 161, .16);--signal-bad-wash: rgba(255, 142, 135, .16);--signal-warn-wash: rgba(239, 179, 93, .16);--signal-neutral-wash: rgba(143, 181, 255, .16);--accent: #57bdd8;--accent-deep: #9fd9ea;--accent-soft: #388aa0;--accent-wash: rgba(87, 189, 216, .14);--accent-wash-strong: rgba(87, 189, 216, .2);--shadow-sm: 0 12px 28px rgba(0, 0, 0, .28);--shadow: 0 28px 68px rgba(0, 0, 0, .34)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--ink-strong);background:radial-gradient(circle at top right,var(--canvas-glow-1),transparent 24%),radial-gradient(circle at left center,var(--canvas-glow-2),transparent 20%),linear-gradient(180deg,var(--canvas) 0%,var(--canvas-deep) 100%);transition:background .22s ease,color .22s ease;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:24px 24px;opacity:.24}button,input,textarea,select{font:inherit}button{appearance:none;-webkit-appearance:none}.app-shell{width:min(100%,1600px);margin:0 auto}.app-card{border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow);backdrop-filter:blur(18px)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--accent-deep)}.app-button{min-height:46px;border:1px solid transparent;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;font-weight:700;padding:0 16px;cursor:pointer;box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 16%,transparent);transition:transform .16s ease,border-color .16s ease,background .16s ease,opacity .16s ease,box-shadow .16s ease,color .16s ease}button.app-button,label.app-button{appearance:none!important;-webkit-appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:0 16px!important;border-radius:14px!important;border:1px solid transparent!important;background:linear-gradient(135deg,var(--accent),var(--accent-deep))!important;color:#fff!important;box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 16%,transparent)!important}.app-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 26px color-mix(in srgb,var(--accent) 22%,transparent)}.app-button:active:not(:disabled){transform:translateY(0);box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 18%,transparent)}.app-button:disabled{opacity:.6;cursor:progress;box-shadow:none}.app-button:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 42%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent),0 14px 26px color-mix(in srgb,var(--accent) 18%,transparent)}.app-button.secondary{background:var(--accent-wash);color:var(--accent-deep);border-color:var(--accent-wash-strong);box-shadow:none}button.app-button.secondary,label.app-button.secondary{background:var(--accent-wash)!important;color:var(--accent-deep)!important;border-color:var(--accent-wash-strong)!important;box-shadow:none!important}.app-button.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--accent-wash) 72%,var(--surface-soft));border-color:color-mix(in srgb,var(--accent) 24%,transparent)}.app-button.ghost{background:transparent;color:var(--ink-soft);border-color:var(--line);box-shadow:none}button.app-button.ghost,label.app-button.ghost{background:transparent!important;color:var(--ink-soft)!important;border-color:var(--line)!important;box-shadow:none!important}.app-button.ghost:hover:not(:disabled){background:var(--surface-soft);border-color:var(--line-strong);color:var(--ink-strong)}.app-button.tonal{background:var(--surface-soft);color:var(--ink-strong);border-color:var(--line);box-shadow:none}button.app-button.tonal,label.app-button.tonal{background:var(--surface-soft)!important;color:var(--ink-strong)!important;border-color:var(--line)!important;box-shadow:none!important}.app-button.tonal:hover:not(:disabled){background:color-mix(in srgb,var(--surface-soft) 82%,var(--accent-wash));border-color:var(--line-strong)}.button-content{display:inline-flex;align-items:center;justify-content:center;gap:10px}button.tab-button{appearance:none!important;-webkit-appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;padding:0 14px!important;border-radius:999px!important}button.dossie-hit{appearance:none!important;-webkit-appearance:none!important}.button-spinner{width:14px;height:14px;border-radius:999px;border:2px solid currentColor;border-right-color:transparent;animation:app-spin .72s linear infinite}.chip,.status-pill{display:inline-flex;align-items:center;gap:8px;min-height:34px;border-radius:999px;border:1px solid var(--line);padding:0 12px;font-size:13px;color:var(--ink-soft);background:var(--surface-soft);max-width:100%}.status-pill.is-good{color:var(--signal-good);border-color:color-mix(in srgb,var(--signal-good) 28%,transparent);background:var(--signal-good-wash)}.status-pill.is-bad{color:var(--signal-bad);border-color:color-mix(in srgb,var(--signal-bad) 28%,transparent);background:var(--signal-bad-wash)}.status-pill.is-warn{color:var(--signal-warn);border-color:color-mix(in srgb,var(--signal-warn) 28%,transparent);background:var(--signal-warn-wash)}.status-pill.is-neutral{color:var(--signal-neutral);border-color:color-mix(in srgb,var(--signal-neutral) 28%,transparent);background:var(--signal-neutral-wash)}.status-icon{width:18px;height:18px;border-radius:999px;display:inline-grid;place-items:center;background:currentColor;color:var(--surface-strong);font-size:11px;font-weight:700;flex:0 0 auto}.field{display:grid;gap:8px}.field-label{color:var(--ink-soft);font-size:13px;font-weight:600}.field-control{width:100%;min-height:48px;border-radius:14px;border:1px solid var(--line);background:var(--surface-inset);color:var(--ink-strong);padding:0 14px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}textarea.field-control{min-height:220px;padding:14px;resize:vertical;font-family:var(--font-mono);font-size:13px;line-height:1.6}.field-control:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.content-scroll{max-width:100%;overflow:auto}.mono,code,pre{font-family:var(--font-mono)}a,button,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}@keyframes app-spin{to{transform:rotate(360deg)}}@media (max-width: 720px){.app-shell{width:100%}.app-button,.chip,.status-pill{max-width:100%}}.mono{font-family:var(--font-mono)}
