/* Smart Film Quote. One column field app. Teal accent on deep navy. System fonts so it works offline. */
:root{
  --bg:#F3F6F9; --surface:#FFFFFF; --fg:#0B1F3A; --muted:#566779; --line:#D3DBE4;
  --accent:#0E8F80; --accent-fg:#FFFFFF; --good:#15803D; --warn:#B45309; --bad:#B91C1C;
  --chip:#E7EDF3; --stage:#0D1117; --navy:#0B1F3A;
  --font:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0A1628; --surface:#10233F; --fg:#E6EDF5; --muted:#93A4B8; --line:#24405F;
    --accent:#2DD4BF; --accent-fg:#06201C; --good:#4ADE80; --warn:#FBBF24; --bad:#F87171; --chip:#17304F; --navy:#E6EDF5;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0A1628; --surface:#10233F; --fg:#E6EDF5; --muted:#93A4B8; --line:#24405F;
  --accent:#2DD4BF; --accent-fg:#06201C; --good:#4ADE80; --warn:#FBBF24; --bad:#F87171; --chip:#17304F; --navy:#E6EDF5;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}
#app{max-width:720px;margin-inline:auto;padding-inline:16px;padding-block:0 56px;min-height:100vh}
h1,h2,h3,p{margin:0}
h2{font-size:17px;font-weight:650}
h3{font-size:15px;font-weight:650}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;background:var(--bg);padding-block:calc(10px + env(safe-area-inset-top,0px)) 10px;border-bottom:1px solid var(--line);margin-inline:-16px;padding-inline:16px}
.top h1{font-size:18px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icon{font:inherit;font-size:20px;min-width:44px;min-height:44px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer}
.stack{display:flex;flex-direction:column;gap:14px;padding-top:16px}
section{display:flex;flex-direction:column;gap:10px;min-width:0}
section+section{border-top:1px solid var(--line);padding-top:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:500;min-width:0}
label.check{flex-direction:row;align-items:flex-start;gap:10px;color:var(--fg);font-size:15px;font-weight:500}
label.check input{width:24px;min-height:24px;margin:2px 0 0;flex:none}
input,select,textarea{font:inherit;font-size:16px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px 10px;width:100%;min-width:0}
textarea{min-height:120px;resize:vertical}
.btn{font:inherit;font-weight:600;min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.btn.danger{color:var(--bad)}
.btn.block{width:100%}
.btn[disabled],.btn.off{opacity:.45;pointer-events:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.muted{color:var(--muted)} .small{font-size:13px} .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;color:inherit;text-decoration:none}
a.card{cursor:pointer}
.between{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--chip);white-space:nowrap}
.pill.good{color:var(--good);background:transparent;border:1px solid currentColor}
.pill.warn{color:var(--warn);background:transparent;border:1px solid currentColor}
.pill.bad{color:var(--bad);background:transparent;border:1px solid currentColor}
.chip{display:inline-flex;gap:6px;align-items:center;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid currentColor}
.chip.good{color:var(--good)} .chip.warn{color:var(--warn)} .chip.bad{color:var(--bad)}
.banner{padding:10px 12px;border-radius:8px;font-size:14px;border:1px solid currentColor}
.banner.warn{color:var(--warn)} .banner.bad{color:var(--bad)} .banner.info{color:var(--accent)}
.banner b{font-weight:700}
.instr{display:flex;gap:10px;align-items:center;padding:10px 12px;background:var(--chip);border-radius:8px;font-weight:600;height:76px;overflow:hidden}
.instr .tag{font-family:var(--mono);font-size:12px;padding:2px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--line);white-space:nowrap}
.stage{position:relative;background:var(--stage);border-radius:8px;overflow:hidden}
.stage .cv{display:block;width:100%;height:min(60vh,520px);touch-action:none;cursor:crosshair}
.stage .lp{position:absolute;top:8px;right:8px;width:120px;height:120px;border:2px solid #fff;border-radius:8px;background:#000;pointer-events:none}
.pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:4px}
.pad .btn{padding:0;font-size:18px}
.kv{display:grid;grid-template-columns:1fr auto;gap:6px 16px;font-size:14px;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-family:var(--mono);font-weight:600;text-align:right}
.big{display:flex;gap:22px;flex-wrap:wrap}
.big div{display:flex;flex-direction:column}
.big b{font-family:var(--mono);font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.big span{font-size:13px;color:var(--muted)}
ul.warns{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:14px}
ul.warns li.bad{color:var(--bad)} ul.warns li.warn{color:var(--warn)}
.scroll{overflow-x:auto}
table{border-collapse:collapse;font-size:13px;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;vertical-align:top}
th:first-child,td:first-child{text-align:left}
th{color:var(--muted);font-weight:600;white-space:nowrap}
tr.total td{font-weight:700;border-top:2px solid var(--fg)}
td input{min-height:36px;padding:4px 6px;width:70px;text-align:right;font-size:15px}
.toast{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:420px;margin-inline:auto;background:var(--fg);color:var(--bg);padding:12px 14px;border-radius:8px;font-weight:600;text-align:center;z-index:20}
.toast[hidden]{display:none}
[hidden]{display:none!important}
.doc{background:#fff;color:#111;border-radius:8px;padding:18px;border:1px solid var(--line);font-size:13px}
.doc h2{font-size:20px;color:#0B1F3A}
.doc table{font-size:12px} .doc th,.doc td{border-bottom:1px solid #ddd;color:#111} .doc th{color:#555}
.doc .est{color:#B45309;border:1px solid #B45309;padding:6px 8px;border-radius:6px;margin-block:8px;font-weight:600}
.doc .box{border:1px solid #0B1F3A;border-radius:6px;padding:8px 10px;margin-block:10px}
@media print{
  .top,.noprint,.toast{display:none!important}
  body{background:#fff} #app{padding:0;max-width:none}
  .doc{border:none;padding:0}
}
