@font-face{font-family:B;src:url(/fonts/bricolage-grotesque-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:B;src:url(/fonts/bricolage-grotesque-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:S;src:url(/fonts/source-sans-3-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:S;src:url(/fonts/source-sans-3-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
:root{--yellow:#ffd600;--yellow-h:#ebc500;--ink:#202020;--cream:#f8f6ef;--cream-2:#efede5;--stone:#d9d9d3;--muted:#4a4a46;--card:#fff;--ok:#11603f;--bad:#9b2c1c;--r:10px;--tap:44px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 16px/1.5 S,system-ui,sans-serif;color:var(--ink);background:var(--cream)}
h1,h2,h3{font-family:B,system-ui,sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}
h1{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.2rem)}h2{font-size:1.25rem}h3{font-size:1.05rem}
a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 6px var(--yellow)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--muted)}.small{font-size:.875rem}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.85rem}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--tap);padding:.5rem 1rem;border-radius:var(--r);border:2px solid var(--ink);background:var(--card);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--cream-2)}.btn--y{background:var(--yellow);border-color:var(--ink)}.btn--y:hover{background:var(--yellow-h)}
.btn--dark{background:var(--ink);color:#fff}.btn--dark:hover{background:#3a3a3a}.btn--ghost{border-color:transparent;background:transparent}.btn--sm{min-height:36px;padding:.25rem .7rem;font-size:.9rem}
.btn[disabled]{opacity:.55;cursor:wait}
/* layout */
.shell{display:grid;min-height:100vh;grid-template-columns:1fr}
.side{background:var(--ink);color:#fff;display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:.55rem;font:700 1.15rem B,sans-serif;text-decoration:none;color:#fff;min-height:var(--tap)}.brand img{width:30px;height:30px}
.brand small{font:600 .7rem S,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.nav{display:none}.side .out{margin-left:auto;color:#fff;border-color:#fff;background:transparent}.side .out:hover{background:#3a3a3a}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink);padding-bottom:env(safe-area-inset-bottom)}
.tabs a{display:grid;place-items:center;gap:2px;min-height:58px;color:#d9d9d3;text-decoration:none;font-weight:600;font-size:.85rem}
.tabs a svg{width:22px;height:22px}.tabs a[aria-current=page]{color:var(--ink);background:var(--yellow)}
main{padding:1rem 1rem 6rem;max-width:1400px;width:100%;margin:0 auto}
@media(min-width:960px){.shell{grid-template-columns:232px 1fr}.side{flex-direction:column;align-items:stretch;height:100vh;padding:1.25rem 1rem}
 .nav{display:grid;gap:.25rem;margin-top:1.5rem}.nav a{display:flex;align-items:center;gap:.65rem;min-height:var(--tap);padding:0 .8rem;border-radius:var(--r);color:#e8e7e0;text-decoration:none;font-weight:600}
 .nav a:hover{background:#333}.nav a[aria-current=page]{background:var(--yellow);color:var(--ink)}.nav svg{width:20px;height:20px}
 .side .out{margin:auto 0 0}.tabs{display:none}main{padding:2rem 2.5rem 3rem}}
.head{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem}.head .grow{flex:1}
.bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}
.note{background:#fff6bf;border:1px solid #e6d36b;border-radius:var(--r);padding:.6rem .9rem;margin:0 0 1rem;font-size:.95rem}
.card{background:var(--card);border:1px solid var(--stone);border-radius:14px;padding:1rem}
.grid2{display:grid;gap:1rem}@media(min-width:1100px){.grid2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* forms */
label{display:grid;gap:.25rem;font-weight:600;font-size:.92rem}
input,select,textarea{min-height:var(--tap);padding:.45rem .7rem;border:1.5px solid #8f8f88;border-radius:8px;background:#fff;font-weight:400;font-size:1rem;width:100%}
textarea{min-height:5.5rem;resize:vertical}input[type=color]{padding:2px;width:52px}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--ink)}
.fields{display:grid;gap:.8rem}@media(min-width:640px){.fields.two{grid-template-columns:1fr 1fr}.fields .full{grid-column:1/-1}}
fieldset{border:1px solid var(--stone);border-radius:12px;padding:1rem;margin:0 0 1rem}legend{font:700 1rem B,sans-serif;padding:0 .4rem}
.hint{font-weight:400;color:var(--muted);font-size:.82rem}
/* segmented */
.seg{display:flex;flex-wrap:wrap;gap:.35rem}.seg button{min-height:40px;padding:0 .8rem;border:1.5px solid var(--stone);background:#fff;border-radius:8px;cursor:pointer;font-weight:600}
.seg button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.seg b{font-weight:400;opacity:.8;margin-left:.3rem}
/* status */
.st{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;font-size:.88rem;white-space:nowrap}.st::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}
.st-new{color:#1d4ed8}.st-contacted{color:#8a5a00}.st-proposal{color:#6b21a8}.st-won{color:var(--ok)}.st-lost{color:#6f6f6a}
.score{display:inline-grid;place-items:center;min-width:2.6rem;height:2rem;border-radius:8px;font:700 .95rem B,sans-serif;border:1.5px solid var(--ink)}
.score.hi{background:#d8f0e2}.score.mid{background:#fff6bf}.score.lo{background:#f9dcd5}.score.na{border-style:dashed;color:var(--muted)}
/* lists */
.list{display:grid;gap:.6rem}.row{display:grid;gap:.4rem;background:#fff;border:1px solid var(--stone);border-radius:12px;padding:.85rem 1rem;cursor:pointer;text-align:left;width:100%}
.row:hover{border-color:var(--ink)}.row[aria-current=true]{border-color:var(--ink);box-shadow:inset 4px 0 0 var(--yellow)}
.row .top{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}.row .top h3{flex:1;min-width:10rem}
.links{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.9rem}.links a{display:inline-flex;align-items:center;min-height:32px}
.ex{font:600 .72rem S,sans-serif;letter-spacing:.06em;text-transform:uppercase;background:var(--cream-2);border:1px solid var(--stone);padding:.05rem .4rem;border-radius:4px;color:var(--muted)}
.split{display:grid;gap:1rem}@media(min-width:1100px){.split{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}.split>.detail{position:sticky;top:1.5rem;max-height:calc(100vh - 3rem);overflow:auto}}
.detail .fields{margin:.75rem 0}.timeline{list-style:none;padding:0;margin:.5rem 0 0;display:grid;gap:.5rem}.timeline li{border-left:3px solid var(--stone);padding:.1rem 0 .1rem .7rem}
.timeline li.status{border-color:var(--yellow)}
.checks{list-style:none;padding:0;margin:.5rem 0;display:grid;gap:.25rem;font-size:.92rem}.checks li::before{content:"✓ ";color:var(--ok);font-weight:700}.checks li.no::before{content:"✗ ";color:var(--bad)}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--stone);border-radius:12px;overflow:hidden}th,td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--cream-2);vertical-align:top}
th{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--cream)}tbody tr{cursor:pointer}tbody tr:hover{background:#fffbe0}
.t-desk{display:none}@media(min-width:760px){.t-desk{display:table}.t-mob{display:none}}
/* site editor */
.editor{display:grid;gap:1rem}@media(min-width:1180px){.editor{grid-template-columns:minmax(380px,.85fr) minmax(0,1.15fr);align-items:start}.pv{position:sticky;top:1.5rem}}
.etabs{display:flex;gap:.25rem;overflow-x:auto;border-bottom:2px solid var(--ink);margin-bottom:1rem}.etabs button{min-height:var(--tap);padding:0 .9rem;border:0;background:none;font-weight:600;cursor:pointer;border-radius:8px 8px 0 0;white-space:nowrap}
.etabs button[aria-selected=true]{background:var(--ink);color:#fff}
.pv .frame{background:#fff;border:1px solid var(--stone);border-radius:14px;overflow:hidden}.pv .frame>div{display:flex;gap:.5rem;align-items:center;padding:.5rem .75rem;background:var(--cream-2);border-bottom:1px solid var(--stone)}
.pv iframe{display:block;border:0;width:100%;height:72vh;background:#fff;margin:0 auto}.pv.mobile iframe{width:390px;max-width:100%}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.sw{display:grid;gap:.4rem;padding:.6rem;border:2px solid var(--stone);border-radius:12px;background:#fff;cursor:pointer;text-align:left;font-weight:600}
.sw[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 3px var(--yellow)}.sw span{display:flex;height:28px;border-radius:6px;overflow:hidden}.sw i{flex:1}
.tour{border:1px solid var(--stone);border-radius:12px;padding:1rem;margin-bottom:1rem;background:#fff}
.imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem}.imgs figure{margin:0;font-size:.8rem}.imgs img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
pre.snip{background:var(--ink);color:#f8f6ef;padding:1rem;border-radius:10px;overflow:auto;font-size:.8rem}
.cards{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--ink)}.login form{background:var(--cream);border-radius:16px;padding:2rem;width:min(100%,380px);display:grid;gap:1rem}
.login .brand{color:var(--ink)}.err{color:var(--bad);font-weight:600;min-height:1.5em;margin:0}
#toast{position:fixed;left:50%;bottom:5.5rem;translate:-50% 0;z-index:50}#toast p{margin:0;background:var(--ink);color:#fff;padding:.7rem 1rem;border-radius:10px;box-shadow:0 10px 30px rgb(0 0 0/.25)}
@media(min-width:960px){#toast{bottom:1.5rem}}
dialog{border:0;border-radius:16px;padding:1.5rem;width:min(92vw,720px);background:var(--cream)}dialog::backdrop{background:rgb(32 32 32/.6)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.back{display:none}@media(max-width:1099px){.split.has-sel>:first-child{display:none}.back{display:inline-flex;margin-bottom:.5rem}}
.editor>*,.shell>main,.split>*{min-width:0}
