/* App UI styles. Loaded after cv.css so print rules win. */
:root{--ac:#0f4c5c;--ink:#1c2630;--mut:#5b6672;--line:#e3e8ec}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--ink);background:#eef1f4}
.app{display:grid;grid-template-columns:400px 1fr;min-height:100vh}
aside{background:#fff;border-right:1px solid var(--line);padding:16px;overflow-y:auto;height:100vh;position:sticky;top:0}
aside h1{font-size:18px;margin:0 0 4px}
aside .sub{font-size:12px;color:var(--mut);margin-bottom:12px}
.bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
button{font:inherit;font-size:13px;padding:7px 12px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer}
button.pri{background:var(--ac);color:#fff;border-color:var(--ac)}
button:disabled{opacity:.45;cursor:not-allowed}
.status{font-size:12px;padding:8px 10px;border-radius:6px;margin-bottom:12px;background:#fff7e6;border:1px solid #f1d9a6}
.status.ok{background:#e9f7ef;border-color:#b9e2c8}
fieldset{border:1px solid var(--line);border-radius:8px;margin:0 0 12px;padding:10px}
legend{font-size:12px;font-weight:600;padding:0 6px;color:var(--ac);text-transform:uppercase;letter-spacing:.04em}
label{display:block;font-size:12px;color:var(--mut);margin:6px 0 2px}
input,textarea{width:100%;font:inherit;font-size:13px;padding:6px 8px;border:1px solid #cfd6dc;border-radius:5px}
textarea{min-height:60px;resize:vertical}
.item{border:1px dashed #cfd6dc;border-radius:6px;padding:8px;margin:8px 0;position:relative}
.item .rm{position:absolute;right:6px;top:6px;padding:1px 7px;font-size:12px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
main{padding:24px;display:flex;justify-content:center;overflow:auto}
.page{box-shadow:0 4px 24px rgba(0,0,0,.15)}
.tpls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tp{display:flex;gap:8px;align-items:flex-start;text-align:left;padding:6px}
.tp.on{border:2px solid var(--ac);background:#f3f8f9}
.tp b{display:block;font-size:12px}.tp span{font-size:10.5px;color:var(--mut)}
@media(max-width:1100px){.app{grid-template-columns:1fr}aside{height:auto;position:static}.page{transform-origin:top left}}
@media print{
.guides{display:none}
@page{size:A4;margin:0}
body{background:#fff}
.app{display:block}aside{display:none}
main{padding:0;display:block}
.page{box-shadow:none;width:210mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

.sheet{position:relative;width:210mm}
.guides{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(297mm - 2px),#e5484d calc(297mm - 2px),#e5484d 297mm)}
.guides::after{content:"red lines = approximate page breaks";position:absolute;right:4px;top:-18px;font-size:11px;color:#e5484d}
.chk{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--ink)}.chk input{width:auto;margin-top:2px}
.msg{font-size:12px;padding:8px 10px;border-radius:6px;margin-bottom:10px;background:#eef3ff;border:1px solid #c5d3f5}
#review{margin-bottom:12px;font-size:12px}#review h2{font-size:13px;margin:0 0 6px}
#review ul{list-style:none;padding:0;margin:0}
.rv{padding:6px 8px;border-left:3px solid #9aa5b0;background:#f7f8fa;margin-bottom:4px;border-radius:0 4px 4px 0}
.rv.error{border-color:#d63b3b;background:#fdeeee}.rv.warn{border-color:#d99a1c;background:#fff7e6}
.fine{color:var(--mut);font-size:11px}
details.guide{font-size:12px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:12px;background:#f7fafb}
details.guide summary{cursor:pointer;font-weight:600}details.guide p,details.guide li{margin:4px 0}
.ex{background:#fff;border:1px dashed #b8c2cc;padding:4px 6px;border-radius:4px;font-style:italic}
dialog{border:1px solid var(--line);border-radius:10px;max-width:460px;padding:18px}
dialog h2{margin:0 0 8px;font-size:16px}dialog ol{padding-left:18px;font-size:13px}dialog li{margin:4px 0}
