/* Oteon: valkoinen pohja, syvä petrooli tehosteväri (brändi A: petrooli #0B4F5C, verso #C6E86A, Manrope). Asiakasyritysten näkymissä tehosteväri vaihtuu yrityksen omaan. */
:root{
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f4f7f7; --fg:#132226; --muted:#5b6b6f; --line:#dce5e6;
  --teal:#0b4f5c; --accent:#0b4f5c; --accent-fg:#ffffff; --accent-soft:#e3efed; --o-verso:#c6e86a; --o-ink:#0f1e22;
  --hot:#c93b20; --hot-soft:#fbe6e0; --warm:#a86d00; --warm-soft:#fbefd4; --cold:#5c7184; --cold-soft:#e6ecf1;
  --won:#3550a8; --won-soft:#e4e9f8; --new:#1f9d55; --neg:#b42318;
  --shadow:0 1px 2px rgba(19,34,38,.05),0 10px 28px rgba(19,34,38,.08);
  --f-display:'Manrope','Hanken Grotesk',system-ui,sans-serif;
  --f-body:'Manrope','Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r:12px;
  color-scheme:light;
}
body.branded{--accent:var(--bp);--accent-fg:var(--bp-fg);--accent-soft:color-mix(in srgb,var(--bp) 12%,#ffffff)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.01em}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
img{max-width:100%}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1400px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.loading{color:var(--muted);padding:40px 0}

/* Top bar */
.topbar{position:sticky;top:0;z-index:9;background:#ffffff;border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
body.bare .topbar{display:none}
.topbar .wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:10px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:700;font-size:20px;border:0;background:none;padding:0;min-width:0;color:var(--fg)}
.brand-mark{display:flex;gap:3px}
.brand-mark i{width:7px;height:20px;border-radius:4px;display:block;background:var(--teal)}
.brand-mark i:nth-child(2){height:15px;margin-top:5px;opacity:.75}
.brand-mark i:nth-child(3){height:10px;margin-top:10px;opacity:.5}
.brand .powered{font-family:var(--f-body);font-weight:500;font-size:11px;color:var(--muted)}
.nav{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px;overflow-x:auto;max-width:100%}
.nav:empty{display:none}
.nav button{border:0;background:transparent;border-radius:999px;padding:7px 14px;font-weight:600;font-size:14px;color:var(--muted);white-space:nowrap}
.nav button[aria-current="page"]{background:var(--accent);color:var(--accent-fg)}
.nav button{display:inline-flex;align-items:center;gap:6px}
.nav .ico{width:16px;height:16px;flex:none}
.usr{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.usr .who{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

main{padding-block:18px 56px}
body.bare main{padding:0;max-width:none}
.auth-wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{margin:0 0 4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.sub{margin:4px 0 0;color:var(--muted)}
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px;margin-bottom:12px}
.crumbs button{border:0;background:none;padding:0;color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.crumbs span{color:var(--muted)}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.page-head h1{font-size:clamp(24px,3.4vw,32px)}
.co-title{display:flex;align-items:center;gap:14px;min-width:0}
.logo-tile{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:18px;flex:none;letter-spacing:.02em}
.logo-tile.sm{width:30px;height:30px;border-radius:8px;font-size:13px}
.logo-img{height:46px;max-width:150px;object-fit:contain;flex:none}
.logo-img.sm{height:30px;max-width:110px}
.logo-tile.lg{width:60px;height:60px;border-radius:14px;font-size:22px}
.logo-img.lg{height:60px;max-width:220px}
.logo-callout{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);border-radius:var(--r);padding:12px 14px;margin-bottom:12px}
.logo-callout div{flex:1;min-width:200px;display:flex;flex-direction:column}
.logo-callout span{font-size:13px;color:var(--muted)}
.logo-drop{display:flex;align-items:center;gap:16px;border:2px dashed var(--line);border-radius:var(--r);padding:16px;cursor:pointer;background:var(--surface-2);transition:border-color .15s,background .15s}
.logo-drop:hover,.logo-drop.over{border-color:var(--accent);background:var(--accent-soft)}
.logo-drop img{max-height:64px;max-width:200px;object-fit:contain;flex:none;background:#fff;border-radius:8px;padding:4px}
.ld-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.ld-text span{font-size:13px;color:var(--muted)}
.color-row small{font-weight:400;font-size:12px}
.bp-cap{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 14px 0;background:#fff}
.bp-top{display:flex;align-items:center;gap:10px;padding:10px 14px 12px;font-family:var(--f-display);font-weight:700;background:#fff;border-bottom:1px solid var(--line)}
select,input[type="text"],input[type="tel"],input[type="email"],input[type="number"],input[type="search"],input[type="password"],input[type="date"],input[type="time"],input[type="url"],textarea{
  background:#ffffff;border:1px solid var(--line);border-radius:10px;padding:9px 11px;min-width:0}
input[readonly]{background:var(--surface-2)}
.linkbtn{border:0;background:none;color:var(--accent);font-weight:600;padding:2px 4px;text-decoration:underline;text-underline-offset:3px}
.btn{border:1px solid var(--line);background:#ffffff;border-radius:10px;padding:8px 12px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;color:var(--fg)}
.btn:hover{border-color:var(--accent)}
.btn:disabled{opacity:.6;cursor:progress}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn-primary:hover{filter:brightness(1.07)}
.btn-danger{color:var(--neg)}
.mini{border:1px solid var(--line);background:#ffffff;border-radius:8px;font-size:12px;font-weight:600;padding:4px 8px}
.err{color:var(--neg);font-size:14px;font-weight:600;margin:0}
.ok-note{color:var(--new);font-size:14px;font-weight:600;margin:0}
.field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted);min-width:0}
.field input,.field select,.field textarea{font-size:15px;color:var(--fg);font-weight:400}
.avatar{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;flex:none;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.avatar.lg{width:36px;height:36px;font-size:13px}
.pill{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.pill-ok{background:color-mix(in srgb,var(--new) 13%,#fff);border-color:transparent;color:var(--new)}
.pill-wait{background:var(--warm-soft);border-color:transparent;color:var(--warm)}
.new-dot{width:9px;height:9px;border-radius:50%;background:var(--new);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--new) 22%,transparent)}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}

/* Auth pages */
.auth-wrap{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;padding-block:32px}
.auth{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.auth-band{padding:18px 22px;display:flex;align-items:center;gap:12px;background:#0b4f5c;color:#fff;--o-a1:#ffffff}
.auth-band .nm{font-family:var(--f-display);font-weight:700;font-size:19px}
.auth form,.auth .auth-body{padding:22px;display:flex;flex-direction:column;gap:12px}
.auth h1{font-size:24px}
.consent{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted)}
.consent input{margin-top:3px}

/* Home */
.totals{display:flex;gap:22px;flex-wrap:wrap}
.totals div{display:flex;flex-direction:column}
.totals b{font-family:var(--f-display);font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.totals span{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.co-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.co-card{display:flex;flex-direction:column;gap:12px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0;position:relative;overflow:hidden}
.co-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--cbp,transparent)}
.co-card:hover{border-color:var(--teal);box-shadow:var(--shadow)}
.co-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.co-top .co-title{gap:10px}
.co-top h2{font-size:18px}
.co-new{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--new);white-space:nowrap}
.co-camp{font-size:13px;color:var(--muted);margin-top:2px}
.co-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.co-stats div{background:var(--ts);border-radius:8px;padding:6px 8px;font-size:12px;color:var(--muted)}
.co-stats b{display:block;font-family:var(--f-display);font-size:20px;color:var(--tc);font-variant-numeric:tabular-nums}
.co-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.co-foot .go{color:var(--teal);font-weight:700}
.add-card{border-style:dashed;justify-content:center}
.add-card form{display:flex;flex-direction:column;gap:10px}

/* CRM */
.criteria-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--muted)}
.criteria-line strong{color:var(--fg);font-weight:600}
.crit-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--fg)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}
.toolbar input[type="search"]{flex:1 1 200px;max-width:320px}
.toolbar .hint{margin-left:auto;font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.board{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:6px}
.kcol{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;min-width:0;min-height:220px;transition:background .15s,border-color .15s}
.kcol-head{padding:12px 14px 10px;border-bottom:3px solid var(--tc);background:#fff;border-radius:var(--r) var(--r) 0 0}
.kcol-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.kcol-title h2{font-size:17px}
.kcol-count{font-family:var(--f-display);font-weight:700;font-size:22px;color:var(--tc);font-variant-numeric:tabular-nums}
.kcol-desc{font-size:12px;color:var(--muted);margin-top:2px}
.kcol-body{display:flex;flex-direction:column;gap:8px;padding:10px;flex:1}
.kcol.drop-target{background:var(--ts);border-color:var(--tc);border-style:dashed}
.kcol-empty{font-size:13px;color:var(--muted);text-align:center;padding:18px 8px;border:1px dashed var(--line);border-radius:10px}
.t-hot{--tc:var(--hot);--ts:var(--hot-soft)}
.t-warm{--tc:var(--warm);--ts:var(--warm-soft)}
.t-cold{--tc:var(--cold);--ts:var(--cold-soft)}
.t-cool{--tc:#2b6f86;--ts:#e1f0f4}
.t-won{--tc:var(--won);--ts:var(--won-soft)}
.t-lost{--tc:#868e96;--ts:#eef0f2}
.kcard{position:relative;display:flex;flex-direction:column;gap:3px;text-align:left;width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 14px;
  touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
.kcard:hover{border-color:var(--tc);box-shadow:var(--shadow)}
.kcard.is-open{box-shadow:inset 0 0 0 2px var(--accent)}
.kcard.dragging{opacity:.35}
.kcard.lost{opacity:.6}
.kc-top{display:flex;align-items:center;gap:7px;min-width:0}
.kc-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.kc-date{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
.kc-meta{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kc-line{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kc-line.reason{color:var(--cold)}
.kc-line.flag{color:var(--warm)}
.kc-foot{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}
.kc-foot .avatar{margin-left:auto}
.kc-foot .unassigned{margin-left:auto;font-size:11px;font-weight:600;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:2px 8px}
.status-pill{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.s-soitettu{color:var(--fg)}
.s-tarjous{background:var(--warm-soft);border-color:transparent;color:var(--warm)}
.s-havitty{text-decoration:line-through}
.manual-pill{font-size:11px;font-weight:600;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:2px 8px}
.ghost{position:fixed;left:0;top:0;z-index:40;pointer-events:none;box-shadow:0 14px 34px rgba(0,0,0,.22);opacity:.96;cursor:grabbing}
.board.is-dragging{scroll-snap-type:none!important}

/* Drawer */
.backdrop{position:fixed;inset:0;background:rgba(10,22,24,.38);z-index:19}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);z-index:20;background:#fff;border-left:1px solid var(--line);box-shadow:var(--shadow);overflow-y:auto;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px)}
.d-sec{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.d-sec:last-child{border-bottom:0}
.d-sec h3{font-family:var(--f-body);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.d-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.d-head h2{font-size:24px}
.cat-badge{display:flex;gap:10px;align-items:flex-start;background:var(--ts);border-radius:10px;padding:10px 12px}
.cat-badge .dot{width:10px;height:10px;border-radius:50%;background:var(--tc);margin-top:6px;flex:none}
.cat-badge b{display:block}
.cat-badge ul{margin:2px 0 0;padding-left:18px;font-size:14px}
.cat-badge p{margin:2px 0 0;font-size:14px}
.cat-badge .muted{color:var(--muted)}
.contact-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px}
.contact-row span:first-child{color:var(--muted);font-size:13px;min-width:80px}
.contact-row .val{user-select:all;font-weight:600;flex:1;min-width:0;overflow-wrap:anywhere}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font-size:13px;font-weight:600}
.seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.seg button.won[aria-pressed="true"]{background:var(--won);border-color:var(--won);color:#fff}
dl.answers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 14px;margin:0;font-size:14px}
dl.answers dt{color:var(--muted)}
dl.answers dd{margin:0;font-weight:600}
dl.answers dd.skip{font-weight:400;color:var(--muted);font-style:italic}
.notes{display:flex;flex-direction:column;gap:8px}
.note{background:var(--surface-2);border-radius:10px;padding:8px 10px;font-size:14px;white-space:pre-wrap}
.note time{display:block;font-size:12px;color:var(--muted);white-space:normal}
.note-form{display:flex;flex-direction:column;gap:8px}
.note-form textarea{min-height:64px;resize:vertical}

/* Public survey */
.survey-page{min-height:100vh;background:var(--surface-2)}
.sv-band{padding:14px max(16px,env(safe-area-inset-right,0px)) 14px max(16px,env(safe-area-inset-left,0px));padding-top:calc(14px + env(safe-area-inset-top,0px))}
.sv-band .inner{max-width:560px;margin:0 auto;display:flex;align-items:center;gap:10px}
.sv-band .nm{font-weight:700;font-family:var(--f-display);font-size:17px}
.sv-main{max-width:560px;margin:0 auto;padding:20px max(16px,env(safe-area-inset-right,0px)) 40px max(16px,env(safe-area-inset-left,0px))}
.sv-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:16px;min-height:420px}
.sv-hero h1{font-size:24px}
.sv-hero p{margin:6px 0 0;color:var(--muted);font-size:15px}
.progress{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden;border:1px solid var(--line)}
.progress i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .25s}
.q-title{font-family:var(--f-display);font-weight:600;font-size:21px;line-height:1.2}
.q-step{font-size:12px;color:var(--muted);font-weight:600}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:13px 14px;text-align:left;font-weight:600;font-size:16px;display:flex;justify-content:space-between;align-items:center}
.opt:hover{border-color:var(--accent)}
.opt[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.opt .check{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;font-size:13px}
.opt[aria-pressed="true"] .check{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.year-input{font-size:28px;font-family:var(--f-display);font-weight:600;width:100%;padding:12px 14px;text-align:center;letter-spacing:.04em}
.ph-actions{display:flex;gap:8px;margin-top:auto}
.ph-actions .btn{flex:1;padding:12px}
.cta-stack{display:flex;flex-direction:column;gap:8px}
.cta-stack .btn{padding:13px;font-size:15px}
.done{display:flex;flex-direction:column;gap:12px;align-items:flex-start;flex:1;justify-content:center}
.done .big{font-family:var(--f-display);font-size:26px;font-weight:700}
.sv-foot{font-size:12px;color:var(--muted);text-align:center;margin-top:14px}

/* Cards / settings / users */
.grid-2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.card h2{font-size:19px}
.card > p.lead{margin:-8px 0 0;color:var(--muted);font-size:14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-grid .full{grid-column:1/-1}
.crit-block{display:flex;flex-direction:column;gap:8px}
.crit-block > span{font-size:13px;font-weight:700}
.checks{display:flex;flex-wrap:wrap;gap:6px}
.checks label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:14px;cursor:pointer}
.checks label:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}
.inline-num{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.inline-num input{width:96px}
.preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.preview div{border-radius:10px;padding:8px 10px;background:var(--ts);font-size:13px}
.preview b{display:block;font-family:var(--f-display);font-size:22px;color:var(--tc)}
.qlist{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px;font-size:14px}
.qlist li::marker{color:var(--muted);font-weight:700}
.qlist .opts-line{display:block;color:var(--muted);font-size:13px}
.qlist .cond-edit{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;background:var(--warm-soft);border-radius:8px;padding:6px 8px;font-size:13px}
.qlist .cond-edit input{width:80px;padding:4px 8px}
.rules{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14px}
.color-row{display:flex;gap:14px;flex-wrap:wrap}
.color-row label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.color-row input[type="color"]{width:44px;height:36px;border:1px solid var(--line);border-radius:8px;padding:2px;background:#fff}
.brand-preview{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.brand-preview .bp-band{padding:12px 14px;display:flex;align-items:center;gap:10px;font-weight:700;font-family:var(--f-display)}
.brand-preview .bp-body{padding:14px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#fff}
.toggle{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer}
.toggle input{margin-top:3px;width:16px;height:16px;accent-color:var(--accent)}
.toggle span small{display:block;color:var(--muted);font-size:13px}
.ulist{display:flex;flex-direction:column}
.urow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.urow:last-child{border-bottom:0}
.urow .who b{display:block}
.urow .who span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.urow .acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.urow select{padding:5px 8px;font-size:13px}
.linkbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linkbox code{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px;overflow-wrap:anywhere;flex:1;min-width:0;user-select:all}

/* Projects */
.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
table.tbl{border-collapse:collapse;width:100%;min-width:760px;font-size:14px}
.tbl th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:var(--surface-2)}
.tbl tfoot td{font-weight:700;background:var(--surface-2);border-top:1px solid var(--line)}
.neg{color:var(--neg)}
.posi{color:var(--new)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.kpi .k{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kpi .v{font-family:var(--f-display);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi .s{font-size:13px;color:var(--muted)}
.kpi input{font-family:var(--f-display);font-size:22px;font-weight:700;width:100%;padding:4px 8px}
.bar{height:12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;display:flex}
.bar i{display:block;height:100%}
.bar .b-cost{background:var(--hot)}
.bar .b-margin{background:var(--new)}
.bar-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:6px}
.bar-legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--c)}
.items{display:flex;flex-direction:column}
.item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.item:last-child{border-bottom:0}
.item .d b{display:block;font-weight:600}
.item .d span{font-size:13px;color:var(--muted)}
.item .amt{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.item .x{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;padding:2px 6px;border-radius:6px}
.item .x:hover{background:var(--surface-2);color:var(--neg)}
.paid-btn{border:0;cursor:pointer}
.add-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:12px;border-top:1px dashed var(--line)}
.add-row .full{grid-column:1/-1}
.future{font-size:13px;color:var(--muted);border:1px dashed var(--line);border-radius:10px;padding:10px 12px}

.empty{padding:36px 20px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.empty strong{display:block;color:var(--fg);font-size:16px;margin-bottom:4px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:#fff;padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px;z-index:50;max-width:calc(100% - 32px);text-align:center}
.toast.bad{background:var(--neg)}


/* Neliölogo */
.logo-sq{width:46px;height:46px;border-radius:12px;overflow:hidden;flex:none;display:grid;place-items:center;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.logo-sq img{width:100%;height:100%;object-fit:contain;display:block}
.logo-sq.solid img{object-fit:contain}
.logo-sq.clear{padding:5px}
.logo-sq.sm{width:32px;height:32px;border-radius:8px}
.logo-sq.sm.clear{padding:3px}
.logo-sq.lg{width:60px;height:60px;border-radius:14px}
.logo-sq.lg.clear{padding:7px}
.logo-sq.xl{width:84px;height:84px;border-radius:18px;box-shadow:0 0 0 3px rgba(255,255,255,.35),0 8px 20px rgba(0,0,0,.18)}
.logo-sq.xl.clear{padding:10px}
.logo-tile.xl{width:84px;height:84px;border-radius:18px;font-size:30px;box-shadow:0 0 0 3px rgba(255,255,255,.35)}

/* Yrityksen ilme: yläpalkki ja tausta. Tyyli (värillinen, liukuväri, tumma, vaalea) asettaa muuttujat --bar, --hero jne. */
body.branded{background:color-mix(in srgb,var(--bp) 6%,#f7f9f9)}
body.branded .topbar{background:var(--bar);border-bottom:var(--bar-line,0) solid var(--bp);box-shadow:0 2px 10px rgba(0,0,0,.12)}
body.branded .brand{color:var(--bar-fg)}
body.branded .brand .powered{color:var(--bar-fg);opacity:.75}
body.branded .brand-mark i{background:var(--bar-fg)}
body.branded .nav{background:color-mix(in srgb,var(--bar-fg) 10%,transparent);border-color:color-mix(in srgb,var(--bar-fg) 20%,transparent)}
body.branded .nav button{color:var(--bar-fg);opacity:.85}
body.branded .nav button:hover{opacity:1}
body.branded .nav button[aria-current="page"]{background:var(--nav-on);color:var(--nav-on-fg);opacity:1}
body.branded .usr{color:var(--bar-fg)}
body.branded .usr .who{opacity:.85}
body.branded .usr .btn{background:transparent;color:var(--bar-fg);border-color:color-mix(in srgb,var(--bar-fg) 40%,transparent)}
body.branded .crumbs span{color:var(--muted)}

/* Otsikkoalue yrityksen väreillä */
.hero{position:relative;overflow:hidden;border-radius:18px;padding:22px;margin-bottom:14px;color:var(--hero-fg,var(--bp-fg));background:var(--hero,var(--bp));display:flex;flex-direction:column;gap:18px;box-shadow:0 10px 30px color-mix(in srgb,var(--bp) 30%,transparent);border:var(--hero-line,0) solid color-mix(in srgb,var(--bp) 25%,transparent)}
.hero::before{content:"";position:absolute;right:-70px;top:-90px;width:280px;height:280px;border-radius:50%;background:var(--hero-dot,var(--bs));opacity:.28}
.hero::after{content:"";position:absolute;right:140px;bottom:-120px;width:220px;height:220px;border-radius:50%;background:var(--hero-dot,var(--bs));opacity:.14}
.hero>*{position:relative;z-index:1}
.hero-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.hero .co-title{gap:18px}
.hero .eyebrow,.hero .sub{color:var(--hero-fg,var(--bp-fg));opacity:.82}
.hero h1{font-size:clamp(26px,3.6vw,38px)}
.hero .btn{background:color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 14%,transparent);color:var(--hero-fg,var(--bp-fg));border-color:color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 32%,transparent)}
.hero .btn.btn-solid{background:var(--hero-fg,var(--bp-fg));color:var(--hero-on,var(--bp));border-color:transparent}
.hero-acts{display:flex;gap:8px;flex-wrap:wrap}
.hero-acts .ico{width:16px;height:16px;flex:none}
.hero-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.hero-kpis div{background:color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 10%,transparent);border:1px solid color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 18%,transparent);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;min-width:0}
.hero-kpis b{font-family:var(--f-display);font-size:26px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-kpis span{font-size:12px;font-weight:600;opacity:.85}
.suggest{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:14px}
.suggest .sw{width:26px;height:26px;border-radius:7px;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.bp-hero{display:flex;align-items:center;gap:12px;padding:14px;font-family:var(--f-display);font-size:18px}
@media (max-width:640px){.hero{padding:16px}.hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-kpis b{font-size:21px}.logo-sq.xl,.logo-tile.xl{width:64px;height:64px;border-radius:14px}}

@media (max-width:980px){
  .grid-2{grid-template-columns:minmax(0,1fr)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .board{grid-template-columns:repeat(5,84%);scroll-snap-type:x mandatory}
  .kcol{scroll-snap-align:start}
  .toolbar .hint{display:none}
  .preview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid,.add-row{grid-template-columns:minmax(0,1fr)}
  .urow{grid-template-columns:auto minmax(0,1fr)}
  .urow .acts{grid-column:1/-1;justify-content:flex-start}
  .kpi .v{font-size:22px}
  .usr .who{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Ulkoasun aloitus (ohjattu) */
.setup{max-width:1100px;margin:0 auto}
.setup-steps{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:0;list-style:none}
.setup-steps li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:14px;color:var(--muted)}
.setup-steps li b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-size:13px}
.setup-steps li[aria-current="step"]{color:var(--fg);border-color:var(--accent)}
.setup-steps li[aria-current="step"] b,.setup-steps li.ok b{background:var(--accent);color:var(--accent-fg)}
.setup-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:4px}
.style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.style-opt{display:flex;flex-direction:column;gap:8px;text-align:left;padding:10px;border-radius:12px;border:2px solid var(--line);background:var(--surface)}
.style-opt[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.style-opt .sw-bar{height:30px;border-radius:8px;display:flex;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:700}
.style-opt .sw-bar i{width:16px;height:16px;border-radius:4px;background:currentColor;opacity:.85}
.style-opt b{font-size:14px}.style-opt small{color:var(--muted);font-size:12.5px}
.mini-app{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--bp) 6%,#f7f9f9)}
.mini-app .ma-top{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bar);color:var(--bar-fg);border-bottom:var(--bar-line,0) solid var(--bp);font-weight:700;font-size:14px}
.mini-app .ma-top .ma-nav{margin-left:auto;display:flex;gap:4px}
.mini-app .ma-top .ma-nav span{padding:3px 9px;border-radius:999px;font-size:12px;opacity:.85}
.mini-app .ma-top .ma-nav span.on{background:var(--nav-on);color:var(--nav-on-fg);opacity:1}
.mini-app .ma-body{padding:12px}
.mini-app .hero{margin:0;padding:14px;gap:12px}
.mini-app .hero h1{font-size:20px}
.mini-app .hero-kpis b{font-size:18px}
.mini-app .ma-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.mini-app .ma-cols div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:12px;font-weight:700}
.mini-app .ma-cols i{display:block;height:8px;border-radius:4px;background:var(--surface-2);margin-top:6px}
.mini-app .ma-cols .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--new);margin-right:5px}
.mini-app .btn-primary{padding:6px 12px;font-size:13px}
.setup-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px dashed var(--accent);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.setup-banner p{margin:0;flex:1;min-width:200px}
@media (max-width:640px){.style-grid{grid-template-columns:minmax(0,1fr)}.mini-app .ma-top .ma-nav{display:none}.mini-app .hero-kpis{display:none}}

/* Myynti */
.sales-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:13px;font-weight:600}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.sales-tip{display:flex;gap:16px;flex-wrap:wrap;align-items:baseline;min-height:42px;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:14px}
.sales-scroll{overflow-x:auto;margin:0 -4px}
.sales-svg{display:block;width:100%;min-width:560px;height:auto}
.sales-svg .ax{font-size:12px;fill:var(--muted);font-family:var(--f-body)}
.sbar{cursor:pointer;outline:none}
.sbar .hit{transition:fill .12s}
.sbar:hover .hit,.sbar.on .hit,.sbar:focus-visible .hit{fill:color-mix(in srgb,var(--accent) 8%,transparent)}
.sbar:focus-visible .hit{stroke:var(--accent);stroke-width:2}
@media (max-width:640px){.sales-tip{gap:10px;font-size:13px}}
.sales-svg .ax.yr{font-weight:700;fill:var(--fg)}
.sales-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:-4px 0 14px}
.sales-filters .field{min-width:160px}
.sales-filters .sp-range{padding-bottom:10px;font-size:13px}
.sales-svg.dense .ax{font-size:10px}
.h-note{font-size:13px;font-weight:600;margin-left:4px}
/* Ostolaskun luku */
.inv-drop{margin-top:4px;padding:12px}
.inv-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}
.inv-ico svg{width:26px;height:26px}
.inv-review{margin-top:16px;border:2px solid var(--accent)}
.inv-review h3{font-size:16px}
.ir-top{align-items:end}
.ir-rate{width:64px;padding:2px 6px;display:inline-block}
.ir-tbl{min-width:560px}
.ir-tbl td{padding:6px 8px}
.ir-tbl input[type=text],.ir-tbl select{width:100%;min-width:120px;padding:6px 8px}
.ir-tbl input[type=number]{width:100px;padding:6px 8px;text-align:right}
.ir-tbl tr.off td{opacity:.45}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Paikka, uusi asiakas ja kartta */
.place-hit{margin:0;font-weight:600;color:var(--fg)}
.place-sugg{display:flex;flex-wrap:wrap;gap:6px}
.place-sugg .mini{padding:6px 10px}
.addr-form{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-2)}
.map-card{margin-top:16px}
.sales-map{height:440px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#e8eef0;z-index:0}
.legend svg{flex:none}
.house-pin{background:none;border:0}
.house-pin svg{filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));display:block}
.map-pop{display:flex;flex-direction:column;gap:4px;min-width:180px;font-family:var(--f-body);font-size:13px}
.map-pop b{font-size:14px}
.map-pop .btn{margin-top:4px;padding:6px 10px;font-size:13px}
.leaflet-container{font-family:var(--f-body)}
@media (max-width:640px){.sales-map{height:340px}}

/* Tarjoukset */
:root{--offer:#f08c00;--offer-soft:#fff1e0;--call:#f5b700;--call-soft:#fff6cc;--deal:#2f9e44;--deal-soft:#e3f6e7;--late:#e03131;--late-soft:#ffe3e3}
.hk-btn{all:unset;cursor:pointer;background:color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 10%,transparent);border:1px solid color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 18%,transparent);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;min-width:0}
.hk-btn:hover{background:color-mix(in srgb,var(--hero-fg,var(--bp-fg)) 18%,transparent)}
.hk-btn:focus-visible{outline:2px solid var(--hero-fg,#fff);outline-offset:2px}
.hk-btn b{font-family:var(--f-display);font-size:26px;line-height:1.15}
.hk-btn span{font-size:12px;font-weight:600;opacity:.9}
.toolbar .split{margin-left:auto;position:relative;display:flex;align-items:stretch}
.split .split-main{border-top-right-radius:0;border-bottom-right-radius:0}
.split .split-arrow{display:inline-flex;align-items:center;gap:8px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:0;background:var(--offer);border-color:var(--offer);color:#fff;font-weight:700;padding:0 14px 0 16px;min-height:44px}
.split .split-arrow:hover{background:color-mix(in srgb,var(--offer) 85%,#000)}
.split .split-arrow .chev{width:22px;height:22px;transition:transform .15s}
.split .split-arrow[aria-expanded="true"] .chev{transform:rotate(180deg)}
.split-count{background:#fff;color:var(--offer);border-radius:999px;padding:1px 8px;font-size:13px;font-weight:800}
.offers-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(420px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.18);overflow:hidden}
.om-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--offer-soft)}
.om-item{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}
.om-item:hover,.om-item:focus-visible{background:var(--surface-2)}
.om-name{flex:1;min-width:0;display:flex;flex-direction:column;font-weight:700}
.om-name small{font-weight:500;color:var(--muted)}
.om-all{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%;padding:12px 14px;font-weight:700;color:var(--offer);text-align:center}
.om-all:hover{background:var(--offer-soft)}
.board-hint{margin:-4px 0 8px;font-size:13px}
.kc-offer{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:13px;font-weight:700;color:#b35c00}
.kc-call{background:var(--call-soft);color:#7a5c00;border-radius:999px;padding:1px 8px;font-weight:700}
.kc-call.late{background:var(--late-soft);color:var(--late)}
.offer-list{display:flex;flex-direction:column;gap:8px}
.offer-row{border:1px solid var(--line);border-left:4px solid var(--offer);border-radius:10px;padding:10px 12px;display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;background:#fff}
.offer-row.of-kauppa{border-left-color:var(--deal)}
.offer-row.of-havitty{border-left-color:#adb5bd;opacity:.85}
.of-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.of-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.of-st{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;color:#fff;background:var(--offer)}
.of-st.of-kauppa{background:var(--deal)}.of-st.of-havitty{background:#868e96}
.of-content{font-size:14px;white-space:pre-wrap}
.of-call{font-size:12px;font-weight:800;border-radius:999px;padding:2px 8px;background:var(--call-soft);color:#7a5c00;white-space:nowrap}
.of-call.late{background:var(--late-soft);color:var(--late)}.of-call.now{background:var(--call);color:#3d2e00}
.of-acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.btn-won{background:var(--deal);border-color:var(--deal);color:#fff}
.btn-won:hover{background:color-mix(in srgb,var(--deal) 85%,#000)}
.btn-call{background:var(--call);border-color:var(--call);color:#3d2e00}
.offer-form,.loss-box{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px;width:100%}
.offer-form.form-grid{display:grid}
.loss-box .seg{flex-wrap:wrap}
.kpis.kpis-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.kpi-call{background:var(--call-soft);border-color:var(--call)}
.offers-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;align-items:start}
.of-open{border-top:4px solid var(--offer)}
.of-calls{border-top:4px solid var(--call);background:var(--call-soft)}
.of-calls h2{color:#5c4500}
.of-list{display:flex;flex-direction:column;gap:6px}
.of-item,.call-item{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;width:100%}
.of-item:hover,.call-item:hover,.of-item:focus-visible,.call-item:focus-visible{border-color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.of-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;margin-right:6px}
.of-who{flex:1;min-width:0;display:flex;flex-direction:column}
.of-who small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis}
.of-snip{white-space:nowrap}
.of-amt{font-size:16px;white-space:nowrap}
.of-reason{font-size:12px;background:#eef0f2;border-radius:999px;padding:2px 8px;white-space:nowrap}
.call-item{border-color:var(--call)}
.call-item.late{border-color:var(--late);background:#fff5f5}
.call-item.now{background:#fff;border-width:2px}
.call-date{font-size:12px;font-weight:800;min-width:64px;color:#7a5c00}
.call-item.late .call-date{color:var(--late)}
.of-sum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.of-sum div{background:var(--surface-2);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.of-sum b{font-family:var(--f-display);font-size:24px}
.of-sum span{font-size:12.5px;color:var(--muted);font-weight:600}
.of-big{display:flex;flex-direction:column}
.of-big b{font-family:var(--f-display);font-size:34px;color:var(--offer)}
.of-content-big{white-space:pre-wrap;background:var(--surface-2);border-radius:10px;padding:10px 12px}
.loss-bars{display:flex;flex-direction:column;gap:8px}
.lb-row{display:grid;grid-template-columns:150px minmax(0,1fr) 40px 90px;gap:10px;align-items:center}
.lb-track{height:14px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.lb-track i{display:block;height:100%;background:#868e96;border-radius:999px}
details.card summary{cursor:pointer}
@media (max-width:980px){.offers-grid{grid-template-columns:minmax(0,1fr)}.kpis.kpis-6,.hero-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.of-sum{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.kpis.kpis-6,.hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.of-sum{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar .split{margin-left:0;width:100%}.split .split-main{flex:1}.lb-row{grid-template-columns:110px minmax(0,1fr) 30px}.lb-row .sub{display:none}}
.mini-app .hero-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
/* Asiakaskortti: kategoriat, alapalkki, aikajana, soittopyyntö */
.t-offer{--tc:var(--offer);--ts:var(--offer-soft)}
.cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cat-btn{border:2px solid color-mix(in srgb,var(--tc) 45%,#fff);background:#fff;color:var(--fg);border-radius:12px;padding:12px 8px;font-weight:800;font-size:15px;min-height:48px}
.cat-btn:hover{background:var(--ts)}
.cat-btn[aria-pressed="true"]{background:var(--tc);border-color:var(--tc);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--tc) 35%,transparent)}
.cat-note{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}
.cat-note p{margin:0}
.btn-offer{background:var(--offer);border-color:var(--offer);color:#fff;font-weight:700}
.btn-offer:hover{background:color-mix(in srgb,var(--offer) 85%,#000)}
.drawer.has-foot{padding-bottom:0}
.d-foot{position:sticky;bottom:0;z-index:2;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;padding:12px 18px;margin-top:auto;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 16px rgba(0,0,0,.06)}
.d-foot>span{margin-right:auto;font-size:13px}
.dirty-dot{color:#b35c00;font-weight:700}.dirty-dot::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--offer);margin-right:6px}
.d-foot.pulse{animation:pulse .6s}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.warn-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--offer-soft);border:1px solid var(--offer);border-radius:10px;padding:8px 10px}
.warn-bar span{flex:1;font-weight:700}
.tl-sort{all:unset;cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);padding:4px 8px;border-radius:8px;border:1px solid var(--line)}
.tl-sort:hover,.tl-sort:focus-visible{color:var(--fg);border-color:var(--accent)}
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;position:relative}
.timeline li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.timeline li:last-child{border-bottom:0}
.tl-ico{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-size:13px}
.tl-call .tl-ico{background:var(--call-soft)}.tl-offer .tl-ico{background:var(--offer-soft)}.tl-won .tl-ico{background:var(--deal-soft)}.tl-lost .tl-ico{background:#eef0f2}
.tl-body time{display:block;font-size:12px;color:var(--muted)}
.tl-body p{margin:2px 0 0;white-space:pre-wrap}
.tl-of{display:inline-block;font-size:11.5px;font-weight:700;color:#b35c00;background:var(--offer-soft);border-radius:999px;padding:1px 8px;margin-top:2px}
.call-sec{background:color-mix(in srgb,var(--call-soft) 60%,#fff)}
.call-box{display:flex;flex-direction:column;gap:2px;border:1px solid var(--call);background:var(--call-soft);border-radius:10px;padding:10px 12px}
.call-box.late{border-color:var(--late);background:#fff5f5}.call-box.late b{color:var(--late)}
.call-form{border:1px solid var(--call);border-radius:10px;padding:10px;background:#fff}
.consent.disabled{opacity:.6}
/* Tarjouslaskuri */
body.modal-open{overflow:hidden}
.modal-back{position:fixed;inset:0;background:rgba(10,20,24,.5);z-index:60}
.modal{position:fixed;z-index:61;inset:24px max(16px,calc((100vw - 1080px)/2));background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.m-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--offer-soft)}
.m-head h2{font-size:22px}
.m-body{flex:1;overflow:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}
.m-foot{display:flex;gap:10px 16px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:10px 20px;border-top:1px solid var(--line);background:#fff}
.m-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.kate-bar{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:14px}
.kate-bar .kate{font-size:13.5px}
.vat-g{color:#8a979a;font-size:12.5px;font-weight:500}
.calc-h{margin:4px 0 0}
.calc-rows{display:flex;flex-direction:column;gap:8px}
.c-row{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-left:4px solid var(--offer);border-radius:10px;padding:8px 10px;background:#fff}
.c-main{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(70px,.7fr) minmax(76px,.7fr) minmax(90px,.9fr) auto;gap:8px;align-items:end}
.c-more{display:flex;gap:8px;flex-wrap:wrap}.c-more .c-pn{flex:1 1 260px}.c-more .c-sm{flex:0 1 170px}
.c-row select{padding:7px 8px}
.c-foot{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}.c-foot .linkbtn{font-size:12.5px}
.check-inline{display:flex;gap:8px;align-items:center;align-self:end;padding-bottom:10px;font-weight:600}
.rt-row input[hidden]{display:block;visibility:hidden}
.c-row .field input{padding:7px 9px}
.c-tot{display:flex;gap:6px;align-items:center;justify-content:flex-end;padding-bottom:8px;min-width:110px}
.c-tot b{font-size:15px}
.c-info{margin:0;font-size:12.5px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.kate{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}
.k-ok{background:#e3f6e7;color:#1e6b30}.k-mid{background:#fff3c4;color:#7a5a00}.k-bad{background:#ffe3e3;color:#a61e1e}.k-none{background:var(--surface-2);color:var(--muted);font-weight:600}
b.kate{font-size:13px}
.disc-msg{font-size:12.5px;font-weight:600}.disc-msg.warn{color:#8a6100}.disc-msg.bad{color:#c92a2a}
.cs-int{border-bottom:1px dashed var(--line);padding-bottom:8px;margin-bottom:4px;display:flex;flex-direction:column;gap:4px}
.cs-int .sub{font-size:12px;margin:0}.cs-cust{display:flex;flex-direction:column;gap:6px}
.calc-sum .eyebrow{margin:0}
.room-pick{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-weight:700;cursor:pointer;font:inherit;font-weight:700}
.chip-btn:hover{border-color:var(--offer)}.chip-btn[aria-pressed="true"]{background:var(--offer);border-color:var(--offer);color:#fff}
.room-panel{border:1px solid var(--offer);background:var(--offer-soft);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.room-panel .sub{margin:0;font-size:12.5px}
.form-grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.text-answer{width:100%;min-height:90px;font:inherit;font-size:17px;padding:12px;border:1px solid var(--line);border-radius:12px}
.ind-pick{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:8px}
.ind-pick legend{font-weight:700;padding:0 4px}.ind-group{display:flex;flex-direction:column;gap:4px}.ind-group>.sub{font-size:12.5px}
.cat-tools{gap:10px;flex-wrap:wrap}.cat-tools input[type=search]{min-width:200px}
.cat-head,.cat-row{display:grid;grid-template-columns:minmax(0,2.6fr) 76px 120px 104px 80px 74px 64px;gap:6px;align-items:center}
.cat-head{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 4px 4px;border-bottom:1px solid var(--line)}
.cat-sec{border-bottom:1px solid var(--line)}
.cat-sec>summary{cursor:pointer;padding:10px 4px;list-style-position:inside}
.cat-sec>summary .sub{font-size:12.5px}
.cat-row{padding:4px;border-radius:8px}.cat-row:hover{background:var(--surface-2)}
.cat-row input,.cat-row select{padding:6px 8px;min-width:0;width:100%}
.cat-row.open{background:var(--surface-2);margin:4px 0}
.cat-more{grid-column:1/-1;display:flex;flex-direction:column;gap:8px;padding:8px 4px 4px}
.cat-more .sub{margin:0;font-size:12.5px}
.new-item{border:1px solid var(--accent);border-radius:12px;padding:10px 12px;margin:8px 0;display:flex;flex-direction:column;gap:8px;background:var(--accent-soft)}
.new-item h3{margin:0}
.rt-list{display:flex;flex-direction:column;gap:8px}
.rt-item{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.rt-item.open{background:var(--surface-2)}
.rt-item .sub{font-size:12.5px}
.rt-ed{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.rt-rows{display:flex;flex-direction:column;gap:6px}
.rt-row{display:grid;grid-template-columns:minmax(0,1fr) 190px 80px auto;gap:6px;align-items:center}
.rt-row select,.rt-row input{padding:6px 8px;min-width:0;width:100%}
@media (max-width:820px){.c-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.c-main .c-name{grid-column:1/-1}.form-grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-head{display:none}.cat-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);margin:6px 0}.cat-row>input[data-ci="name"]{grid-column:1/-1}
  .rt-row{grid-template-columns:minmax(0,1fr) auto}.rt-row select[data-rtr="item_id"]{grid-column:1/-1}}
.calc-add{gap:8px}
.calc-add select{max-width:260px}
.calc-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:16px;align-items:start}
.calc-sum{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:var(--surface-2)}
.cs-row{display:flex;justify-content:space-between;gap:10px}
.cs-net{border-top:1px solid var(--line);padding-top:6px;font-weight:700}
.cs-gross{font-size:18px;font-weight:800;color:var(--accent);border-top:2px solid var(--line);padding-top:6px}
.cs-khv{font-size:13px;background:#fff;border-radius:8px;padding:8px 10px;margin-top:4px}
.analysis{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.analysis h3{margin:0}
.analysis ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.analysis .tip{margin:0;background:var(--accent-soft);border-radius:10px;padding:8px 12px}
.analysis .btn[disabled]{align-self:flex-start;opacity:.55;cursor:not-allowed}
@media (max-width:820px){.modal{inset:0;border-radius:0}.calc-bottom{grid-template-columns:minmax(0,1fr)}.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.drawer{width:min(540px,100%)}

/* Laskurin tarkistuslista */
.calc-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.calc-tools h3{margin:0 6px 0 0}.calc-tools input[type=search]{flex:1 1 220px;min-width:160px}
.calc-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;flex-shrink:0}
.m-body>*{flex-shrink:0}
.k-head,.k-row{display:grid;grid-template-columns:34px minmax(0,1fr) 78px 76px 96px 96px 30px;gap:6px;align-items:center}
.k-head{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.cg{border-bottom:1px solid var(--line)}.cg:last-child{border-bottom:0}
.cg>summary{cursor:pointer;display:flex;gap:10px;align-items:center;padding:11px 12px;font-weight:700;list-style:none}
.cg>summary::-webkit-details-marker{display:none}
.cg>summary::before{content:'▸';color:var(--muted);transition:transform .15s}.cg[open]>summary::before{transform:rotate(90deg)}
.cg-name{flex:1}.cg-sel{background:#e3f6e7;color:#1e6b30;border-radius:999px;padding:2px 10px;font-size:13px}.cg-none{color:var(--muted);font-weight:500;font-size:13px}
.cg-body{padding:0 4px 6px}
.k-sec{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 10px 4px}
.k-own{border-bottom:1px solid var(--line);padding-bottom:6px;background:var(--offer-soft)}
.k-row{padding:4px 6px;border-radius:8px;border-left:3px solid transparent}
.k-row:hover{background:var(--surface-2)}
.k-row.on{background:#f3fbf5;border-left-color:#2f9e44}
.k-row:not(.on) .k-qty,.k-row:not(.on) .k-unit,.k-row:not(.on) .k-price{opacity:.55}
.k-chk{display:flex;justify-content:center}.k-chk input{width:20px;height:20px;accent-color:#2f9e44;cursor:pointer}
.k-name{display:flex;flex-direction:column;min-width:0}.k-name small{font-size:12px;line-height:1.3}
.k-nm-t{font-weight:600}
.k-row input,.k-row select{padding:6px 8px;min-width:0;width:100%}
.k-tot{text-align:right;font-size:14px}
.k-more{grid-column:2/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:2px 0 4px}
.k-more .k-pn{flex:1 1 240px;width:auto}.k-more .linkbtn{font-size:12.5px}
.k-sm{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted)}.k-sm input{width:80px}
.k-kate{margin-left:auto;font-size:12.5px}
.pay{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.pay-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 64px 110px 30px;gap:6px;align-items:center}
.pay-row input,.pay-row select{padding:6px 8px;min-width:0;width:100%}.pay-row b{text-align:right}.pay-rest{text-align:center}
@media (max-width:820px){
  .k-head{display:none}
  .k-row{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr) 30px}
  .k-row .k-name{grid-column:2/4}.k-row .k-qty{grid-column:2}.k-row .k-unit{grid-column:3}.k-row .k-price{grid-column:2}.k-row .k-tot{grid-column:3}
  .k-more{grid-column:2/-1}.k-kate{margin-left:0}
  .pay-row{grid-template-columns:minmax(0,1fr) 70px 56px;}.pay-row b{grid-column:1/3;text-align:left}
  .m-foot{padding:8px 12px}.kate-bar{font-size:13px}
}
.sec-edit{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:4px 4px 10px;font-size:12.5px;color:var(--muted)}
.sec-edit label{display:flex;flex-direction:column;gap:3px;font-weight:600}.sec-edit input{padding:6px 8px;min-width:200px}
.of-kate{font-size:13px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:2px}
.of-amt-w{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.of-amt-w .kate{font-size:11.5px;padding:1px 7px}
@media (max-width:820px){.m-btns [data-action="calc-cancel"]{display:none}.m-btns .btn{padding:9px 12px}}

/* =================== Puhelin (verrokki iPhone 16, 393 × 852) =================== */
.tabbar,.fab,.col-tabs{display:none}
.lg-only{display:inline}
.quick{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 8px}
.q-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:12px;padding:9px 14px;font-weight:700;text-decoration:none;color:var(--fg);background:#fff;font-size:14px}
.q-btn:hover{border-color:var(--accent)}
.q-btn.q-call{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.home-acts{display:flex;gap:8px}
.calc-more{border:1px solid var(--line);border-radius:12px;padding:0 12px}
.calc-more>summary{cursor:pointer;padding:11px 0;font-weight:700}
.calc-more[open]{padding-bottom:12px}
@media (max-width:760px){
  html{-webkit-text-size-adjust:100%}
  body{-webkit-tap-highlight-color:transparent}
  input,select,textarea{font-size:16px!important}
  .btn{min-height:44px}
  .mini{min-height:36px}
  .lg-only{display:none}
  /* Yläpalkki tiiviiksi, valikko alapalkkiin */
  body.has-tabbar #nav,body.has-tabbar #user-slot{display:none}
  .topbar .wrap{flex-wrap:nowrap;padding-block:8px}
  .brand{font-size:16px;min-width:0}
  body.has-tabbar{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:18;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 18px rgba(10,30,34,.07)}
  .tabbar:empty,body.bare .tabbar,body.modal-open .tabbar{display:none}
  .tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:inherit;font-size:11px;font-weight:700;color:var(--muted);padding:6px 0;min-height:52px;border-radius:12px}
  .tabbar svg{width:24px;height:24px}
  .tabbar button[aria-current="page"]{color:var(--accent)}
  .tabbar button[aria-current="page"] svg{background:var(--accent-soft);border-radius:10px;padding:2px 10px;box-sizing:content-box}
  /* Lisää-valikko alhaalta */
  .sheet-back{position:fixed;inset:0;background:rgba(10,22,24,.38);z-index:30}
  .sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;background:#fff;border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:4px;box-shadow:0 -10px 40px rgba(0,0,0,.2)}
  .sheet-grip{width:40px;height:5px;border-radius:3px;background:var(--line);align-self:center;margin:4px 0 8px}
  .sheet-item{border:0;background:none;text-align:left;font:inherit;font-size:17px;font-weight:700;padding:14px 8px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;color:var(--fg)}
  .sheet-item svg{width:20px;height:20px}
  .sheet-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px}
  .sheet-foot .sub{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* CRM: tiivis yläosa */
  .hero{padding:14px;gap:12px;border-radius:16px;margin-bottom:10px}
  .hero .logo-sq,.hero .logo-tile{display:none}
  .hero h1{font-size:21px}
  .hero .sub{display:none}
  .hero-main{flex-wrap:nowrap!important;align-items:center}
  .hero-acts [data-action="open-setup"]{display:none}
  .hero-acts .btn{min-height:36px;padding:6px 12px}
  .hero-kpis{display:flex!important;overflow-x:auto;gap:8px;scroll-snap-type:x mandatory;margin:0 -14px;padding:0 14px;scrollbar-width:none}
  .hero-kpis::-webkit-scrollbar{display:none}
  .hero-kpis>*{flex:0 0 40%;scroll-snap-align:start}
  .hero-kpis b{font-size:20px!important}
  .criteria-line,.board-hint{display:none}
  .toolbar{margin:8px 0}
  .toolbar input[type="search"]{flex:1 1 100%;max-width:none}
  .toolbar select{flex:1 1 40%;min-width:0}
  .toolbar [data-action="copy-table"],.toolbar .split{display:none}
  .col-tabs{display:flex;gap:6px;overflow-x:auto;position:sticky;top:var(--tb-h,46px);z-index:6;background:var(--bg,#fff);margin:0 -16px 8px;padding:6px 16px;scrollbar-width:none}
  .col-tabs::-webkit-scrollbar{display:none}
  .ct{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:14px;font-weight:700;color:var(--fg);position:relative}
  .ct b{background:var(--surface-2);border-radius:999px;padding:1px 8px;font-size:12.5px}
  .ct[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
  .ct[aria-selected="true"] b{background:rgba(255,255,255,.25);color:inherit}
  .ct .new-dot{position:absolute;top:2px;right:2px}
  .board{display:block!important;overflow:visible}
  .board .kcol{display:none}
  .board .kcol.mshow{display:block}
  .kcol-head{display:none}
  .kcard{padding:14px}
  .fab{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-fg);font-size:32px;font-weight:500;line-height:1;box-shadow:0 8px 22px rgba(0,0,0,.25);z-index:17}
  body.modal-open .fab{display:none}
  /* Kortit ja laatikot koko leveydelle */
  .drawer{width:100%!important;border-left:0;padding-top:env(safe-area-inset-top,0px)}
  .d-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
  .quick .q-btn{flex:1 1 0;justify-content:center;flex-direction:column;gap:2px;padding:10px 4px;font-size:12.5px}
  .modal{padding-top:env(safe-area-inset-top,0px)}
  .m-head{padding:12px 16px}.m-head h2{font-size:19px}.m-head .sub{display:none}
  .m-body{padding:12px 14px}
  .m-foot{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}
  .room-pick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px;padding:0 14px}
  .room-pick .chip-btn{flex:0 0 auto}
  .kate-bar{width:100%;justify-content:space-between}
  .kate-bar .vat-g{display:none}
  .m-btns{width:100%}.m-btns .btn{flex:1}
  .page-head{align-items:flex-start}
  .totals{gap:14px}
  .home-acts{order:3}
  /* Hinnasto: kevyt lista, muokkaus napautuksesta */
  .cat-row:not(.open)>select,.cat-row:not(.open)>[data-ci="min_charge"],.cat-row:not(.open)>[data-ci="base_qty"]{display:none}
  .cat-row:not(.open){grid-template-columns:minmax(0,1fr) 96px 60px;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0}
  .cat-row:not(.open)>span{display:none}
  .sec-edit input{min-width:0;width:100%}.sec-edit label{flex:1 1 140px}
  .cat-tools input[type=search]{min-width:0;flex:1}
}
@media (max-width:760px){
  .lg-only-b{display:none!important}
  /* Sivujen otsikot tiiviiksi */
  .page-head{margin-bottom:10px;gap:10px}
  .page-head .co-title .logo-sq,.page-head .co-title .logo-tile{display:none}
  .page-head h1{font-size:21px}
  .page-head .co-title .sub{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  /* Projektitaulukko korteiksi */
  .ptbl-wrap{overflow:visible;border:0;background:none;box-shadow:none}
  .ptbl thead{display:none}
  .ptbl,.ptbl tbody,.ptbl tfoot{display:block}
  .ptbl tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px}
  .ptbl td{display:block;border:0!important;padding:0!important;text-align:left!important}
  .ptbl td:nth-child(1),.ptbl td:nth-child(2){grid-column:1/-1}
  .ptbl td[data-l]::before{content:attr(data-l);display:block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  .ptbl tfoot tr{background:var(--surface-2)}
  /* Laskurin rivit: nimi ylhäällä, määrä, yksikkö, hinta ja summa yhdellä rivillä */
  .k-row{grid-template-columns:30px repeat(3,minmax(0,1fr)) minmax(72px,auto)!important;row-gap:6px}
  .k-row>.k-chk{grid-row:1;grid-column:1}
  .k-row>.k-name{grid-row:1;grid-column:2/5!important}
  .k-row>.x,.k-row>span:not(.k-kate){grid-row:1;grid-column:5;justify-self:end}
  .k-row>.k-qty{grid-row:2;grid-column:2!important}
  .k-row>.k-unit{grid-row:2;grid-column:3!important}
  .k-row>.k-price{grid-row:2;grid-column:4!important}
  .k-row>.k-tot{grid-row:2;grid-column:5!important;align-self:center}
  .k-row>.k-more{grid-row:3;grid-column:2/-1!important}
  .k-row:not(.on){padding-block:8px}
}
@media (max-width:380px){.hero-kpis>*{flex-basis:46%}.ct{padding:7px 11px;font-size:13px}}
.sales-map,.leaflet-container{position:relative;z-index:0;isolation:isolate}
.card,.grid-2>*,.offers-grid>*{min-width:0}.sales-scroll{max-width:100%}

@media (max-width:760px){.tbl-wrap:not(.ptbl-wrap){overflow-x:auto;max-width:100%}.ptbl{min-width:0!important}}
@media (max-width:760px){
  .pay-row{grid-template-columns:minmax(0,1fr) 64px minmax(96px,auto) 34px}
  .pay-row>input[data-pay="name"]{grid-column:1/-1}
  .pay-row b{grid-column:auto!important;text-align:right!important}
  .room-pick>.sub{white-space:nowrap}
}
/* Kannattavuus ja laskut */
.profit-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:6px 0}
.profit-kpis .profit-need .v,.profit-need{color:#c92a2a}
.costs-box{border:1px solid var(--line);border-radius:12px;padding:0 12px;margin-top:6px}
.costs-box>summary{cursor:pointer;padding:11px 0;font-weight:700}
.costs-box[open]{padding-bottom:12px}
.cost-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.cost-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) 110px 96px auto;gap:6px;align-items:center}
.cost-row input,.cost-row select{padding:7px 9px;min-width:0;width:100%}
.cost-new{border-top:1px dashed var(--line);padding-top:8px}
.need-lab{fill:#c92a2a!important;font-weight:700}
.inv-list{display:flex;flex-direction:column;gap:8px}
.inv-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 12px;align-items:center;border:1px solid var(--line);border-left:4px solid var(--offer);border-radius:12px;padding:10px 12px}
.inv-row.inv-maksettu{border-left-color:#2f9e44}.inv-row.inv-myohassa{border-left-color:#e03131}.inv-row.inv-mitatoity{border-left-color:#adb5bd;opacity:.65}
.inv-main{display:flex;flex-direction:column;min-width:0}.inv-main .sub{font-size:13px}
.inv-pill{background:var(--offer-soft);color:#8a4b00}.inv-maksettu .inv-pill{background:#e3f6e7;color:#1e6b30}.inv-myohassa .inv-pill{background:#ffe3e3;color:#a61e1e}.inv-mitatoity .inv-pill{background:var(--surface-2);color:var(--muted)}
.inv-amt{text-align:right;display:flex;flex-direction:column}.inv-amt small{font-size:11.5px;font-weight:500}
.inv-acts{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.btn-won-mini{background:#2f9e44;border-color:#2f9e44;color:#fff}
.iv-lines{display:flex;flex-direction:column;gap:6px}
.iv-line{display:grid;grid-template-columns:minmax(0,2.4fr) 70px 80px 110px 100px 30px;gap:6px;align-items:center}
.iv-line input,.iv-line select{padding:7px 9px;min-width:0;width:100%}.iv-line b{text-align:right}
.einv-box{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2)}
@media (max-width:760px){
  .profit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .cost-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px}
  .cost-row>input:first-child{grid-column:1/-1}
  .cost-row>.x{grid-column:3;grid-row:2}
  .cost-new{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cost-new>input:first-child{grid-column:1/-1}.cost-new .btn{grid-column:1/-1}
  .inv-row{grid-template-columns:minmax(0,1fr) auto}.inv-pill{grid-row:1;grid-column:2}.inv-amt{grid-column:2}
  .iv-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px}.iv-line>input[data-ivl="name"]{grid-column:1/-1}
  .iv-line>[data-ivl="price"]{grid-column:1}.iv-line>b{grid-column:2}
}

/* ===== Soittolista ===== */
.pill-bad{background:var(--late-soft);border-color:transparent;color:var(--late)}
.btn-big{min-height:52px;font-size:16px;padding:12px 18px;border-radius:14px}
.call-filters,.mk-filters{display:flex;flex-direction:column;gap:10px}
.cf-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cf-row>.sub{min-width:74px;font-size:13px;font-weight:600}
.cf-row select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;font:inherit;background:#fff;max-width:100%}
.call-filters .chip-btn[aria-pressed="true"],.cf-row .chip-btn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.call-start{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}
.call-list{display:flex;flex-direction:column;gap:8px}
.cl-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 14px;font:inherit;cursor:pointer;color:var(--fg)}
.cl-row:hover{border-color:var(--accent)}
.cl-n{display:flex;flex-direction:column;flex:1;min-width:0}.cl-n b,.cl-n small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border-radius:999px;padding:3px 9px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.cl-tag.hot{background:var(--hot-soft);color:var(--hot)}.cl-tag.late{background:var(--call-soft);color:#7a5a00}
.cl-go{font-weight:800;color:var(--accent);white-space:nowrap}
.cs-wrap{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.cs-top{display:flex;align-items:center;gap:12px}
.cs-prog{flex:1;height:6px;border-radius:9px;background:var(--surface-2);overflow:hidden}.cs-prog i{display:block;height:100%;background:var(--accent)}
.cs-card{display:flex;flex-direction:column;gap:12px}
.cs-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cs-name h1{margin:0;font-size:26px;line-height:1.15}
.cs-meta{margin:-6px 0 0}
.cs-chips{display:flex;flex-wrap:wrap;gap:6px}
.cs-chips .chip-btn{display:inline-flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.2}
.cs-chips .chip-btn small{font-weight:500;font-size:12px;color:var(--muted)}
.cs-call{justify-content:center;font-size:19px;min-height:60px;text-decoration:none}
.cs-res{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cs-res .btn{justify-content:center;white-space:normal;text-align:center}
.res-kiinnostunut{background:var(--deal-soft);border-color:var(--deal);color:#1e6b2e}
.res-ala_soita{grid-column:1/-1;color:var(--late)}
.cs-after,.cs-later{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface-2)}
.cs-after .cs-res .btn-primary{grid-column:1/-1}

/* ===== Kalenteri ===== */
.cal-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cal-bar select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;font:inherit;background:#fff}
.cal-wk{font-size:15px;margin-left:6px}
.cal-days{display:none}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-col{border:1px solid var(--line);border-radius:12px;padding:8px;min-height:180px;display:flex;flex-direction:column;gap:6px;background:#fff;min-width:0}
.cal-col.today{border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}
.cal-h{font-weight:800;font-size:13px;text-transform:capitalize}
.cal-empty{color:var(--muted);font-size:13px}
.cal-it{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1px;width:100%;border:0;border-radius:9px;padding:6px 8px;font:inherit;font-size:13px;cursor:pointer;line-height:1.25;min-width:0}
.cal-it small{color:var(--muted);font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-appt{background:var(--accent-soft);color:var(--fg)}.cal-appt b{color:var(--accent)}
.cal-call{background:var(--call-soft);color:var(--fg)}
.cal-add{margin-top:auto;border:1px dashed var(--line);background:none;border-radius:9px;color:var(--muted);font:inherit;font-size:16px;cursor:pointer;padding:2px}
.cal-add:hover{border-color:var(--accent);color:var(--accent)}
.d-sec .cal-it{margin-top:6px}
.appt-modal{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
.ap-sug{display:flex;flex-direction:column;gap:6px}
.consent-sec .row{margin-top:6px}
.raffle-box{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--surface-2)}
.raffle-rules summary{cursor:pointer;font-size:13px;color:var(--muted);margin:4px 0 0 26px}
.raffle-rules p{font-size:13px;color:var(--muted);margin:6px 0 0 26px}

/* ===== Markkinointi ===== */
.mk-count{margin:12px 0}
.mk-prev-card{display:flex;flex-direction:column}
.mk-prev{width:100%;flex:1;min-height:560px;border:1px solid var(--line);border-radius:12px;background:#f4f7f7}

@media (max-width:760px){
  .cal-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:10px}
  .cal-dchip{display:flex;flex-direction:column;align-items:center;gap:0;border:1px solid var(--line);background:#fff;border-radius:12px;padding:6px 0;font:inherit;font-size:12px;cursor:pointer;position:relative;color:var(--fg)}
  .cal-dchip b{font-size:17px}.cal-dchip.today{border-color:var(--accent)}
  .cal-dchip[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
  .cal-dchip i{position:absolute;top:2px;right:4px;font-style:normal;font-size:10px;font-weight:800}
  .cal-grid{display:block}.cal-col{display:none;min-height:0}.cal-col.sel{display:flex}
  .cal-it{font-size:15px;padding:10px 12px}.cal-it small{font-size:13px}
  .cal-wk{display:block;width:100%;margin:6px 0 0}
  .cal-bar>.row:first-child{flex-wrap:wrap}
  .cal-bar>.row:last-child{width:100%}.cal-bar>.row:last-child>*{flex:1}
  .appt-modal{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:92vh;border-radius:18px 18px 0 0}
  .cs-name h1{font-size:23px}
  .call-start .btn-big{width:100%}
  .cl-row .cl-tag:not(.late){display:none}
  .mk-prev{min-height:480px}
}
.warn-note{margin:0;padding:8px 12px;border-radius:10px;background:var(--call-soft);color:#6b4f00;font-size:14px;font-weight:600}
/* ===== Sovellus (iPhone) ===== */
#app-lock{position:fixed;inset:0;z-index:1000;background:#fff;display:flex;align-items:center;justify-content:center;padding:24px}
.lock-box{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.lock-box h1{margin:0;font-size:28px}.lock-box .sub{margin:0 0 12px}
.lock-ico{font-size:44px}
/* ===== Kalenteri tuntiruudukkona ===== */
.cal-tg{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.cal-row{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr))}
.cal-head{border-bottom:1px solid var(--line);background:var(--surface-2)}
.cal-corner{font-size:11px;display:flex;align-items:center;justify-content:center;text-align:center}
.cal-dh{border:0;border-left:1px solid var(--line);background:none;font:inherit;font-size:13px;padding:8px 6px;text-transform:capitalize;cursor:pointer;color:var(--fg);text-align:left}
.cal-dh.today{color:var(--accent)}.cal-dh.today b{background:var(--accent);color:var(--accent-fg);border-radius:8px;padding:1px 6px}
.cal-outrow{border-bottom:1px solid var(--line)}
.cal-out{border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal-body{position:relative}
.cal-times{position:relative}
.cal-times span{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.cal-times span:first-child{transform:none;top:2px!important}
.cal-dcol{position:relative;border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.cal-dcol.today{background:color-mix(in srgb,var(--accent) 4%,#fff)}
.cal-slot{flex:0 0 calc(var(--cal-px) / 2);height:calc(var(--cal-px) / 2);border:0;border-top:1px solid var(--line);background:none;padding:0;cursor:pointer;display:block;width:100%}
.cal-slot.half{border-top:1px dashed color-mix(in srgb,var(--line) 60%,#fff)}
.cal-slot:first-child{border-top:0}
.cal-slot:hover{background:var(--accent-soft)}
.cal-slot:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.cal-ev{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:0;text-align:left;border:0;border-left:4px solid var(--accent);border-radius:8px;background:var(--accent-soft);color:var(--fg);padding:3px 6px;font:inherit;font-size:12.5px;line-height:1.25;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.cal-ev b,.cal-ev small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev small{color:var(--muted);font-size:11.5px}
.cal-ev.short small{display:none}
.cal-ev:hover{filter:brightness(.97)}
.cal-callmark{position:absolute;z-index:3;left:2px;right:2px;transform:translateY(-50%);height:20px;border:0;border-radius:999px;background:var(--call-soft);color:#6b4f00;font:inherit;font-size:11.5px;font-weight:700;padding:0 8px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;box-shadow:0 0 0 1px #f5d87a}
.cal-now{position:absolute;z-index:4;left:0;right:0;height:2px;background:var(--late);pointer-events:none}
.cal-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--late)}
.cs-callrow{display:grid;grid-template-columns:1fr auto;gap:8px}
.cs-meet{white-space:nowrap}
@media (max-width:760px){
  .cal-row{grid-template-columns:44px 1fr}
  .cal-head{display:none}
  .cal-dcol:not(.sel),.cal-out:not(.sel){display:none}
  .cal-ev{font-size:14px;padding:4px 8px}.cal-ev small{font-size:12.5px}
  .cal-callmark{font-size:13px;height:24px}
  .cs-callrow{grid-template-columns:1fr}
}

/* ===== CRM: laaja / kapea näkymä ja aikajakso ===== */
.crm-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.period-select{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:6px 10px;font:inherit;font-weight:600;background:#fff}
.view-toggle{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);cursor:pointer;font:inherit;font-weight:700;font-size:14px;color:var(--muted)}
.vt-opt{position:relative;z-index:1;padding:6px 14px;text-align:center;transition:color .2s}
.vt-opt.on{color:var(--accent-fg)}
.vt-knob{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--accent);box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .25s ease}
.view-toggle[aria-checked="true"] .vt-knob{transform:translateX(100%)}
.nl-btn{min-height:44px;background:var(--deal);border-color:var(--deal)}
.nl-btn:hover{background:color-mix(in srgb,var(--deal) 85%,#000)}
.kcol-sum{font-weight:800;color:var(--tc)}
.t-call{--tc:#b58900;--ts:var(--call-soft)}
.board[data-view="laaja"]{grid-template-columns:repeat(7,minmax(280px,1fr));overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}
.board[data-view="laaja"] .kcol{scroll-snap-align:start}
.board[data-view="kapea"]{grid-template-columns:repeat(4,minmax(240px,1fr))}
.vcol .kcol-body{min-height:60px}
.deal-date{display:flex;align-items:center;gap:6px}
#deal-modal .modal-back{z-index:80}
.dd-box{position:fixed;z-index:81;top:50%;left:50%;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 32px));background:#fff;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.dd-box h2{margin:0;font-size:20px}.dd-box .sub{margin:-6px 0 0}
@media (max-width:760px){
  .crm-right{margin-left:0;width:100%}
  .crm-right .period-select{flex:1;min-width:0}
  .crm-right .nl-btn{display:none}
  .board[data-view]{grid-template-columns:none}
}
/* ===== Asiakaskortti (vaihtoehto C + A:n vaihepalkki) ===== */
.drawer.cdr{width:min(1120px,100%);padding:0;display:flex;flex-direction:column}
.cdr-grid{display:grid;grid-template-columns:380px minmax(0,1fr);flex:1 0 auto}
.cdr-left{background:var(--surface-2);border-right:1px solid var(--line);display:flex;flex-direction:column}
.cdr-left>.d-sec{border-bottom:1px solid var(--line);padding:14px 20px}
.cdr-map{position:relative;height:150px;background:#dfe7da;overflow:hidden;flex-shrink:0}
.cdr-mapbox{position:absolute;inset:0;z-index:0}
.cdr-map .leaflet-control-attribution{font-size:9px}
.map-ph i{position:absolute;background:#f6f8f4}
.map-ph i:nth-child(1){left:-40px;top:58px;width:520px;height:16px;transform:rotate(-8deg)}
.map-ph i:nth-child(2){left:170px;top:-20px;width:12px;height:220px;transform:rotate(12deg)}
.map-ph i:nth-child(3){left:40px;top:96px;width:90px;height:44px;border-radius:10px;background:#cddbc5}
.cdr-map .m-close{display:none;position:absolute;right:10px;top:10px;z-index:500;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.map-route{position:absolute;right:10px;bottom:10px;z-index:500;display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--fg);text-decoration:none;font-weight:700;font-size:13px;padding:7px 12px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.cdr-prof{padding:0 20px 18px;margin-top:-30px;position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--line)}
.pf-av{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;box-shadow:0 0 0 4px var(--surface-2)}
.pf-name{margin:0;font-size:24px;line-height:1.15;letter-spacing:-.01em}
.pf-sub{margin:2px 0 0;font-size:13px}
.pf-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pa{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--fg);font:inherit;font-weight:700;font-size:13.5px;text-decoration:none;cursor:pointer}
.pa:hover{border-color:var(--accent)}
.pa-main{background:var(--bp,var(--accent));border-color:var(--bp,var(--accent));color:var(--bp-fg,#fff)}
.pa-offer{background:var(--offer-soft);border-color:#f0cf9e;color:#8a450b}
.pa-off{opacity:.55;cursor:default}
.pf-mini{display:flex;gap:14px;flex-wrap:wrap;margin-top:-4px}.pf-mini a{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none}.pf-mini a:hover{color:var(--fg)}
.stage{display:flex;flex-direction:column;gap:6px}
.st-lab{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.st-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.stage.lost .st-row{grid-template-columns:1fr}
.st{display:flex;flex-direction:column;gap:5px}.st i{height:6px;border-radius:6px;background:var(--line)}
.st span{font-size:12.5px;color:var(--muted);font-weight:600}
.st.on i{background:var(--bp,var(--accent))}.st.on span{color:var(--fg)}.st.cur span{font-weight:800}
.stage.lost .st i{background:var(--late)}.stage.lost .st span{color:var(--late);font-weight:800}
.pf-list{background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column}
.pf-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #eef1ec;font-size:14px;min-width:0}
.pf-row:last-child{border-bottom:0}
.pf-row>span{color:var(--muted);flex-shrink:0}
.pf-row>b{display:flex;align-items:center;gap:6px;min-width:0;justify-content:flex-end;text-align:right;font-weight:700}
.pf-row a{color:var(--fg);text-decoration:none}.pf-row a:hover{text-decoration:underline}
.ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ic-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--muted);cursor:pointer;flex-shrink:0}
.ic-btn:hover{background:var(--surface-2);color:var(--fg)}
.ic-btn.lg{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;color:var(--fg);background:#fff}
.pf-tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;font-size:12.5px;font-weight:700;background:var(--ts,#eef1ec);color:var(--tc,#3d4a42)}
.tag.t-gift{--ts:#f1efe3;--tc:#6a5a12}.tag.t-ok{--ts:var(--deal-soft);--tc:#1e6b2e}.tag.t-bad{--ts:var(--late-soft);--tc:var(--late)}
.pf-more summary{cursor:pointer;font-weight:700;font-size:14px}
.pf-more[open]{gap:10px}
.danger-link{color:var(--late)}
.cdr-right{display:flex;flex-direction:column;min-width:0}
.cdr-head{position:sticky;top:0;z-index:3;background:#fff;display:flex;align-items:center;gap:12px;padding:16px 24px;border-bottom:1px solid var(--line)}
.cdr-head h2{margin:0;font-size:19px;flex:1}
.seg-tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:12px}
.seg-tabs button{border:0;background:transparent;border-radius:9px;padding:7px 13px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.seg-tabs button[aria-pressed="true"]{background:#fff;color:var(--fg);font-weight:800;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.cdr-right>.warn-bar{margin:12px 24px 0}
.cdr-now{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:16px 24px 4px}
.cdr-now>.d-sec{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff}
.cdr-now>.d-sec h3{font-size:15px}
.tl-wrap{padding:12px 24px 24px;display:flex;flex-direction:column;gap:14px}
.tl-compose{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff}
.tl-kinds{display:flex;gap:6px;flex-wrap:wrap}
.kchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.kchip[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:#fff}
.tl-input{display:flex;gap:8px;align-items:flex-end}
.tl-input textarea{flex:1;min-height:46px;max-height:160px;resize:vertical;border-radius:12px}
.tl-input .btn{min-height:46px}
.tl-chat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.tl-day{align-self:center}.tl-day span{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--muted);background:var(--surface-2);padding:4px 12px;border-radius:999px}
.tl-msg{display:flex;gap:10px;align-items:flex-start}
.tl-ic{flex:0 0 34px;width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#eef1ec;color:#3d4a42}
.tl-ic.k-call{background:var(--deal-soft);color:#1e6b2e}.tl-ic.k-offer{background:var(--offer-soft);color:#8a450b}.tl-ic.k-won{background:var(--deal-soft);color:var(--deal)}.tl-ic.k-lost{background:var(--late-soft);color:var(--late)}.tl-ic.k-note{background:var(--accent-soft);color:var(--accent)}
.tl-bub{flex:1;min-width:0;background:var(--surface-2);border-radius:4px 16px 16px 16px;padding:10px 14px;display:flex;flex-direction:column;gap:3px}
.tl-bub p{margin:0;font-size:14.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.tl-bub time{font-size:12px;color:var(--muted)}
.tl-bub .tl-of{align-self:flex-start}
.tl-empty{padding:8px 0}
.cdr .d-foot{margin-top:0}
@media (max-width:900px){
  .cdr-grid{grid-template-columns:minmax(0,1fr)}
  .cdr-left{display:contents}
  .cdr-left>.cdr-map,.cdr-left>.cdr-prof{order:0}.cdr-prof{background:var(--surface-2)}
  .cdr-right>*{order:1}
  .cdr-left>.d-sec{order:2;background:var(--surface-2)}
  .cdr-head{position:static;padding:14px 16px 4px;border-bottom:0;flex-wrap:wrap}
  .cdr-head .ic-btn.lg{display:none}
  .cdr-map .m-close{display:inline-flex;top:calc(10px + env(safe-area-inset-top,0px))}
  .cdr-right{display:contents}
  .cdr-now,.tl-wrap{padding-left:16px;padding-right:16px}
  .cdr-map{height:120px}
  .cdr-prof{padding:0 16px 16px}
}
/* ===== Alv-valinta summakentissä ===== */
.vat-field{display:flex;flex-direction:column;gap:4px}
.vat-field .vf-lab{font-weight:600}
.vat-in{display:flex;align-items:stretch;gap:0}
.vat-in input{flex:1;min-width:0;border-top-right-radius:0!important;border-bottom-right-radius:0!important}
.vat-tg{flex-shrink:0;border:1px solid var(--line);border-left:0;background:var(--surface-2);border-radius:0 10px 10px 0;padding:0 10px;font:inherit;font-size:12.5px;font-weight:800;color:var(--muted);cursor:pointer;white-space:nowrap;min-width:72px}
.vat-tg[aria-pressed="true"]{background:var(--offer-soft);color:#8a450b;border-color:#f0cf9e}
.vat-hint{font-size:12px;color:var(--muted);min-height:15px}
.kpi-deal{gap:4px}.kpi-deal .vat-field .vf-lab{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.kpi-deal input[type=date]{min-height:38px}
/* ===== Sopimukset ja allekirjoitukset ===== */
.files-sec label.btn{cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.file-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid #eef1ec}
.file-row:first-of-type{border-top:0}
.fr-ic{flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:var(--offer-soft);color:#8a450b;display:flex;align-items:center;justify-content:center}
.fr-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fr-main .sub{font-size:12.5px}
.fr-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.sr-st{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;margin-top:4px;padding:5px 10px;border-radius:10px;background:var(--surface-2);color:var(--muted)}
.sr-st b{color:var(--fg)}
.sr-avattu{background:var(--call-soft)}.sr-allekirjoitettu{background:var(--deal-soft);color:#1e6b2e}.sr-allekirjoitettu b{color:#1e6b2e}
.mini-send{background:var(--bp,var(--accent));border-color:var(--bp,var(--accent));color:var(--bp-fg,#fff)}
.share-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:4px 0}
.sig-view{border:1px dashed var(--line);border-radius:14px;padding:10px;background:#fff;min-height:120px;display:flex;align-items:center;justify-content:center}
.sig-view img{max-width:100%;height:auto}
.sg-card{gap:14px}
.sg-total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 16px;border-radius:14px;background:var(--surface-2)}
.sg-total b{font-size:26px}
.sg-sign{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:16px}
.sg-sign h2{margin:0;font-size:20px}
.sg-strong{justify-content:center;gap:8px}.sg-strong small{font-weight:600;opacity:.8}
.sg-strong[disabled]{opacity:.6;cursor:not-allowed}
.sg-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.sg-or::before,.sg-or::after{content:"";flex:1;height:1px;background:var(--line)}
.sg-pad-wrap{display:flex;flex-direction:column;gap:6px}
.sg-pad{width:100%;height:170px;border:1.5px solid var(--line);border-radius:14px;background:#fff;touch-action:none;cursor:crosshair}
.sg-pad-wrap .linkbtn{align-self:flex-end}

/* Tiedostot: kansiot, esikatselukuvat, kiintiö */
.files-sec .fs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.files-sec .fs-btns{display:flex;gap:6px;flex-wrap:wrap}
.files-sec .fs-btns .btn{padding:6px 10px;font-size:13px;gap:5px}
.files-sec.drop-on{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}
.fs-tabs{align-self:flex-start;max-width:100%;overflow-x:auto}
.fs-tabs .num{font-size:11px;opacity:.7;margin-left:2px}
.fs-up{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:lk-spin .8s linear infinite;display:inline-block}
@keyframes lk-spin{to{transform:rotate(360deg)}}
.fs-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}
.fs-thumb{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:0;background:var(--surface-2)}
.fs-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fs-thumb img:not([src]){visibility:hidden}
.fs-thumb .lock{position:absolute;top:4px;right:4px;background:rgba(19,34,38,.75);color:#fff;border-radius:6px;padding:2px 3px;display:flex}
.fs-thumb:hover{border-color:var(--accent)}
.lock-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#7a4a00;background:var(--warm-soft);border-radius:6px;padding:1px 7px;align-self:flex-start;margin-top:3px}
.fs-move{padding:4px 6px;max-width:110px}
.fs-empty{margin:0;font-size:13px}
.quota{display:flex;flex-direction:column;gap:4px;margin:4px 0 10px}
.quota.q-compact{margin:2px 0 0}
.quota.q-compact .sub{font-size:12px}
.q-bar{height:8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}
.q-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.q-warn .q-bar i{background:var(--warm)}
.q-full .q-bar i{background:var(--neg)}
.q-full .sub{color:var(--neg)}
.cdr-now>.files-sec{grid-column:1/-1}
.files-sec .file-row{flex-wrap:wrap}
.files-sec .fr-main{flex:1 1 220px}
.files-sec .fr-main b.ellip{display:block;max-width:100%}
.files-sec .fr-acts{flex:1 1 auto;align-items:center}
.fs-tabs button{white-space:nowrap}
.lb-modal{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
@media (max-width:640px){.lb-modal{top:0;left:0;transform:none;width:100%;max-height:none;height:100%;border-radius:0}.lb-body{flex:1;max-height:none}.lb-body img{max-height:calc(100vh - 200px)}.files-sec .fs-btns{width:100%}.files-sec .fs-btns .btn{flex:1;justify-content:center;white-space:nowrap;padding:8px 6px}.files-sec .fr-acts{justify-content:flex-start;padding-left:46px}.files-sec .fs-move{max-width:140px}}
.lb-body{position:relative;display:flex;align-items:center;justify-content:center;background:#0d1416;min-height:240px;max-height:72vh;padding:8px}
.lb-body img{max-width:100%;max-height:calc(72vh - 16px);object-fit:contain;display:block}
.lb-body img:not([src]){min-height:200px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.92)}
.lb-prev{left:8px}.lb-prev .ic{transform:scaleX(-1)}
.lb-next{right:8px}
.acc-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.acc-log li{border-bottom:1px solid var(--line);padding:6px 0;font-size:14px}
.web-msg{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:8px 12px;background:var(--surface-2);margin-top:8px}
.web-msg .eyebrow{margin:0;font-size:11px}
.web-msg p{margin:2px 0 0;white-space:pre-wrap;font-size:14px}
.storage-card .file-row{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px}

/* Tietosuojaseloste, käyttöehdot ja kaksivaiheinen tunnistautuminen */
.doc-band{background:#0b4f5c;color:#fff;--o-a1:#ffffff}
.doc-main{max-width:820px}
.doc-card{min-height:0;gap:10px;line-height:1.6}
.doc-card header{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}
.doc-card h1{font-size:28px}
.doc-card h2{font-size:18px;margin-top:12px}
.doc-card p,.doc-card ul{margin:0}
.doc-card ul{padding-left:20px;display:flex;flex-direction:column;gap:4px}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;opacity:0}
.ret-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;cursor:pointer;min-width:0}
.ret-row .ellip{flex:1;min-width:0}
.ret-row input{flex:0 0 auto;width:18px;height:18px}
.mfa-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--muted)}
.mfa-qr{width:200px;height:200px;align-self:center;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}
.mfa-secret code{display:block;word-break:break-all;background:var(--surface-2);padding:8px;border-radius:8px;margin-top:6px;font-size:13px}
.mfa-box{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2);margin-top:12px}
#mfa-form{display:flex;flex-direction:column;gap:14px}

/* Soittolistan kartta */
.call-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.call-map-card{display:flex;flex-direction:column;gap:8px;padding:12px}
.call-map{height:320px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#e8eef0;z-index:0}
.cs-map{height:230px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#e8eef0;z-index:0}
.cs-maplegend{margin:-4px 0 0;font-size:13px;display:flex;align-items:center;gap:6px}
.cl-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
.pin-cur svg{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 3px 5px rgba(0,0,0,.55))}
.map-pop .row .btn{padding:6px 10px;font-size:13px}
@media (min-width:1000px){
  .call-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .call-grid .call-map-card{position:sticky;top:76px;order:2}
  .call-grid .call-list{order:1}
  .call-map{height:calc(100vh - 220px);min-height:380px}
}
@media (max-width:640px){.cs-map{height:190px}.call-map{height:260px}}
.call-pop{display:flex;flex-direction:column;gap:6px;min-width:220px}
.call-pop .pop-notes{max-height:140px;overflow:auto;border-top:1px solid var(--line);padding-top:6px}
.call-pop .pop-note{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:14px;resize:vertical}
.call-pop .pop-acts{gap:6px;flex-wrap:wrap}
.call-pop .pop-acts .btn{padding:6px 10px;font-size:13px}
.note-mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.note-mini li{display:flex;flex-direction:column;font-size:13.5px;line-height:1.35}
.note-mini li .sub{font-size:11.5px}
.cs-notes:empty{display:none}
.cs-notes{background:#fff8db;border:1px solid #f3df8a;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
/* Asentajat (p16) */
.pill-work{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.jp{display:flex;align-items:center;gap:10px;min-width:0}
.jp-bar{flex:1;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;min-width:60px}
.jp-bar i{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .3s}
.jp-bar i.done{background:var(--new)}
.jp-t{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap;min-width:72px;text-align:right}
.jp-lg .jp-bar{height:12px}.jp-lg .jp-t{font-size:15px;color:var(--fg)}
.jp-sm{gap:6px}.jp-sm .jp-bar{height:6px;min-width:50px}.jp-sm .jp-t{min-width:0;font-size:12px}
.jp-steps{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding-top:2px}
.jp-steps::before,.jp-steps::after{content:"";position:absolute;top:22px;left:10%;height:4px;border-radius:4px}
.jp-steps::before{right:10%;background:var(--line)}
.jp-steps::after{width:calc(80% * var(--fill) / 100);background:var(--accent)}
.jp-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:transparent;font:inherit;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;padding:0 2px 4px;min-height:44px}
.jp-step i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;border:3px solid var(--line);font-style:normal;font-size:18px;color:#fff;transition:background .2s,border-color .2s}
.jp-step:hover:not([disabled]) i{border-color:var(--accent)}
.jp-step.on i{background:var(--accent);border-color:var(--accent)}
.jp-step.cur{color:var(--fg)}
.jp-step.cur i{box-shadow:0 0 0 4px var(--accent-soft)}
.jp-step:last-child.on i{background:var(--new);border-color:var(--new)}
.jp-step[disabled]{cursor:default}
.jp-undo{align-self:flex-start;font-size:13px}
.ij-row{display:flex;flex-direction:column;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.ij-row:first-of-type{padding-top:0}
.ij-top{display:flex;align-items:center;gap:10px}
.ij-who{display:flex;flex-direction:column;flex:1;min-width:0}
.ij-who .sub{font-size:13px}
.ij-instr{margin:0;white-space:pre-wrap;background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:14px}
.ij-acts{gap:8px;flex-wrap:wrap}
.ij-h{font-size:14px;margin:4px 0 8px}
.ij-files{display:flex;flex-direction:column;gap:2px}.ij-files .check-inline{padding:4px 0;font-weight:500;align-self:flex-start}
.ij-form{border-top:1px dashed var(--line);padding-top:12px}
.ij-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ij-facts .k{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
.jn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}
.jn-list li{background:var(--surface-2);border-radius:12px;padding:8px 12px;font-size:14px;max-width:92%}
.jn-list li.me{background:var(--accent-soft);align-self:flex-end}
.jn-list p{margin:2px 0 0;white-space:pre-wrap}
.jn-add{display:flex;gap:8px;align-items:flex-end;margin-top:8px;flex-wrap:wrap}
.jn-add textarea{flex:1;min-width:200px}
.job-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.job-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;font:inherit;color:var(--fg);cursor:pointer}
.job-card:hover{border-color:var(--accent)}
.jc-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.jc-top b{font-size:16px}
.jc-meta{font-size:14px}
.kpi-link{text-align:left;font:inherit;color:inherit;cursor:pointer}.kpi-link:hover{border-color:var(--accent)}
.earn-chart{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;height:220px}
.ec-col{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}
.ec-v{font-size:11px;font-weight:700;color:var(--muted);min-height:14px;white-space:nowrap}
.ec-bar{flex:1;width:100%;max-width:44px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;background:var(--surface-2)}
.ec-p{background:var(--new);display:block}.ec-u{background:var(--warm);display:block}
.ec-m{font-size:12px;color:var(--muted)}
.ec-col.cur .ec-m{color:var(--fg);font-weight:800}
.cal-job{background:color-mix(in srgb,var(--warm) 16%,#fff);color:var(--fg)}
@media (max-width:640px){.jp-step{font-size:11px}.jp-step i{width:38px;height:38px}.jp-steps::before,.jp-steps::after{top:19px}.earn-chart{gap:3px;height:180px}.ec-v{display:none}.ij-facts{grid-template-columns:minmax(0,1fr)}.job-list{grid-template-columns:minmax(0,1fr)}}
/* =================== Premium 3D -ulkoasu (brand_style = premium). Kaikki sävyt johdetaan yrityksen väreistä --bp ja --bs. =================== */
body.st-premium{--pd:color-mix(in oklab,var(--bp) 70%,#000);--pdd:color-mix(in oklab,var(--bp) 45%,#000);--sl:color-mix(in oklab,var(--bs) 55%,#fff);--sd:color-mix(in oklab,var(--bs) 72%,#000);
  --f-display:'Lora',Georgia,'Times New Roman',serif;--r:20px;--fg:var(--pdd);--line:color-mix(in oklab,var(--bp) 10%,#e7e1d3);--surface-2:color-mix(in oklab,var(--bp) 5%,#f4f0e6);
  --p3d:0 1px 0 rgba(255,255,255,.9) inset,0 -1px 0 rgba(0,0,0,.03) inset,0 1px 2px rgba(20,30,20,.05),0 14px 30px -16px color-mix(in oklab,var(--bp) 50%,transparent);
  background:radial-gradient(1100px 600px at 100% -10%,color-mix(in oklab,var(--bs) 12%,transparent),transparent 60%),color-mix(in oklab,var(--bs) 6%,#f6f3ea);background-attachment:fixed}
body.st-premium h1,body.st-premium h2{font-weight:600;letter-spacing:-.005em}
body.st-premium .topbar{background:var(--bar);border-bottom:0;box-shadow:0 10px 30px -12px color-mix(in oklab,var(--pdd) 70%,transparent)}
body.st-premium .brand{font-family:'Lora',Georgia,serif;font-weight:600}
body.st-premium .nav{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.15)}
body.st-premium .nav button[aria-current="page"]{background:linear-gradient(180deg,#fff,color-mix(in oklab,var(--bs) 18%,#fff));color:var(--pdd);box-shadow:inset 0 1px 0 #fff,0 6px 14px -6px rgba(0,0,0,.45)}
body.st-premium .usr .btn{background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
body.st-premium .logo-sq.sm,body.st-premium .logo-tile.sm{box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 6px 14px -4px rgba(0,0,0,.4)}
/* Yläosa: liukuväri, hehku ja logo 3D-laattana */
body.st-premium .hero{border-radius:30px;padding:24px 26px;border:0;background:var(--hero);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 60px -28px color-mix(in oklab,var(--pdd) 80%,transparent)}
body.st-premium .hero::before{right:auto;left:-120px;top:auto;bottom:-160px;width:420px;height:420px;background:radial-gradient(closest-side,color-mix(in oklab,var(--bp) 30%,#fff 20%),transparent);opacity:.25}
body.st-premium .hero::after{display:none}
body.st-premium .hero h1{font-size:clamp(30px,4vw,46px);text-shadow:0 2px 18px rgba(0,0,0,.18)}
body.st-premium .hero .eyebrow{color:var(--sl);opacity:1;letter-spacing:.14em}
body.st-premium .hero.has-3d .co-title>.logo-sq,body.st-premium .hero.has-3d .co-title>.logo-tile{display:none}
body.st-premium .hero .btn{border-radius:14px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);backdrop-filter:blur(8px)}
body.st-premium .hero .btn.btn-solid{background:linear-gradient(180deg,var(--sl),var(--bs) 60%,var(--sd));color:var(--bs-fg);border-color:transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -2px 0 rgba(0,0,0,.12),0 10px 20px -8px rgba(0,0,0,.45)}
.hero-3d{--f0:#ffffff;--f1:#ffffff;--f2:#f3efe6;--e1:#e3dccb;--e2:#d9d1bd;--e3:#cfc6b0;--e4:#c3b99f;--rim:rgba(255,255,255,.95);--gloss:.75;--glow:var(--bs);--tw:150px;--th:112px;
  position:absolute;z-index:0!important;right:30px;top:78px;width:var(--tw);height:var(--th);perspective:900px;pointer-events:none}
.hero-3d::before{content:"";position:absolute;inset:-50px -70px;background:radial-gradient(closest-side,color-mix(in oklab,var(--glow) 60%,transparent),transparent 75%);opacity:.6}
.h3-tile{position:absolute;inset:0;border-radius:24px;display:grid;place-items:center;overflow:hidden;transform:rotateY(-18deg) rotateX(9deg) rotateZ(-2deg);
  background:linear-gradient(160deg,var(--f1),var(--f0) 45%,var(--f2));
  box-shadow:inset 0 1.5px 0 var(--rim),inset 0 -2px 0 rgba(0,0,0,.10),1.5px 1.5px 0 var(--e1),3px 3px 0 var(--e2),4.5px 4.5px 0 var(--e3),6px 6px 0 var(--e4),22px 30px 40px -12px rgba(0,0,0,.5);transition:opacity .25s}
.h3-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.h3-tile.h3-wait img{inset:10%;width:80%;height:80%;opacity:0}
.h3-tile.h3-ini{font-family:'Lora',Georgia,serif;font-weight:700;font-size:44px;color:var(--bp);letter-spacing:.02em}
.h3-tile::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(118deg,rgba(255,255,255,var(--gloss)) 0%,rgba(255,255,255,0) 34%,transparent 70%,rgba(255,255,255,calc(var(--gloss) * .25)))}
.h3-ring{position:absolute;border-radius:50%;border:1.5px solid color-mix(in oklab,var(--glow) 60%,transparent);opacity:.4;left:50%;top:50%;transform:translate(-50%,-50%)}
.h3-ring.r1{width:270px;height:270px}.h3-ring.r2{width:205px;height:205px;opacity:.25}
body.st-premium .hero.has-3d .hero-main{min-height:196px}
body:not(.st-premium) .hero-3d{display:none}
/* KPI-kortit kohotettuina */
body.st-premium .hero-kpis div,body.st-premium .hk-btn{background:linear-gradient(180deg,#fff,color-mix(in oklab,var(--bs) 6%,#fbf8f1));border:1px solid rgba(255,255,255,.7);border-radius:20px;padding:12px 16px;color:var(--pdd);box-shadow:var(--p3d),0 24px 40px -24px color-mix(in oklab,var(--pdd) 70%,transparent)}
body.st-premium .hero-kpis b{font-weight:600;background:linear-gradient(135deg,var(--bp),color-mix(in oklab,var(--bp) 55%,var(--bs)));-webkit-background-clip:text;background-clip:text;color:transparent}
body.st-premium .hero-kpis>:nth-child(4) b{background:linear-gradient(135deg,var(--sd),var(--bs));-webkit-background-clip:text;background-clip:text}
body.st-premium .hero-kpis span{color:color-mix(in oklab,var(--bp) 35%,#6f6f68);opacity:1}
/* Kortit, laatikot ja painikkeet */
body.st-premium .card,body.st-premium .kpi{border-radius:22px;border:1px solid rgba(255,255,255,.8);background:linear-gradient(180deg,#fff,color-mix(in oklab,var(--bs) 4%,#fcfaf5));box-shadow:var(--p3d)}
body.st-premium .tbl-wrap{border-radius:22px;border-color:rgba(255,255,255,.8);box-shadow:var(--p3d)}
body.st-premium .kcol{border-radius:24px;border:0;background:linear-gradient(180deg,color-mix(in oklab,var(--bp) 7%,#f1ede2),color-mix(in oklab,var(--bp) 3%,#f4f1e8));box-shadow:inset 0 1px 2px rgba(0,0,0,.04),inset 0 0 0 1px rgba(255,255,255,.6)}
body.st-premium .kcol-head{background:transparent;border-bottom:0;position:relative;padding-bottom:12px}
body.st-premium .kcol-head::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--tc),color-mix(in oklab,var(--tc) 30%,transparent))}
body.st-premium .kcol-count{font-family:'Lora',Georgia,serif}
body.st-premium .kcard{border-radius:18px;border:1px solid rgba(255,255,255,.85);background:linear-gradient(180deg,#fff,#fdfbf6);padding:11px 13px 11px 18px;box-shadow:var(--p3d)}
body.st-premium .kcard::after{content:"";position:absolute;left:7px;top:12px;bottom:12px;width:4px;border-radius:4px;background:linear-gradient(180deg,color-mix(in oklab,var(--tc) 50%,#fff),var(--tc))}
body.st-premium .kcard:hover{box-shadow:var(--p3d),0 0 0 2px color-mix(in oklab,var(--tc) 40%,transparent)}
body.st-premium .kc-name{font-family:'Lora',Georgia,serif;font-size:15.5px;font-weight:600}
body.st-premium .btn{border-radius:14px;background:linear-gradient(180deg,#fff,#faf7f0);border-color:color-mix(in oklab,var(--bp) 12%,#e4ddcf);box-shadow:inset 0 1px 0 #fff,0 2px 6px -3px rgba(0,0,0,.14)}
body.st-premium .btn-primary{background:linear-gradient(180deg,color-mix(in oklab,var(--bp) 85%,#fff),var(--bp) 55%,var(--pd));border-color:transparent;color:var(--bp-fg);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -2px 0 rgba(0,0,0,.15),0 10px 20px -10px var(--bp)}
body.st-premium .avatar{background:linear-gradient(145deg,color-mix(in oklab,var(--bp) 12%,#fff),color-mix(in oklab,var(--bp) 24%,#fff));border-color:rgba(255,255,255,.8);box-shadow:inset 0 1px 0 #fff,0 2px 5px -2px color-mix(in oklab,var(--bp) 50%,transparent)}
body.st-premium :is(select,input[type="text"],input[type="tel"],input[type="email"],input[type="number"],input[type="search"],input[type="password"],input[type="date"],input[type="time"],input[type="url"],textarea){border-radius:14px;box-shadow:inset 0 2px 4px rgba(0,0,0,.04)}
body.st-premium .seg-tabs{border-radius:16px;box-shadow:inset 0 1px 3px rgba(0,0,0,.06)}
body.st-premium .seg-tabs button[aria-pressed="true"]{background:linear-gradient(180deg,#fff,#faf7ef);box-shadow:inset 0 1px 0 #fff,0 4px 10px -4px rgba(0,0,0,.2)}
body.st-premium .page-head h1{color:var(--pdd)}
@media (max-width:900px) and (min-width:641px){body.st-premium .hero.has-3d .co-title{padding-right:200px}}
@media (max-width:640px){
  .hero-3d{right:14px;top:16px;--tw:72px;--th:60px}.h3-tile{border-radius:15px;box-shadow:inset 0 1.5px 0 var(--rim),1.5px 1.5px 0 var(--e1),3px 3px 0 var(--e2),4px 4px 0 var(--e4),12px 18px 24px -8px rgba(0,0,0,.5)}
  .h3-tile.h3-ini{font-size:24px}.h3-ring.r1{width:140px;height:140px}.h3-ring.r2{display:none}body.st-premium .hero.has-3d .hero-main{min-height:0}
  body.st-premium .hero{border-radius:24px;padding:16px}body.st-premium .hero.has-3d .co-title{padding-right:72px}body.st-premium .hero h1{font-size:24px}
  body.st-premium .hero.has-3d .hero-main{flex-wrap:wrap!important}body.st-premium .hero.has-3d .hero-acts{width:100%}body.st-premium .hero-kpis div,body.st-premium .hk-btn{padding:10px 12px;border-radius:16px}
}
@media (max-width:760px){
  body.st-premium .tabbar{left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom,0px));border-radius:26px;border:0;padding:6px;background:linear-gradient(180deg,color-mix(in oklab,var(--bp) 85%,#fff 5%),var(--pdd));box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 16px 30px -12px rgba(0,0,0,.5)}
  body.st-premium .tabbar button{color:color-mix(in oklab,#fff 62%,var(--bp))}
  body.st-premium .tabbar button[aria-current="page"]{color:#fff}
  body.st-premium .tabbar button[aria-current="page"] svg{background:linear-gradient(180deg,var(--sl),var(--bs));color:var(--bs-fg);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 4px 10px -2px rgba(0,0,0,.4)}
  body.st-premium.has-tabbar{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
}
/* Kaupan valmis-merkintä */
.late-cost{color:var(--warm);font-weight:700}
.done-pill{font-size:12px;padding:5px 10px}
.open-deals .od-row .d .linkbtn{padding:0;text-align:left}
.open-deals .od-row .d{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.kpi-est .est-row{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}
.kpi-est .est-row input{width:84px;font-size:15px!important;padding:5px 8px}
.set-tabs{display:inline-flex;margin:0 0 14px;max-width:100%;overflow-x:auto;scrollbar-width:none}.set-tabs button{white-space:nowrap}
/* Laskutus-välilehti */
.bill-kpis{margin-top:4px}
.kpi.kpi-bad .v{color:#c92a2a}
.late-txt{color:#c92a2a;font-weight:700}
.bill-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.bill-filters input[type=search]{flex:1 1 280px;min-width:0}
.bill-filters .chips{display:flex;flex-wrap:wrap;gap:6px}
.bill-filters select{flex:0 0 auto}
.bill-sum{margin:0 0 10px}
.cust-tbl tbody tr{cursor:pointer}.cust-tbl tbody tr:hover td{background:var(--surface-2)}
.cust-tbl td small{color:#c92a2a;font-weight:700}
.cust-card h2{margin:4px 0 0}.cust-card .calc-h{margin:20px 0 10px}
.cust-info{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 16px;font-size:14px}
.deal-pick{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.deal-pick-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;margin-bottom:8px}
.deal-pick .deal-pick-row{justify-content:flex-start;cursor:pointer;margin:0}
.deal-pick-row>div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.deal-pick-row input[type=radio]{width:18px;height:18px;flex:none;accent-color:var(--accent)}
.deal-pick-row:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.bn-modal{max-width:640px}.rem-modal{max-width:620px}
.bn-modal .m-body{display:flex;flex-direction:column;gap:12px}
.bn-list{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto}
.bn-res{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;color:inherit}
.bn-res:hover,.bn-res:focus-visible{border-color:var(--accent)}
.bn-warn{background:#fff8e6;border:1px solid #f2d27a;border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.45;color:#6b4b00}
.bn-warn:not(.warn){background:var(--surface-2);border-color:var(--line);color:var(--fg);font-weight:500}
.bn-warn .mini{margin-left:6px}
.bn-newdeal{gap:8px;flex-wrap:wrap}.bn-newdeal input{flex:1 1 220px;min-width:0}
.bx-btns{gap:8px;flex-wrap:wrap;margin-top:6px}
.rem-fee{flex-direction:row;align-items:center;gap:8px;margin:0}.rem-fee input{width:90px}
.iv-raise-info{margin:-4px 0 0}
@media (max-width:720px){.bill-filters select{flex:1 1 100%}.deal-pick-row{flex-wrap:wrap}.bn-newdeal .btn{flex:1 1 100%}.rem-fee{width:100%}}
.inv-modal .m-body>.check-inline{align-self:flex-start;padding:4px 0 0}
@media (max-width:720px){.bill-tabs{flex-wrap:wrap}}
/* Maksuerät ja laskutettavat */
.pp{border:1px solid var(--line);border-radius:14px;padding:12px;margin:2px 0 12px;background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.pp-head{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:space-between;align-items:center;font-size:14px}
.eras{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.era{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-left:4px solid #adb5bd;border-radius:12px;padding:9px 11px;min-width:0}
.era .era-n{font-weight:700;font-size:13.5px}.era b{font-size:16px}.era .era-st{font-size:12px;color:var(--muted)}
.era .btn,.era .mini{align-self:flex-start;margin-top:4px}
.era-billed{border-left-color:#2f9e44;opacity:.8}.era-billed .era-st{color:#1e6b30;font-weight:600}
.era-ready{border-left-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.era-ready .era-st{color:var(--accent);font-weight:700}
.era-coming{border-left-color:#f08c00;border-style:dashed;border-left-style:solid}
.pp-edit{display:flex;flex-direction:column;gap:10px}
.pp-pays{display:flex;flex-direction:column;gap:6px}
.pp-pays .pay-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 120px 32px;gap:6px;align-items:center}
.tb-list{display:flex;flex-direction:column;gap:10px}
.tb-row{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fff}
.tb-row.tb-ready{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.tb-head{display:flex;gap:10px;justify-content:space-between;align-items:flex-start}.tb-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.next-era{color:var(--accent);font-weight:700}
.fin-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2)}
.fin-box>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.fin-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.fin-row{display:flex;gap:10px;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;flex-wrap:wrap}
.fin-row>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.fin-form{margin-top:6px}.fin-card .toggle{margin:0}
.fin-pill{background:var(--surface-2);color:var(--fg);font-size:11px;vertical-align:middle}
.pay-method{margin-bottom:8px;max-width:360px}
@media (max-width:720px){.pp-pays .pay-row{grid-template-columns:minmax(0,1fr) 70px 90px 28px}.tb-head{flex-direction:column}}
/* Arvontakysely */
.rf-preview{background:#fff3bf;color:#5c4400;text-align:center;font-weight:700;font-size:13px;padding:6px 12px}
.rf-admin{display:flex;flex-direction:column;gap:12px;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.rf-win{background:#ebfbee;border:1px solid #b2f2bb;border-radius:12px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rf-log ul{margin:6px 0 0;padding-left:18px;font-size:13px}
/* =================== Autokorjaamo: keskustelut =================== */
.plate{white-space:nowrap;flex:none;display:inline-flex;align-items:stretch;border:2px solid #111;border-radius:5px;background:#fff;font-weight:800;font-size:14px;letter-spacing:.04em;color:#111;overflow:hidden;line-height:1;font-variant-numeric:tabular-nums}
.plate i{background:#1f4fbf;color:#fff;font-size:7px;font-weight:700;font-style:normal;display:flex;align-items:flex-end;justify-content:center;padding:0 3px 2px;width:14px}
.plate span{padding:4px 6px 3px}
.cst-wait,.cst-price{background:#fff1bf;color:#6b4e00}.cst-order,.cst-work{background:#dcf3e3;color:#17663a}.cst-done{background:#eceff1;color:#4d5a60}.cst-no{background:#fde2e2;color:#9b1c1c}
.car-wrap{display:grid;grid-template-columns:360px minmax(0,1fr) 320px;height:calc(100dvh - var(--tb-h,64px) - 40px);min-height:520px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.car-list{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);position:relative}
.cl-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 14px 8px}.cl-head h1{margin:0;font-size:22px}
#car-q{margin:0 14px 8px;width:auto}
.cl-chips{display:flex;gap:6px;padding:0 14px 10px;overflow-x:auto;scrollbar-width:none}.cl-chips::-webkit-scrollbar{display:none}.cl-chips .chip-btn{white-space:nowrap;padding:6px 11px;font-size:12.5px}
.cl-rows{flex:1;overflow-y:auto;border-top:1px solid var(--line)}
.ch-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;padding:11px 14px;font:inherit;color:inherit;cursor:pointer}
.ch-row:hover{background:var(--surface-2)}.ch-row.sel{background:color-mix(in srgb,var(--accent) 8%,#fff);box-shadow:inset 3px 0 0 var(--accent)}
.ch-mid{display:flex;flex-direction:column;gap:2px;min-width:0}.ch-mid b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ch-mid span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-row.unread .ch-mid span{color:var(--fg);font-weight:600}
.ch-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ch-end .tm{font-size:11.5px;color:var(--muted)}.ch-end .pill{font-size:11px;padding:2px 8px}
.ch-end .un{background:#f08a24;color:#fff;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 5px}
.car-new{margin:10px 14px 14px}
.car-chat{display:flex;flex-direction:column;min-height:0;background:#e9edf1}
.empty-chat{align-items:center;justify-content:center}
.cc-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line)}
.cc-back{display:none;border:0;background:none;font-size:30px;line-height:1;padding:0 6px 4px 0;color:var(--fg)}
.cc-who{display:flex;flex-direction:column;min-width:0;flex:1}.cc-who b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-who small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-st{border:0;background:none;display:flex;align-items:center;gap:6px;padding:4px;font:inherit;cursor:pointer}.cc-i{display:none;font-size:18px;color:var(--muted)}
.cc-sum{background:#fff;border-bottom:1px solid var(--line);padding:8px 14px;display:flex;flex-direction:column;gap:3px;max-height:150px;overflow-y:auto}
.cp-head{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cp-head b:last-child{color:var(--fg)}
.cp-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13.5px}.cp-row b{text-align:right}.cp-row.off{opacity:.45;text-decoration:line-through}
.cc-sum .cp-row{grid-template-columns:minmax(0,1fr) auto}.cp-tot{border-top:1px solid var(--line);padding-top:4px;margin-top:2px;font-weight:700}
.cc-msgs{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.cday{align-self:center;font-size:11.5px;font-weight:700;color:var(--muted);background:#fff;padding:3px 10px;border-radius:999px;margin:6px 0}
.csys{align-self:center;font-size:12px;font-weight:600;color:#5235c2;background:#efeaff;padding:4px 10px;border-radius:999px;text-align:center}
.cm{max-width:min(78%,560px);padding:7px 10px 5px;border-radius:14px;font-size:14.5px;line-height:1.4;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.06);display:flex;flex-direction:column;overflow-wrap:anywhere}
.cm.me{align-self:flex-end;background:#d8ecff;border-bottom-right-radius:4px}.cm.them{align-self:flex-start;border-bottom-left-radius:4px}
.cm .cn{font-size:12px;font-weight:700;color:#1c7ed6;margin-bottom:1px}.cm .cn.r-asentaja{color:#e8590c}.cm .cn.r-admin,.cm .cn.r-owner{color:#2f9e44}
.cm mark{background:#fff3bf;font-weight:800;padding:0 3px;border-radius:4px;color:inherit}
.cm .cmt{align-self:flex-end;font-size:10.5px;color:var(--muted);margin-top:1px}
.cimg{border:0;padding:0;background:none;cursor:zoom-in;margin-bottom:4px}.cimg img{display:block;max-width:240px;max-height:240px;width:auto;border-radius:10px;background:#cfd6dd;min-width:120px;min-height:80px;object-fit:cover}
.chint{align-self:center;max-width:94%;background:#fff;border:1px solid #d9d2ff;border-radius:14px;padding:10px 12px;font-size:13.5px;text-align:center;display:flex;flex-direction:column;gap:8px;margin-top:4px}
.chint .hb{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.chint .btn{min-height:38px}
.chint .btn-primary{background:#7048e8;border-color:#7048e8}
.cc-input{display:flex;gap:8px;align-items:flex-end;background:#f6f7f9;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
.cc-cam{width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:18px;cursor:pointer;flex:none}
#car-text{flex:1;resize:none;border-radius:20px;padding:9px 14px;line-height:1.35;min-height:40px;max-height:140px}
.cc-send{width:42px;height:42px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-fg);font-size:17px;font-weight:800;flex:none;cursor:pointer}
.car-info{border-left:1px solid var(--line);overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:16px;background:#fff}
.ci-top{display:none}
.ci-sec h3{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 8px}
.ci-car{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.ci-car input{width:100%}
.steps{display:flex;flex-direction:column;gap:4px}
.stp{display:flex;align-items:center;gap:10px;border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--muted);padding:5px 4px;border-radius:8px;cursor:pointer;text-align:left}
.stp:hover{background:var(--surface-2)}.stp i{width:22px;height:22px;border-radius:50%;border:2px solid #cfd5db;display:grid;place-items:center;font-size:11px;font-weight:800;font-style:normal;flex:none}
.stp small{font-weight:500;color:var(--muted)}.stp.ok{color:var(--fg)}.stp.ok i{background:#2f9e44;border-color:#2f9e44;color:#fff}
.stp.cur{color:var(--fg)}.stp.cur i{border-color:#1c7ed6;background:#e3f0ff;color:#1c7ed6}.stp.cur.no i{border-color:#868e96;background:#eef0f2;color:#5c656e}
.ci-btns{display:flex;flex-direction:column;gap:8px}
.ci-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ci-thumbs button{border:0;padding:0;background:#cfd6dd;border-radius:8px;overflow:hidden;aspect-ratio:4/3;cursor:zoom-in}.ci-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.ci-hist{display:flex;flex-direction:column;gap:6px}.ci-hist button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;text-align:left;font:inherit;font-size:13px;display:flex;flex-direction:column;gap:2px;cursor:pointer}.ci-hist em{font-style:normal;color:var(--muted);font-size:12px}
.car-zoom{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.85);display:grid;place-items:center;cursor:zoom-out;padding:16px}.car-zoom img{max-width:100%;max-height:100%;border-radius:8px}
.car-new-m{max-width:480px}.car-new-m .m-body{display:flex;flex-direction:column;gap:14px;align-items:stretch}
.plate-in{align-self:center;display:flex;border:3px solid #111;border-radius:9px;overflow:hidden;background:#fff}
.plate-in i{background:#1f4fbf;color:#fff;font-size:12px;font-weight:700;font-style:normal;width:30px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px}
.plate-in input{border:0;outline:0;font-size:32px!important;font-weight:800;letter-spacing:.06em;width:230px;text-align:center;padding:10px 12px;text-transform:uppercase;border-radius:0;box-shadow:none}
.cn-ex{border:1px dashed #c9d1d9;border-radius:12px;padding:10px 12px;font-size:13.5px;color:var(--muted)}
@media (max-width:1180px){.car-wrap{grid-template-columns:330px minmax(0,1fr)}.car-info{position:fixed;top:0;right:0;bottom:0;width:min(380px,100%);z-index:40;box-shadow:-10px 0 30px rgba(0,0,0,.15);transform:translateX(105%);transition:transform .2s}
  .car-info.open{transform:none}.ci-top{display:flex;justify-content:space-between;align-items:center}.cc-i{display:inline}}
@media (max-width:760px){
  .car-wrap{display:block;height:auto;min-height:0;border:0;border-radius:0;background:none}
  .car-list{border:0}.cl-head{padding:4px 0 8px}#car-q{margin:0 0 8px}.cl-chips{padding:0 0 10px}.cl-rows{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
  .car-new{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:17;border-radius:999px;padding:12px 18px;box-shadow:0 10px 24px -8px rgba(0,0,0,.4);margin:0}
  .car-wrap .car-chat{display:none}
  .car-wrap.has-thread .car-list{display:none}
  .car-wrap.has-thread .car-chat{display:flex;position:fixed;left:0;right:0;top:var(--tb-h,56px);bottom:0;z-index:16}
  body.car-thread .tabbar{display:none}body.car-thread{padding-bottom:0!important}
  .cc-back{display:block}.cc-head{padding:8px 10px}.cc-msgs{padding:10px}.cm{max-width:84%}
}
@media (min-width:1181px){.cc-sum{display:none}}
@media (max-width:760px){.car-info{width:100%}}
/* Autokorjaamon asiakkaat */
.cust-tag{display:inline-block;font-size:10.5px;font-weight:700;color:#5c656e;background:#eef0f2;border-radius:6px;padding:1px 6px;margin-left:4px;vertical-align:1px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#car-cust{margin:0 14px 8px;width:auto}
.cust-org{margin-bottom:16px}.cust-org .ulist{margin:6px 0 12px}.cu-add{border-top:1px solid var(--line);padding-top:12px}
@media (max-width:760px){#car-cust{margin:0 0 8px;width:100%}}
/* Meta (Facebook ja Instagram) */
.meta-sec{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
.meta-sec h3{margin:0 0 6px;font-size:16px}
.meta-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.meta-note{margin:8px 0 0;font-size:13px}
.meta-help,.meta-log{margin-top:12px}
.meta-help summary,.meta-log summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}
.meta-help ol{margin:6px 0 0;padding-left:20px;line-height:1.6}
.meta-page{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.meta-log table.tbl{min-width:640px}

/* Arvontasivu v3: taustakuva, brändivärinen palkintokortti, viivakuvakkeet */
.rf-page{--rf-gold:#c9a24a;--rf-gold2:#ecd79b}
.rf-hero{position:relative;min-height:190px;background:var(--rf-dk) center 55%/cover no-repeat;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding-bottom:42px}
.rf-hero.has-img{min-height:300px}
.rf-hero.has-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.06) 30%,rgba(0,0,0,.1) 55%,color-mix(in srgb,var(--rf-dk) 92%,transparent) 100%)}
.rf-band,.rf-htxt{position:relative;z-index:1;width:100%;max-width:600px;margin:0 auto;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
.rf-band{display:flex;align-items:center;gap:10px;padding-top:calc(14px + env(safe-area-inset-top,0px))}
.rf-band .nm{font-weight:700;font-family:var(--f-display);font-size:17px;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.rf-band .logo-sq,.rf-band .logo-tile{box-shadow:0 2px 10px rgba(0,0,0,.25)}
.rf-htxt h1{margin:28px 0 6px;font-size:30px;line-height:1.1;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4)}
.rf-htxt p{margin:0;font-size:15px;color:rgba(255,255,255,.93);text-shadow:0 1px 6px rgba(0,0,0,.35)}
.rf-main{position:relative;z-index:2;max-width:600px;margin:-28px auto 0;padding:0 max(14px,env(safe-area-inset-right,0px)) 40px max(14px,env(safe-area-inset-left,0px))}
.rf-card{border:0;border-radius:22px;box-shadow:0 14px 34px -16px rgba(0,0,0,.35);min-height:0}
.rf-prize{display:flex;gap:14px;align-items:center;border-radius:16px;padding:14px 16px;color:#fff;background:linear-gradient(135deg,var(--rf-dk),var(--bp));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rf-gold) 45%,transparent)}
.rf-prize>div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.rf-prize b{font-size:17px;line-height:1.25}
.rf-prize small{color:rgba(255,255,255,.88);font-size:13px;margin-top:2px}
.rf-pic{width:52px;height:52px;border-radius:14px;flex:none;display:grid;place-items:center;color:var(--rf-gold2);background:rgba(255,255,255,.1);border:1px solid color-mix(in srgb,var(--rf-gold) 70%,transparent)}
.rf-val{display:inline-block;margin-top:7px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#3a2f0e;background:var(--rf-gold2);padding:3px 10px;border-radius:999px}
.rf-card .progress i{background:var(--bp)}
.rf-card .opt{min-height:52px}
.rf-card .opt-l{display:flex;align-items:center;gap:12px}
.rf-card .rfi{color:var(--rf-dk);flex:none}
.rf-card .opt-go{color:var(--muted);font-size:20px}
.rf-card .opt[aria-pressed="true"]{border-color:var(--rf-dk);background:color-mix(in srgb,var(--bp) 9%,#fff)}
.rf-card .opt:hover{border-color:var(--rf-dk)}
.rf-card .btn-primary{background:var(--rf-dk);border-color:var(--rf-dk);color:#fff}
.rf-card .done .rf-pic.big{width:72px;height:72px;border-radius:50%;color:var(--rf-dk);background:color-mix(in srgb,var(--bp) 12%,#fff);border:0;margin:6px auto 4px}
.rf-consent{font-size:14px;color:var(--fg)}
.rf-consent input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--rf-dk,var(--accent))}
.rf-more{font-size:13.5px;color:var(--muted);margin:-4px 0 0 28px}
.rf-more summary{cursor:pointer;font-weight:600;color:var(--fg);min-height:32px;display:flex;align-items:center}
.rf-more>div{display:flex;flex-direction:column;gap:8px;padding:6px 0 4px;line-height:1.5}
.rf-more p{margin:0}
.raffle-box .rf-more{margin-left:28px}
.rf-imgset{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px}
.rf-imgset img{width:140px;height:90px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
@media (min-width:900px){.rf-hero.has-img{min-height:400px}.rf-htxt h1{font-size:42px}}
/* Arvonta v4: kysymykset mahtuvat näytölle ilman vierittelyä, upotus asiakkaan sivulle */
.rf-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.rf-main{width:100%;flex:1;padding-bottom:24px}
.rf-card{gap:12px;padding:18px}
.rf-prog{display:flex;align-items:center;gap:10px}
.rf-prog .progress{flex:1}
.rf-prog .q-step{flex:none;min-width:34px;text-align:right}
.rf-card .q-title{font-size:20px}
.rf-card .opts{gap:7px}
.rf-card .opt{min-height:50px;padding:11px 14px}
.rf-card .field{gap:4px}
.rf-card .field input{padding:11px 12px}
.rf-card .ph-actions{position:sticky;bottom:0;background:#fff;padding:8px 0 calc(2px + env(safe-area-inset-bottom,0px));margin-top:2px;z-index:2}
.rf-card .ph-actions:empty{display:none}
.rf-card .ph-actions.rf-back-only{position:static;padding:0}
.rf-card .ph-actions.rf-back-only .btn{flex:0 0 auto;padding:9px 16px;font-size:14px;background:transparent;border-color:transparent;color:var(--muted)}
.rf-card .ph-actions.rf-back-only .btn::before{content:"‹ "}
.rf-consent{font-size:13.5px;line-height:1.45}
.rf-rules{margin:-6px 0 0 0}
/* Kompakti otsikko kysymysvaiheissa */
.rf-hero.rf-mini,.rf-hero.has-img.rf-mini{min-height:0;padding-bottom:34px}
.rf-mini .rf-band{padding-top:calc(10px + env(safe-area-inset-top,0px))}
.rf-mini .rf-band .logo-sq,.rf-mini .rf-band .logo-tile{transform:scale(.85);transform-origin:left center}
.rf-mini .rf-htxt h1{font-size:18px;margin:8px 0 0;line-height:1.2}
.rf-mini .rf-htxt p{display:none}
.rf-mini+.rf-main{margin-top:-24px}
@media (max-width:600px){
  .rf-hero.has-img{min-height:220px}
  .rf-htxt h1{font-size:25px;margin-top:18px}
  .rf-htxt p{font-size:14px}
  .rf-prize{padding:11px 13px}
  .rf-pic{width:44px;height:44px}
}
@media (min-width:900px){.rf-hero.has-img.rf-mini{min-height:0}.rf-mini .rf-htxt h1{font-size:22px}}
/* Upotettuna asiakkaan sivulle */
body.rf-embed{background:transparent}
body.rf-embed .rf-page{background:transparent}
body.rf-embed-sivu .rf-page{min-height:0}
body.rf-embed-sivu .rf-main{padding-bottom:8px}
body.rf-embed-sivu .rf-hero{border-radius:18px 18px 0 0}
body.rf-embed-popup .rf-page{min-height:100vh;min-height:100dvh;background:var(--surface-2)}
body.rf-embed-popup .sv-foot{font-size:11px}
.rf-card .field{font-size:13px;gap:3px}
.rf-card .field input{padding:9px 12px;font-size:16px}
.rf-card .ph-actions .rf-backbtn{flex:0 0 52px;font-size:22px;padding:8px}
.rf-card .ph-actions.rf-back-only .rf-backbtn{flex:0 0 auto;font-size:14px}
@media (max-width:600px){.rf-hero.rf-mini{padding-bottom:30px}.rf-mini .rf-htxt h1{font-size:16px;margin-top:6px}.rf-card{padding:16px}}
/* Automaattiset viestisarjat */
.sq-steps{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.sq-step{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;cursor:pointer;font:inherit}
.sq-step .sub{font-size:12.5px}
.sq-step[aria-pressed="true"]{border-color:var(--offer);box-shadow:inset 3px 0 0 var(--offer);background:color-mix(in srgb,var(--offer) 6%,#fff)}
.sq-step.sq-add{color:var(--offer);font-weight:700;border-style:dashed}
.sq-form{border-top:1px solid var(--line);padding-top:12px}
/* Myyntikaavio: summat palkkien päällä */
.sales-svg .bar-val{font-size:10.5px;font-weight:800;fill:#132226;stroke:#fff;stroke-width:3px;stroke-linejoin:round;paint-order:stroke;font-variant-numeric:tabular-nums}
.sales-svg .bar-val.kv{font-size:10px;font-weight:700}
.sales-svg.dense .bar-val{display:none}
.sales-mode{min-width:250px}
.legend i+i{margin-left:-2px}
/* Yhteiset muistiinpanot, tarkastuskäynti, sopimus */
.cn-list li .cn-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.cn-list li .cn-h .linkbtn{margin-left:auto;font-size:12.5px}
.cn-list li p{white-space:pre-wrap}
.cn-thumbs{margin-top:6px}
.cn-add{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.cn-add textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;resize:vertical;min-height:64px}
.cn-btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.contract-sec .file-row{margin-top:4px}
label.mini{display:inline-flex;align-items:center;cursor:pointer}
.calc-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.calc-notes .cn-sec{margin:0;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface-2)}
@media (min-width:1100px){.modal:has(.calc-wrap){max-width:min(1360px,96vw)}.calc-wrap{grid-template-columns:minmax(0,1fr) 320px}.calc-notes{position:sticky;top:0;align-self:start;max-height:calc(100vh - 220px);overflow:auto}}

/* Katso näkymänä */
#va-bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:8px 16px;background:#1d2b36;color:#fff;font-size:14px;line-height:1.3;text-align:center}
#va-bar b{font-weight:700}#va-bar small{opacity:.75;font-size:12px}
#va-bar button{background:#f2c94c;color:#1d2b36;border:0;border-radius:999px;padding:6px 16px;font-weight:700;font-size:13px;cursor:pointer;min-height:32px}
#va-bar button:focus-visible{outline:3px solid #fff;outline-offset:2px}
body.va-on .topbar{top:var(--va-h,0px)}
.va-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* Huoneistoremontti-pikapainike */
.hr-row{display:flex}.hr-row.full{grid-column:1/-1}
.hr-btn{font-weight:700}
.hr-toggle{grid-column:1/-1;display:inline-flex;align-items:center;gap:10px;justify-self:start;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;cursor:pointer;font-weight:700;background:#fff;min-height:44px}
.hr-toggle input{width:18px;height:18px;margin:0;accent-color:var(--bp,#1f4e8c)}
.hr-toggle:has(input:checked){border-color:var(--bp,#1f4e8c);background:color-mix(in srgb,var(--bp,#1f4e8c) 10%,#fff)}
.hr-toggle:focus-within{outline:3px solid color-mix(in srgb,var(--bp,#1f4e8c) 45%,transparent);outline-offset:2px}

/* Push-ilmoitukset */
.push-slot{padding:0 14px 8px}.push-slot:empty{display:none}
.push-btn{border-color:var(--bp,#1f4e8c);color:var(--bp,#1f4e8c);font-weight:700}
.push-btn.is-on{border-color:var(--line);color:inherit;font-weight:600}
.push-hint{font-size:13px;color:var(--muted,#5b6b70)}
@media (max-width:760px){.push-slot{padding:0 0 8px}}

/* Autokorjaamo: värit, Valmiit ja tilaukset */
.ch-row.tone-avoin{background:#fffbea;box-shadow:inset 4px 0 0 #e9b400}
.ch-row.tone-kauppa{background:#f1faf4;box-shadow:inset 4px 0 0 #2e9d57}
.ch-row.tone-ei{background:#fff6f6;box-shadow:inset 4px 0 0 #d64545}
.ch-row.tone-valmis{background:#fff;box-shadow:inset 4px 0 0 #b8c2c7}
.ch-row.tone-avoin:hover{background:#fff6d6}.ch-row.tone-kauppa:hover{background:#e6f6ec}.ch-row.tone-ei:hover{background:#ffeded}
.ch-row.sel{outline:2px solid var(--accent);outline-offset:-2px}
.ch-prog{font-size:11px;color:#17663a;font-weight:600;white-space:nowrap}
.car-seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;background:#e9eef0;border-radius:10px;padding:4px;margin:0 14px 8px}
.car-seg button{border:0;background:transparent;border-radius:8px;padding:9px 6px;font:inherit;font-weight:600;font-size:14px;color:#4d5a60;cursor:pointer;min-height:40px}
.car-seg button span{font-weight:700;opacity:.75}
.car-seg button[aria-pressed="true"]{background:#fff;color:var(--fg,#132226);box-shadow:0 1px 2px rgba(0,0,0,.1)}
.car-legend{display:flex;gap:14px;flex-wrap:wrap;padding:0 14px 8px;font-size:12px;color:#4d5a60}
.car-legend span{display:flex;align-items:center;gap:6px}.car-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.t-avoin{background:#e9b400}.t-kauppa{background:#2e9d57}.t-ei{background:#d64545}.t-valmis{background:#b8c2c7}
@media (max-width:760px){.car-seg{margin:0 0 8px}.car-legend{padding:0 0 8px}}
.ord-sug{margin:10px 0;background:#fff;border:1.5px solid #2e9d57;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;max-width:520px;align-self:center;width:100%;box-sizing:border-box}
.os-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}.os-head b{color:#17663a}.os-head small{color:#4d5a60}
.os-rows{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;font-size:14px}.os-rows .os-tot{border-top:1px solid var(--line);padding-top:6px;font-weight:700}
.ord-sug .hb{display:flex;gap:8px;flex-wrap:wrap}
.ord-mini{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;background:#fff}
.ord-mini.off{opacity:.6}.ord-mini>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}.ord-mini small{color:#4d5a60;font-size:12px}
.ord-mini select{max-width:140px;font-size:13px}
.ord-mail{font-size:12px;font-weight:600}.ord-mail.ok{color:#17663a}.ord-mail.send{color:var(--accent);text-decoration:underline}
.ost-uusi{background:#fff1bf;color:#6b4e00}.ost-osat,.ost-tyossa{background:#dcf3e3;color:#17663a}.ost-valmis{background:#eceff1;color:#4d5a60}.ost-peruttu{background:#fde2e2;color:#9b1c1c}
.ord-m{max-width:620px}.ord-body{display:flex;flex-direction:column;gap:14px}
.ord-rows{display:flex;flex-direction:column;gap:6px}
.ord-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;background:#fff}
.ord-row.off{opacity:.55}.ord-row small{color:#4d5a60}.ord-row input{width:18px;height:18px;margin:0}
.ord-add{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;align-items:end}
.ord-tot{display:flex;justify-content:space-between;font-size:16px;border-top:1px solid var(--line);padding-top:10px}
@media (max-width:560px){.ord-add{grid-template-columns:minmax(0,1fr) 90px}.ord-add .btn{grid-column:1/-1}}
.ord-page{display:flex;flex-direction:column;gap:14px}
.ord-headrow{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.ord-headrow h1{margin:0}.ord-headrow p{margin:4px 0 0;max-width:640px}
.ord-tools{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.ord-tools input{min-width:260px}.ord-to{font-size:13px;color:#4d5a60}
.ord-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
.ord-col{background:#e8edf0;border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.ord-colh{display:flex;justify-content:space-between;align-items:center;padding:2px 4px}.ord-colh span{background:#fff;border-radius:999px;padding:1px 9px;font-size:13px;font-weight:700;color:#4d5a60}
.ord-card{background:#fff;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;box-shadow:0 1px 2px rgba(19,34,38,.08)}
.ord-card.st-uusi{box-shadow:inset 0 3px 0 #e9b400,0 1px 2px rgba(19,34,38,.08)}.ord-card.st-osat,.ord-card.st-tyossa{box-shadow:inset 0 3px 0 #2e9d57,0 1px 2px rgba(19,34,38,.08)}
.oc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.oc-title{font-size:14px}
.oc-sum{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e8edf0;padding-top:6px}
.oc-act{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.ord-empty{text-align:center;padding:14px 0;margin:0}
@media (max-width:1000px){.ord-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.ord-board{grid-template-columns:minmax(0,1fr)}.ord-tools{align-items:stretch;width:100%}.ord-tools input{min-width:0}}
.oc-act .mini.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}

/* Oteon-tunnus */
svg.o-mark{width:30px;height:30px;flex:none;display:block}
svg.o-mark path{fill:none;stroke-width:16;stroke-linecap:round}
svg.o-mark .a1{stroke:var(--o-a1,#0b4f5c)}svg.o-mark .a2{stroke:var(--o-a2,#c6e86a)}
.brand .o-word{font-family:'Manrope',var(--f-display);font-weight:800;letter-spacing:-.04em;font-size:23px;color:#0b4f5c}
body.branded svg.o-mark .a1{stroke:var(--bar-fg)}
.auth-band svg.o-mark,.sv-band svg.o-mark{width:28px;height:28px}
.auth-band .o-word,.doc-band .o-word{color:#fff;font-family:'Manrope',var(--f-display);font-weight:800;letter-spacing:-.04em;font-size:22px}

/* Oteonin pääkäyttäjä */
.oh-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:start;margin-top:18px}
.oh-side{position:sticky;top:calc(var(--tb-h,64px) + 16px);background:#0f1e22;color:#fff;border-radius:20px;padding:18px 12px;display:flex;flex-direction:column;gap:22px}
.oh-side nav{display:flex;flex-direction:column;gap:4px}
.oh-side nav a{color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:11px 12px;border-radius:10px}
.oh-side nav a:hover{background:rgba(255,255,255,.08)}.oh-side nav a.on{background:rgba(198,232,106,.16);color:#c6e86a;font-weight:700}
.oh-backup{background:rgba(255,255,255,.06);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.oh-backup span{font-size:12px;color:#b9cbc8}.oh-backup .btn{background:#fff;color:#0f1e22;border-color:#fff;font-size:13px}
.oh-main{display:flex;flex-direction:column;gap:20px;min-width:0}
.oh-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.oh-head h1{font-size:32px;font-weight:800;letter-spacing:-.02em}
.oh-acts{display:flex;gap:10px;flex-wrap:wrap}
.oh-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.oh-kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0}
.oh-kpi>span{font-size:13px;color:var(--muted);font-weight:600}.oh-kpi b{font-size:32px;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}
.oh-kpi small{font-size:12px;color:var(--muted)}.oh-kpi small.late{color:#b42318;font-weight:700}
.oh-kpi.hl{background:#c6e86a;border-color:#c6e86a;color:#0f1e22}.oh-kpi.hl>span,.oh-kpi.hl small{color:#22341a}
.oh-bar{height:6px;background:var(--accent-soft);border-radius:3px;overflow:hidden}.oh-bar i{display:block;height:6px;background:var(--accent);border-radius:3px}
.oh-spark{width:100%;height:28px;color:var(--accent)}
.oh-table{padding:0;overflow:hidden}.oh-thead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;flex-wrap:wrap}.oh-thead h2{font-size:18px}
.oh-thead input{min-width:240px}
.oh-scroll{overflow-x:auto}
.oh-table table{width:100%;border-collapse:collapse;font-size:14px;min-width:760px}
.oh-table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding:10px 14px}
.oh-table td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:middle}
.oh-table th.num,.oh-table td.num{text-align:right}
.oh-table tr[data-nav]{cursor:pointer}.oh-table tr[data-nav]:hover td{background:#f6faf9}.oh-table tr[data-nav]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.oh-co{display:flex;align-items:center;gap:12px}.oh-co>span{display:flex;flex-direction:column}.oh-co small{color:var(--muted);font-size:12px}
.oh-pkg{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}.oh-pkg.off{background:#eef1f2;color:#5b6b6f}
.oh-add-n{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.oh-new{color:var(--accent)}.oh-zero{color:#8a9a9d}
.oh-st{font-weight:700;font-size:13px}.oh-st.ok{color:#2e7a3c}.oh-st.late{color:#b42318}.oh-st.open{color:#8a5a00}.oh-st.mute{color:var(--muted);font-weight:600}
.oh-go{color:var(--accent);font-weight:700;text-align:right;white-space:nowrap}
.oh-attn{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.oh-att{border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;border:1px solid var(--line);background:#fff;text-align:left;font:inherit;cursor:pointer}
.oh-att b{font-size:14px}.oh-att span{font-size:13px;color:var(--muted)}
.oh-att.red{background:#fff5f5;border-color:#f3c6c6}.oh-att.red b{color:#9b1c1c}
.oh-att.amber{background:#fffbea;border-color:#f0dc94}.oh-att.amber b{color:#6b4e00}
.oh-att.ok{background:#f1faf4;border-color:#c8e8d2}.oh-att.ok b{color:#17663a}
.oh-add{max-width:520px}.oh-add form{display:flex;flex-direction:column;gap:10px}
.sr{position:absolute;left:-9999px}
.pk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pk-row{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;align-items:center;margin-top:8px}
.pk-price{display:flex;align-items:center;gap:6px}.pk-price input{width:100%}.pk-price span{font-size:13px;color:var(--muted);white-space:nowrap}
.pk-adds{display:flex;flex-direction:column;gap:4px;font-size:13px}.pk-own{width:100px}.pk-nob{font-size:13px;white-space:nowrap}
@media (max-width:1000px){.oh-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.oh-attn{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){.oh-shell{grid-template-columns:minmax(0,1fr);gap:14px}.oh-side{position:static;padding:10px;border-radius:14px;gap:10px}
  .oh-side nav{flex-direction:row;overflow-x:auto;scrollbar-width:none}.oh-side nav a{white-space:nowrap;padding:9px 12px}.oh-backup{display:none}.pk-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.oh-kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.oh-kpi b{font-size:26px}.oh-head h1{font-size:26px}.oh-thead input{min-width:0;width:100%}}

/* ---------- v51: työvaiheet, kuvien näkyvyys, tunnit, asiakkaan seuranta ---------- */
.ph-steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px}
.ph-step{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;min-height:52px;font:inherit;font-size:14px;font-weight:700;color:var(--fg);cursor:pointer}
.ph-step i{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px solid var(--line);font-style:normal;font-size:13px;color:var(--muted);background:#fff}
.ph-step span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph-step small{font-size:11.5px;font-weight:600;color:var(--muted)}
.ph-step:hover:not([disabled]){border-color:var(--accent)}
.ph-step.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.ph-step.on i{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.ph-step.cur{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ph-step[disabled]{cursor:default}
.cv-wrap{position:relative}
.cv-wrap .fs-thumb{width:100%}
.cv-tog{position:absolute;top:4px;right:4px;width:30px;height:30px;border-radius:8px;border:0;display:grid;place-items:center;background:rgba(19,34,38,.72);color:#fff;cursor:pointer;padding:0}
.cv-tog.on{background:var(--accent);color:var(--accent-fg)}
.cv-tog.ro{cursor:default;width:24px;height:24px}
.cv-ph{position:absolute;left:4px;bottom:4px;right:4px;font-size:10.5px;font-weight:700;color:#fff;background:rgba(19,34,38,.66);border-radius:6px;padding:1px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.cv-def{font-size:13px;margin:-4px 0 0}
.q-btn.q-hot{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.q-btn.q-stop{background:#fff4e5;border-color:#f0c27a}
.photo-ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:14px;padding:12px 14px;margin:0 0 16px}
.photo-ask b{flex:1 1 220px}
.photo-ask .sub{flex:1 1 100%;order:3;margin:-4px 0 0;font-size:13px}
.hr-run{background:linear-gradient(160deg,var(--accent-soft),#fff)}
.hr-big{font-size:40px;font-family:var(--f-display);letter-spacing:-.02em;line-height:1}
.hr-day{display:flex;justify-content:space-between;gap:8px;margin:10px 0 4px}
.hr-it{grid-template-columns:minmax(0,1fr) auto auto}
.hr-acts{display:flex;gap:4px}
@media (max-width:640px){.hr-it{grid-template-columns:minmax(0,1fr) auto}.hr-acts{grid-column:1/-1}}
.pt-link{display:flex;flex-direction:column;gap:8px}
.pt-link input{width:100%;font-size:13px}
.pt-grid{gap:16px}
.pc-list li.cust{background:#fff8e6;border-color:#f0dc94}
.crew{display:flex;flex-direction:column;gap:12px}
.crew-p{display:grid;grid-template-columns:160px minmax(0,1fr);gap:10px;align-items:start}
.crew-js{display:flex;flex-wrap:wrap;gap:6px}
.crew-j{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:1px solid var(--line);border-left:4px solid var(--line);background:#fff;border-radius:10px;padding:6px 10px;font:inherit;font-size:13.5px;font-weight:700;text-align:left;cursor:pointer;color:var(--fg)}
.crew-j small{font-weight:600;color:var(--muted);font-size:12px}
.crew-j.now{border-left-color:var(--accent);background:var(--accent-soft)}
@media (max-width:640px){.crew-p{grid-template-columns:1fr}}
/* Julkinen seurantasivu */
.portal .sv-card{min-height:0;margin-bottom:14px}
.pp-prog{display:flex;align-items:center;gap:18px}
.pp-ring{--p:0;width:112px;height:112px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--bp,var(--accent)) calc(var(--p)*1%),var(--surface-2) 0)}
.pp-ring b{width:84px;height:84px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:24px;font-family:var(--f-display)}
.pp-now{display:flex;flex-direction:column;gap:2px;min-width:0}
.pp-now b{font-size:22px;font-family:var(--f-display);line-height:1.15}
.pp-track{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.pp-track li{display:flex;align-items:center;gap:10px;padding:6px 0;color:var(--muted);font-weight:600}
.pp-track li i{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:12px;background:#fff;flex-shrink:0}
.pp-track li.pp-done{color:var(--fg)}
.pp-track li.pp-done i{background:var(--bp,var(--accent));border-color:var(--bp,var(--accent));color:var(--bp-fg,#fff)}
.pp-track li.pp-cur{color:var(--fg);font-weight:800}
.pp-track li.pp-cur i{border-color:var(--bp,var(--accent));box-shadow:0 0 0 4px color-mix(in srgb,var(--bp,var(--accent)) 18%,#fff)}
.pp-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.pp-ph{position:relative;display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.pp-ph img{width:100%;height:100%;object-fit:cover;display:block}
.pp-ph span{position:absolute;left:6px;right:6px;bottom:6px;font-size:11px;font-weight:700;color:#fff;background:rgba(19,34,38,.66);border-radius:6px;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-load{animation:pp-pulse 1.2s ease-in-out infinite}
@keyframes pp-pulse{50%{opacity:.5}}
@media (prefers-reduced-motion:reduce){.pp-load{animation:none}}
/* v54: korjaamon tilaus, hintojen nimet, ajanvaraus */
.ord-price{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2,#f7f9f9)}
.ord-price .vat-field{margin:0}.ord-price #ord-price{font-size:20px;font-weight:800}
.ord-src{display:block;margin-top:2px;line-height:1.35}
.ord-inc{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.ord-inc .chk,.bk-pay .chk{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;cursor:pointer}
.ord-inc input,.bk-pay .chk input{width:18px;height:18px;margin:0}
.ord-inc .linkbtn{margin-left:auto}
.ord-split{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}
.vat-tg.static{display:inline-flex;align-items:center;cursor:default}
.fopt{font-weight:400;color:var(--muted)}
.ord-cost{display:flex;flex-direction:column;gap:4px;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.ord-cost .field{margin:0}.ord-cost .sub{margin:0;font-size:12.5px}
.ord-cst{color:#6b4e0a!important;font-weight:600}
.ord-bk{align-self:flex-start;border:0;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 10px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;margin-top:4px}
.ord-bk.add{background:none;border:1px dashed var(--accent)}
.cp-lbl{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:inline-flex;gap:6px;align-items:baseline}
.cp-lbl i{font-style:normal;font-size:11px;color:var(--muted);opacity:0}.cp-row:hover .cp-lbl i,.cp-lbl:focus-visible i{opacity:1}
@media (hover:none){.cp-lbl i{opacity:.7}}
.cp-lin{width:100%;font:inherit;font-size:13.5px;padding:4px 6px;border:1px solid var(--accent);border-radius:6px}
.cal-pick{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--offer-soft,#fff3e0);border:1px solid #f0cf9e;border-radius:12px;padding:10px 14px;margin:0 0 12px}
.cal-pick>span{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cal-pick small{flex-basis:100%;color:#6b4e0a}
.cal-slot.drag-sel{background:color-mix(in srgb,var(--accent) 28%,#fff)!important}
.cal-dcol{position:relative}
.cal-drag-tip{position:absolute;left:4px;z-index:5;pointer-events:none;background:var(--accent);color:var(--accent-fg);font-size:12px;font-weight:800;padding:2px 8px;border-radius:6px;transform:translateY(-110%)}
.cal-ev.car{border-left-color:#c77700;background:#fff4e2}
.bk-pay{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.bk-pay .vf-lab{flex-basis:100%;font-weight:700;font-size:13.5px}.bk-pay .field{flex-basis:100%;margin:0}
@media (max-width:560px){.ord-split{grid-template-columns:1fr 1fr}.ord-split .linkbtn{grid-column:1/-1}.ord-inc .linkbtn{margin-left:0}}
/* v55: tilauksen ikkuna ja muistiinpanot */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ord-sublab{margin:0 0 6px;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.oc-open{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.oc-open:hover b,.oc-title.oc-open:hover{text-decoration:underline}
.oc-title.oc-open{font-weight:800;font-size:15px}
.ord-note-chip{display:block;align-self:flex-start;max-width:100%;border:0;background:#fff8e6;color:#5c4710;border-radius:8px;padding:4px 8px;margin-top:4px;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-notes{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:8px}
.ov-notes li{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;display:flex;flex-direction:column;gap:2px}
.ov-n-h{font-size:12.5px}.ov-n-b{font-size:14.5px;line-height:1.4}
/* v57: muokattavat hintarivit ja tekoälytunnistus */
.or-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.or-head b{font-size:14px}.or-vat{margin-left:auto;border-left:1px solid var(--line);border-radius:10px;padding:6px 10px}
.or-list{display:flex;flex-direction:column;gap:8px}
.or-row{display:grid;grid-template-columns:minmax(0,1fr) 78px 150px 34px;gap:6px;align-items:center}
.or-row input,.or-row select{min-width:0}
.or-row .x{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-size:16px;color:var(--muted)}
.or-row .x:hover{color:#b42318;border-color:#f1b4ad}
.or-row.unnamed .or-name{border-color:#e0a100;background:#fff8e0;box-shadow:0 0 0 2px #f6d77a}
.or-warn{margin:0;color:#7a5800!important;font-size:12.5px}
.or-amt input{text-align:right}
.ord-ai{font-size:12.5px;font-weight:700;color:#6a3fb5;background:#f2ecff;border-radius:999px;padding:3px 10px}.ord-ai.busy{animation:aip 1.2s ease-in-out infinite}
@keyframes aip{50%{opacity:.55}}
.ov-rows{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
.ai-tog{margin-top:4px}
.ai-tbl td.num,.ai-tbl th.num{text-align:right}.ai-tbl tr.tot td{border-top:1px solid var(--line)}
@media (max-width:560px){.or-row{grid-template-columns:84px minmax(0,1fr) 34px}.or-row .or-name{grid-column:1/-1}}
.ai-wrap{overflow-x:auto;max-width:100%}
/* v58: kumppanin logo */
.ch-l{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex-shrink:0}
.ch-logo{display:block;max-width:96px;max-height:26px;width:auto;height:auto;object-fit:contain;object-position:left center}
.cc-logo{display:block;max-width:110px;max-height:28px;width:auto;height:auto;object-fit:contain;flex-shrink:0}
.cu-title{display:flex;align-items:center;gap:12px}.cu-logo{max-width:140px;max-height:40px;object-fit:contain}
.cu-logo-act{display:flex;gap:12px;align-items:center;margin-top:4px}.cu-logo-act .linkish{cursor:pointer}
@media (max-width:560px){.cc-logo{max-width:70px;max-height:22px}}
/* v60: auton tiedot ja merkki/malli-haku */
.veh-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ac-wrap{position:relative}
.ac-list{position:absolute;left:0;right:0;top:100%;z-index:30;margin-top:4px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(15,30,34,.14);max-height:240px;overflow:auto;padding:4px}
.ac-it{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:7px;font:inherit;font-size:14.5px;cursor:pointer;color:inherit}
.ac-it:hover,.ac-it.on{background:var(--accent-soft)}
.veh-show{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.veh-t{display:flex;flex-direction:column;min-width:0;flex:1}.veh-t small{color:var(--muted)}
.veh-edit{display:flex;flex-direction:column;gap:10px}.veh-edit .plate{align-self:flex-start}
.ci-sec .veh-grid{grid-template-columns:1fr 1fr;gap:8px}.ci-sec .veh-grid .field{font-size:12.5px}
.cc-km{font-weight:500;color:var(--muted)}
@media (max-width:420px){.veh-grid{grid-template-columns:1fr 1fr}}
