/* Shared workspace for Llandow's file tools. Native controls stay keyboard accessible. */
#content.tuner-tool { --tuner-base:#212529; --tuner-panel:#2a3036; --tuner-border:#58626c; --tuner-text:#d8dee4; --tuner-accent:#ed7186; background:var(--tuner-base); color:var(--tuner-text); min-height:70vh; }
.tuner-tool [hidden] { display:none !important; }
.tuner-tool :is(h1,h2,h3,label,legend,strong,dt) { color:#fff; }
.tuner-tool h1 { font-size:clamp(30px,3.6vw,46px); line-height:1.16; letter-spacing:-.025em; margin:0 0 16px; text-transform:none; max-width:26ch; }
.tuner-tool h2 { font-size:24px; line-height:1.3; margin:0 0 16px; text-transform:none; }
.tuner-tool h3 { font-size:19px; margin:22px 0 12px; }
.tuner-tool :is(p,li) { line-height:1.65; }
.tuner-tool p { margin:0 0 20px; max-width:74ch; }
.tuner-tool a { color:var(--tuner-accent); text-underline-offset:4px; }
.tuner-tool :is(a,button,input,select,summary):focus-visible { outline:3px solid #fff; outline-offset:4px; }
.tuner-header { border-bottom:1px solid var(--tuner-border); padding-top:28px; }
.tuner-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; font-size:13px; }
.tuner-breadcrumb a { color:var(--tuner-text); text-decoration:underline; }
.tuner-header > .container > p { max-width:76ch; }
.tuner-nav { display:flex; flex-wrap:wrap; gap:4px 22px; margin-top:26px; }
.tuner-nav a { padding:14px 0 12px; border-bottom:3px solid transparent; color:var(--tuner-text); font-size:14px; font-weight:600; text-decoration:none; }
.tuner-nav a:hover,.tuner-nav a[aria-current=page] { color:#fff; border-color:var(--tuner-accent); }
.tuner-body { padding-top:32px; padding-bottom:54px; }
.tuner-workspace { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr); gap:36px; align-items:start; }
.tuner-panel { padding:28px; border:1px solid var(--tuner-border); border-radius:6px; background:var(--tuner-panel); min-width:0; }
.tuner-guide { min-width:0; padding-top:4px; }
.tuner-guide h2 { font-size:20px; }
.tuner-guide p { font-size:14px; }
.tuner-summary { margin-bottom:26px; padding-bottom:12px; border-bottom:1px solid var(--tuner-border); }
.tuner-output { display:flex; align-items:start; gap:12px; color:#fff; font-size:17px !important; font-weight:600; }
.tuner-output i { font-size:24px; color:var(--tuner-accent); }
.tuner-summary dl { display:grid; grid-template-columns:72px minmax(0,1fr); gap:10px 16px; font-size:13px; margin:20px 0; }
.tuner-summary dd { margin:0; }
.tuner-tool label { display:block; font-size:14px; font-weight:600; margin:0 0 9px; text-transform:none; letter-spacing:normal; }
.tuner-tool input:not([type=checkbox]):not([type=hidden]),.tuner-tool select { width:100%; max-width:100%; min-height:46px; background:#1b2025; color:#fff; border:1px solid #7a858f; border-radius:4px; padding:11px 12px; font:inherit; }
.tuner-tool input[type=file] { padding:16px !important; border-style:dashed !important; cursor:pointer; font-size:14px !important; }
.tuner-tool input[type=file]::file-selector-button { border:1px solid #84909a; border-radius:3px; background:#414b55; color:#fff; font:inherit; font-weight:600; padding:9px 12px; margin-right:14px; cursor:pointer; }
.tuner-tool .tuner-help,.tuner-file-detail { font-size:13px; margin:9px 0 22px; }
.tuner-file-detail { color:#a8dfc2; overflow-wrap:anywhere; }
.tuner-file-detail:empty { display:none; }
.tuner-signin-note { display:flex; align-items:start; gap:10px; font-size:13px; margin:22px 0 !important; color:var(--tuner-text); }
.tuner-signin-note i { font-size:18px; }
.tuner-tool .tuner-button,.tuner-tool .button,.tuner-tool .map-extractor__button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; margin:0; padding:12px 20px; border:1px solid #cc2948; border-radius:4px; background:#cc2948; color:#fff; font:inherit; font-size:14px; font-weight:600; line-height:1.4; text-decoration:none; text-shadow:none; cursor:pointer; letter-spacing:normal; }
.tuner-tool .tuner-button:hover,.tuner-tool .button:hover,.tuner-tool .map-extractor__button:hover { background:#af203c; }
.tuner-tool button:disabled { opacity:.55; cursor:wait; }
.tuner-status:not(:empty),.tuner-tool .alert { padding:14px 16px; margin-top:18px; border:1px solid #677785; border-left:4px solid #91b5ce; border-radius:3px; background:#25333d; color:#e3ecf3; font-size:14px; overflow-wrap:anywhere; }
.tuner-status[data-tone=error],.tuner-tool .alert-warning { border-color:#eaaa82; background:#392d29; color:#ffe4d1; }
.tuner-status[data-tone=success] { border-color:#85cba6; background:#223a30; color:#d3f1df; }
.tuner-tool progress { display:block; width:100%; height:8px; margin:14px 0; accent-color:var(--tuner-accent); }
.tuner-download { border-top:1px solid var(--tuner-border); padding-top:22px; margin-top:24px; }
.tuner-tool :is(.map-extractor__evidence,.noread-hash,.noread-context,#checksum-report) { overflow-wrap:anywhere; white-space:pre-wrap; font-size:13px; }
.tuner-tool .table { --bs-table-color:var(--tuner-text); --bs-table-bg:transparent; --bs-table-border-color:var(--tuner-border); }
.tuner-tool summary { cursor:pointer; color:#fff; }
.tuner-tool .map-extractor__panel { background:var(--tuner-panel); }
.tuner-tool .map-extractor__guide { padding-top:4px; }
.tuner-tool .map-extractor__guide h2 { font-size:20px; }
.tuner-tool .map-extractor__guide p,.tuner-tool .map-extractor__guide li { font-size:14px; }
.tuner-tool .map-extractor__help { margin:9px 0 22px !important; }
.tuner-field { margin-bottom:22px; }
.tuner-actions { display:flex; flex-wrap:wrap; gap:12px; margin:18px 0; }
@media(max-width:991px) { .tuner-workspace { grid-template-columns:minmax(0,1fr); gap:30px; } .tuner-guide { max-width:76ch; } }
@media(max-width:575px) { .tuner-panel { padding:22px 16px; } .tuner-header { padding-top:22px; } .tuner-nav { gap:0 16px; } .tuner-nav a { font-size:13px; padding:11px 0 9px; } .tuner-body { padding-top:24px; } .tuner-tool input[type=file] { padding:12px !important; } .tuner-tool input[type=file]::file-selector-button { margin-right:8px; padding:8px; } .tuner-panel .tuner-button,.tuner-panel .button { width:100%; } }
@media(prefers-reduced-motion:reduce) { .tuner-tool * { scroll-behavior:auto !important; transition:none !important; } }
