:root { color-scheme: light; --ink:#17211f; --muted:#697471; --line:#dfe5e2; --soft:#f5f7f6; --brand:#173c34; --accent:#b9ddd2; --danger:#a43a3a; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:#f3f5f4; color:var(--ink); font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,input,select,textarea { font:inherit; }
button,.download { border:0; border-radius:10px; background:var(--brand); color:white; padding:11px 17px; font-weight:700; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
button:disabled { opacity:.55; cursor:wait; }
.secondary { background:white; color:var(--ink); border:1px solid var(--line); }
.hidden { display:none !important; }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:22px; background:radial-gradient(circle at 15% 10%,#dcece7,transparent 35%),#f6f7f6; }
.card,.panel { background:white; border:1px solid var(--line); border-radius:18px; box-shadow:0 10px 35px rgba(23,60,52,.07); }
.login-card { width:min(430px,100%); padding:36px; }
.logo { width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--brand);color:white;font-size:25px;margin-bottom:18px; }
.eyebrow { margin:0 0 5px; color:#527269; letter-spacing:.13em; font-weight:800; font-size:12px; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:8px; font-size:30px; }
h2 { margin-bottom:5px; }
.muted { color:var(--muted); }
label { display:grid; gap:7px; font-weight:700; margin:16px 0; }
input,select,textarea { width:100%; border:1px solid #cfd8d4; border-radius:10px; background:white; padding:11px 12px; color:var(--ink); }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(185,221,210,.65); border-color:#7aa99b; }
.login-card button { width:100%; margin-top:7px; }
.error { color:var(--danger); min-height:1.3em; }
.success { color:#176641; }
.app-shell { max-width:1280px; margin:auto; padding:30px 22px 60px; }
header,.panel-heading,.model-title,.combination-title { display:flex; justify-content:space-between; gap:20px; align-items:center; }
nav { display:flex; gap:8px; margin:28px 0 16px; overflow:auto; padding-bottom:2px; }
.tab { white-space:nowrap; background:white; color:var(--ink); border:1px solid var(--line); }
.tab.active { background:var(--brand); color:white; }
.panel { padding:24px; }
.table-wrap { overflow:auto; margin-top:20px; }
table { width:100%; border-collapse:collapse; min-width:680px; }
th,td { padding:13px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
th { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
td small { display:block; color:var(--muted); margin-top:3px; }
.status { display:inline-block; border-radius:999px; background:#e8f2ef; color:#265c4e; padding:5px 10px; font-weight:700; white-space:nowrap; }
.empty { text-align:center; color:var(--muted); padding:45px 20px; background:var(--soft); border-radius:12px; }
.form-grid { display:grid; gap:16px; }
.form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.model-card { border:1px solid var(--line); border-radius:14px; padding:18px; margin:20px 0; }
.model-title h3 { margin:0; }
.combination-card { border:1px solid var(--line); border-radius:12px; padding:16px; margin:16px 0; background:var(--soft); }
.combination-title h4 { margin:0; }
.combination-title .secondary { padding:8px 11px; color:var(--danger); }
.sizes { display:grid; grid-template-columns:repeat(auto-fit,minmax(80px,1fr)); gap:8px; }
.sizes label { margin:0; gap:4px; color:var(--muted); font-size:12px; }
.sizes input { padding:8px; }
.field-label { font-weight:700; margin:14px 0 9px; }
.message { min-height:1.4em; margin:17px 0 7px; font-weight:700; }
@media (max-width:650px) { .form-grid.two{grid-template-columns:1fr}.panel{padding:18px}.app-shell{padding:20px 12px 40px}header{align-items:flex-start}.login-card{padding:26px}.panel-heading{align-items:flex-start;flex-direction:column}.model-title{align-items:flex-start}.model-title .secondary{padding:8px 11px} }
