:root {
 color-scheme:light;
 --paper:#f5f5fa; --surface:#fff; --ink:#33333b; --muted:#666672;
 --accent:#cf2c27; --accent-hover:#b92420; --brand-red:#e5322d; --accent-soft:#fff0ef;
 --line:#d6d6df; --control-line:#92929e; --positive:#237448; --positive-soft:#eaf6ee;
 --danger:#b42318; --radius:16px; --control-radius:8px; --photo:#3e8b57; --print:#457fc0; --timer:#b8542c;
 font:16px/1.5 Arial,Helvetica,sans-serif; color:var(--ink); background:var(--paper);
}
* { box-sizing:border-box; }
body { margin:0; }
a { color:inherit; text-underline-offset:4px; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button { cursor:pointer; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.skip-link { position:fixed; left:12px; top:-80px; z-index:50; background:var(--ink); color:white; padding:12px 20px; border-radius:8px; }
.skip-link:focus { top:12px; }
.site-header { height:60px; padding:0 32px; display:flex; align-items:center; gap:48px; background:var(--surface); border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:10px; flex:none; font-weight:800; letter-spacing:-.7px; text-decoration:none; font-size:1.25rem; color:#25252d; white-space:nowrap; }
.brand::before { content:""; display:inline-block; width:28px; height:28px; background:url('/assets/favicon.svg') center/contain no-repeat; }
.brand-red { color:var(--accent); }
.site-header nav { display:flex; align-items:center; gap:28px; font-size:.82rem; font-weight:600; }
.site-header nav a { display:inline-flex; align-items:center; min-height:44px; padding:8px 0; text-decoration:none; white-space:nowrap; }
.site-header nav a:hover,.site-header nav a[aria-current=page] { color:var(--accent); }
.site-header nav a[aria-current=page] { box-shadow:inset 0 -2px var(--accent); }
.header-note { margin-left:auto; color:var(--muted); font-size:.78rem; white-space:nowrap; }
.shell { max-width:1280px; margin:auto; padding:36px 32px 64px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(2rem,3.3vw,2.625rem); font-weight:700; line-height:1.2; letter-spacing:-1.1px; margin-bottom:12px; text-wrap:balance; }
h2 { font-size:1.25rem; font-weight:700; letter-spacing:-.3px; margin-bottom:20px; }
h3 { font-size:1rem; font-weight:700; }
.lead { max-width:850px; color:#54545f; font-size:1.125rem; line-height:1.6; margin-bottom:24px; }
.eyebrow { margin:0 0 10px; color:var(--muted); font-size:.8rem; font-weight:600; letter-spacing:0; }
.workspace { display:grid; grid-template-columns:minmax(340px,.85fr) minmax(0,1.3fr); gap:24px; align-items:start; }
.panel { min-width:0; padding:24px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.field { display:flex; flex-direction:column; min-width:0; gap:8px; margin-bottom:18px; }
.field>label,legend { color:var(--ink); font-size:.875rem; font-weight:600; }
.field-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
input:not([type=checkbox]):not([type=radio]),select,textarea { width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid var(--control-line); border-radius:var(--control-radius); color:var(--ink); background:white; transition:border-color .15s; }
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover { border-color:#64646f; }
input::placeholder,textarea::placeholder { color:#73737e; opacity:1; }
input:disabled,select:disabled,textarea:disabled { background:#f2f2f6; color:var(--muted); cursor:not-allowed; }
input[type=checkbox],input[type=radio] { accent-color:var(--accent); width:18px; height:18px; vertical-align:middle; margin-right:8px; }
input[type=file] { font-size:.875rem; }
input[type=file]::file-selector-button { padding:8px 12px; margin-right:8px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--ink); cursor:pointer; }
fieldset { padding:0; margin:0 0 18px; border:0; }
legend { margin-bottom:10px; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:16px 0; }
.button,button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:12px 20px; border:1px solid transparent; border-radius:var(--control-radius); background:var(--accent); color:white; font-weight:700; font-size:.9375rem; text-decoration:none; line-height:1.3; transition:background-color .15s,border-color .15s,box-shadow .15s; }
.button:hover,button:hover { background:var(--accent-hover); }
.button:active,button:active { transform:translateY(1px); }
.button.secondary,button.secondary { background:var(--surface); color:var(--ink); border-color:var(--line); font-weight:600; }
.button.secondary:hover,button.secondary:hover { background:#f0f0f6; border-color:#b3b3c1; }
.button.small,button.small { padding:10px 14px; font-size:.8125rem; }
button:disabled,button:disabled:hover { background:#ececf1; border-color:#dedee6; color:#767680; opacity:1; cursor:not-allowed; box-shadow:none; transform:none; }
.hint { color:var(--muted); font-size:.8125rem; line-height:1.6; }
.badge { display:inline-block; padding:4px 10px; border-radius:6px; background:var(--positive-soft); color:var(--positive); font-size:.75rem; font-weight:700; }
.status { min-height:1.5em; margin:12px 0; font-size:.875rem; overflow-wrap:anywhere; }
.error { color:var(--danger); }
.field-error { margin:0; color:var(--danger); font-size:.8125rem; line-height:1.5; overflow-wrap:anywhere; }
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--danger); box-shadow:inset 3px 0 0 var(--danger); }
.task-steps { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 28px; list-style:none; counter-reset:step; padding:0; margin:0 0 28px; color:var(--muted); font-size:.8125rem; }
.task-steps li { display:flex; align-items:center; gap:8px; counter-increment:step; }
.task-steps li::before { content:counter(step); display:grid; place-items:center; flex:none; width:24px; height:24px; border:1px solid var(--line); border-radius:50%; background:white; color:var(--ink); font-size:.75rem; font-weight:700; }
.empty { padding:48px 24px; border:1px dashed #b8b8c6; border-radius:12px; text-align:center; color:var(--muted); background:#fafafd; font-size:.9375rem; }
.site-footer { max-width:1216px; display:flex; flex-wrap:wrap; gap:24px; margin:auto; padding:28px 0; border-top:1px solid var(--line); color:var(--muted); font-size:.8125rem; }
.site-footer a:hover { color:var(--accent); }
.site-footer span:last-child { margin-left:auto; }
.prose { max-width:820px; padding-top:48px; }
.prose h2 { margin-top:32px; }
.prose li { margin-bottom:8px; }
.prose p { color:#54545f; line-height:1.75; }
details { border-top:1px solid var(--line); padding:16px 0; }
summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:600; }
details p { margin:12px 0 0; color:var(--muted); }
.icon { display:inline-block; flex:none; width:24px; height:24px; background:currentColor; -webkit-mask:var(--icon) center/contain no-repeat; mask:var(--icon) center/contain no-repeat; }
.icon-image { --icon:url('/assets/icons/photo-scan.svg'); }
.icon-print { --icon:url('/assets/icons/layout-grid.svg'); }
.icon-timer { --icon:url('/assets/icons/clock-hour-4.svg'); }
.icon-shield { --icon:url('/assets/icons/shield-check.svg'); }
.icon-arrow { --icon:url('/assets/icons/arrow-right.svg'); }
.icon-check { --icon:url('/assets/icons/check.svg'); }
.symbol-image { color:var(--photo); background:#eaf5ed; }
.symbol-print { color:var(--print); background:#eaf1fb; }
.symbol-timer { color:var(--timer); background:#fff0e8; }
.tool-jump { display:none; }
@media screen {
 .tool-page .shell { padding-top:28px; }
 .tool-page h1,.tool-page .shell>.eyebrow,.tool-intro,.tool-header { text-align:center; }
 .tool-page .shell>.lead,.tool-header>.lead,.tool-intro>.lead { margin-left:auto; margin-right:auto; }
 .tool-page .shell>.eyebrow,.tool-header>.eyebrow,.tool-intro>.eyebrow { margin-bottom:8px; }
 .tool-page .lead { font-size:1rem; margin-bottom:18px; }
 .tool-page input[type=number] { font-variant-numeric:tabular-nums; }
 .tool-page [id] { scroll-margin-top:20px; }
 .panel .eyebrow { display:none; }
}
@media(max-width:1000px) { .site-header { gap:32px; } .header-note { display:none; } .site-header nav { margin-left:auto; gap:24px; } }
@media(max-width:800px) {
 .site-header { height:auto; min-height:96px; padding:14px 24px 6px; flex-wrap:wrap; gap:4px 20px; }
 .site-header nav { flex-basis:100%; margin:0; gap:24px; }
 .site-header nav a { min-height:44px; }
 .workspace { grid-template-columns:1fr; gap:20px; }
 .shell { padding:28px 24px 48px; }
 .tool-page h1 { font-size:1.875rem; letter-spacing:-.6px; }
 .tool-page .shell { padding-top:24px; }
 .tool-page .lead { font-size:.9375rem; line-height:1.5; }
 .task-steps { gap:8px 16px; margin-bottom:24px; font-size:.75rem; }
 .task-steps li::before { width:22px; height:22px; }
 .site-footer { margin:0 24px; }
}
@media screen and (max-width:800px) { .tool-jump { display:inline-flex; align-items:center; min-height:44px; padding:8px 0; font-size:.8125rem; font-weight:600; color:var(--accent); } }
@media(max-width:400px) { .site-header { padding-right:16px; padding-left:16px; } .brand { font-size:1.125rem; } .site-header nav { gap:20px; font-size:.75rem; } .shell { padding-right:16px; padding-left:16px; } .panel { padding:18px; } .field-row { gap:12px; } .site-footer { margin:0 16px; gap:16px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
