/* Production Atlas appearance. Classic is the untouched app.html base CSS. */
:root[data-app-theme="atlas"]{
  --font-body: "Segoe UI", sans-serif;
  --font-display: "Palatino Linotype", "Book Antiqua", serif;
  --font-mono: "Cascadia Code", Consolas, monospace;
  --paper: #f7f5ec;
  --surface: #fffef8;
  --soft: #edece2;
  --ink: #233d33;
  --muted: #58695f;
  --line: #d4d9ce;
  --accent: #285943;
  --accent-soft: #e4eddf;
  --on-accent: #ffffff;
  --warning: #9b471d;
  --error: #a13535;
  --plot: #f1f2e8;
  --plot-line: #d9dfd1;
  --plot-ink: #285943;
  --plot-fill: #28594312;
  --scrim: #10251ecc;
  --shadow: #183e2412;
  --radius: 5px;
}
/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V3
 * User locks existing app structure; visual theme only, no new navigation or work panels.
 * The source grid, control ordering and field IDs are preserved in the HTML snapshot.
 */
body{background:var(--paper);font-family:var(--font-body);color:var(--ink);padding:20px;overflow-x:clip}html{overflow-x:clip}

.container{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 35px var(--shadow);backdrop-filter:none}
.header{border-bottom-color:var(--line)}.header h1{font-family:var(--font-display);font-weight:500;color:var(--ink);background:none;-webkit-text-fill-color:var(--ink);font-style:normal;letter-spacing:-1px}.header h1 svg rect{fill:var(--accent-soft)}.header h1 svg path{stroke:var(--line)}.header h1 svg polygon{stroke:var(--accent)}
.header .user-info{background:var(--soft);color:var(--muted);border:1px solid var(--line);border-radius:6px}.header .logout-btn{background:var(--surface)!important;color:var(--accent);border:1px solid var(--line);border-radius:4px}
.input-section,.output-section{background:var(--paper);border-color:var(--line);border-radius:9px}.section-title{font-family:var(--font-display);color:var(--ink);font-weight:500;font-style:normal}
.file-upload-container span[style],#searchContainer label[style]{color:var(--muted)!important}
.btn,.format-btn{font-family:var(--font-body);border:1px solid var(--line);background:var(--surface)!important;color:var(--accent)!important;border-radius:5px;box-shadow:none;transition:background .15s,border-color .15s,color .15s}
.btn-primary,.btn-success,#cleanBtn{background:var(--accent)!important;color:var(--on-accent)!important;border-color:var(--accent)}
.btn:hover,.format-btn:hover,.header .logout-btn:hover{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent);transform:none;box-shadow:none}
.btn-success:hover,.btn-primary:hover,#cleanBtn:hover{background:var(--accent)!important;color:var(--on-accent)!important;filter:brightness(1.08)}
.format-btn{background:var(--soft)!important;color:var(--ink)!important;font-size:11px;line-height:1.5;padding:10px 6px;min-width:0;font-weight:600}
#dxfBtn,#asposeDwgBtn{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--line)}
#cmsModelBtn,#tunnelMeshBtn,#kubajBtn{background:var(--surface)!important;color:var(--accent)!important;border-color:var(--accent)}
.format-btn.is-selected{background:var(--accent)!important;color:var(--on-accent)!important;border-color:var(--accent)}
input:not([type=file]):not([type=checkbox]),textarea{background:var(--surface);border-color:var(--line)!important;color:var(--ink);font-family:var(--font-body);border-radius:5px!important}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input[type=checkbox]{accent-color:var(--accent)}
textarea{font-family:var(--font-mono);font-size:12px;line-height:1.7;border-width:1px}#inputData{overflow-x:auto;resize:vertical;max-width:100%}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,label.file-upload-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}textarea:focus{border-color:var(--accent)}
.file-info{background:var(--accent-soft);border-color:var(--line);color:var(--accent);border-radius:5px}
.footer{color:var(--muted);border-top-color:var(--line);font-size:12px}

/* Responsive sizing retains the original panel stack and all control groups/order. */
@media(max-width:1100px) and (min-width:769px){.header h1{font-size:32px}.header .user-info{font-size:11px;padding:8px 10px}.format-btn{font-size:10px;padding:9px 4px}}
@media(max-width:768px){body{padding:15px}.container{padding:20px}.header h1{font-size:32px}.header .user-info{font-size:12px}.input-section,.output-section{padding:18px}.section-title{font-size:21px}.file-upload-container .btn,#searchContainer .btn{width:auto;padding:9px 12px!important;font-size:11px!important;white-space:nowrap}.output-section .controls{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important}.format-btn{font-size:10px;padding:10px 5px;overflow-wrap:anywhere}.output-section>div:last-child{flex-wrap:wrap}.output-section>div:last-child input{flex:1 1 130px!important}#downloadBtn{width:auto;padding:10px 13px;font-size:12px}#searchInput0{min-width:110px!important}#inputData{max-width:100%}}
@media(max-width:540px){.output-section .controls{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:414px){body{padding:12px}.container{padding:16px}.input-section,.output-section{padding:15px}.output-section .controls{grid-template-columns:repeat(2,minmax(0,1fr))!important}.format-btn{font-size:11px;overflow-wrap:normal}.header h1{font-size:29px}.header h1 svg{width:29px!important;height:29px!important;margin-right:7px!important}.header .user-info{font-size:11px}.file-upload-container .btn,#searchContainer .btn{font-size:10px!important;padding:8px 10px!important}textarea{padding:12px;font-size:11px}#searchBox0 label{font-size:11px!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

.btn-locked,.btn-locked:hover{background:var(--error)!important;color:var(--on-accent)!important;border-color:var(--error);cursor:not-allowed}.btn:disabled,.format-btn:disabled{opacity:.55;cursor:not-allowed}.toast{background:var(--surface);color:var(--ink)}.toast-title{color:var(--ink)}.toast-message{color:var(--muted)}
#mainApp .header .user-info{position:static;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:fit-content;max-width:100%;margin:12px auto 0;font-size:12px}#mainApp .header .user-info a{color:var(--accent)!important;white-space:nowrap}#mainApp .header .user-info .premium-badge{background:var(--accent);color:var(--on-accent);white-space:nowrap}#mainApp .header .user-info .premium-badge[style]{background:var(--error)!important}#mainApp .header .user-info .limited-badge{background:var(--warning);color:var(--on-accent);white-space:nowrap}#mainApp .header .logout-btn{margin-left:0}
