/* Lunni-tuoteperheen ilme: navy · sky · paper. Sama sanasto kuin Manager Appissa. */
:root{--navy:#003342;--navy-2:#002432;--sky:#54B9EA;--sky-deep:#2E6BF0;--orange:#FFC961;--orange-2:#F2B84C;--amber-ink:#532A16;--amber-soft:#FFE6B5;--amber-hover:#F2B84C;--paper:#F5F6F1;--card:#fff;--line:#E3E5EF;--line-2:#CDD1E0;
--ink:#171B3F;--ink-2:#3A4060;--ink-3:#7A80A0;--ok:#2E8B57;--warn:#C98A1B;--err:#C0392B;--amber:#E0A33C;--r:12px;--shadow:0 1px 2px rgba(23,27,63,.05),0 8px 24px -12px rgba(23,27,63,.15)}
*{box-sizing:border-box}body{margin:0;font-family:"Work Sans",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--sky-deep)}
.topbar{position:sticky;top:0;z-index:20;background:linear-gradient(90deg,var(--navy-2),var(--navy) 60%,#00465B);color:#fff;display:flex;align-items:center;gap:18px;padding:0 22px;height:56px;box-shadow:0 6px 24px -14px rgba(0,0,0,.6)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.02em}.brand small{font-weight:500;opacity:.7;margin-left:6px}
.topnav{display:flex;gap:4px;margin-left:8px}.topnav button{background:transparent;border:0;color:#C9CEE6;padding:8px 12px;border-radius:8px;cursor:pointer;font-weight:600}
.topnav button:hover{background:rgba(255,255,255,.08)}.topnav button.on{background:rgba(84,185,234,.18);color:#fff;box-shadow:inset 0 -2px 0 var(--orange)}
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:#C9CEE6}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--sky);color:var(--navy);display:grid;place-items:center;font-weight:800;font-size:12px}
.wrap{max-width:1240px;margin:0 auto;padding:22px 22px 60px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
h1{font-size:28px;margin:0;letter-spacing:-.02em;color:var(--navy)}h2{font-size:17px;margin:0}.sub{color:var(--ink-3);margin-top:3px;font-size:13.5px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:8px 0 18px;flex-wrap:wrap}
.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:9px 14px;cursor:pointer;color:var(--ink-3);font-weight:600}
.tabs button.on{color:var(--navy);border-bottom-color:var(--sky-deep)}.tabs .n{background:#EFF1F6;color:var(--ink-2);border-radius:999px;padding:0 7px;font-size:11px;margin-left:6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:16px 18px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.g4,.g5,.g3,.g2{grid-template-columns:1fr 1fr}}
.stat{border-top:4px solid var(--sky-deep);display:flex;flex-direction:column-reverse;justify-content:flex-end}.stat .v{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.stat .l{color:var(--ink-3);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin:0 0 6px}
.stat.warn{border-top-color:var(--warn)}.stat.warn .v{color:var(--warn)}.stat.ok{border-top-color:var(--ok)}.stat.ok .v{color:var(--ok)}.stat.err{border-top-color:var(--err)}.stat.err .v{color:var(--err)}
table.t{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.t th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:9px 10px;border-bottom:1px solid var(--line);background:#FAFBFD}
.t td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}.t tr:last-child td{border-bottom:0}
.t tr.click{cursor:pointer}.t tr.click:hover td{background:#FAFBFD}.t td.ref{white-space:nowrap;font-weight:700}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#EFF1F6;color:var(--ink-2);white-space:nowrap}
.chip.ok{background:#E7F4EC;color:var(--ok)}.chip.sky{background:#E7F3FB;color:var(--sky-deep)}.chip.warn{background:#FBF1DC;color:var(--warn)}
.chip.err{background:#F9E9E7;color:var(--err)}.chip.navy{background:var(--navy);color:#fff}.chip.mut{color:var(--ink-3)}.chip.click{cursor:pointer}
.tV{background:#EFF1F6}.tK{background:#E7F3FB;color:var(--sky-deep)}.tS{background:#F1EDF9;color:#6A4BB8}.tCR{background:#FBF1DC;color:var(--warn)}.tT{background:#E7F4EC;color:var(--ok)}.tI{color:var(--ink-3)}
.sanswered,.sdecided,.sdone,.sapproved{background:#E7F4EC;color:var(--ok)}.sestimated{background:#E7F3FB;color:var(--sky-deep)}.sin_progress{background:var(--amber-soft);color:var(--amber-ink)}select.inline.sin_progress{background:var(--amber-soft);color:var(--amber-ink)}.sdropped{text-decoration:line-through;color:var(--ink-3)}
.bar{height:8px;border-radius:6px;background:#E9EBF3;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--sky-deep),var(--sky))}
.bar.warn i{background:var(--warn)}.bar.err i{background:var(--err)}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border:0;border-radius:9px;padding:8px 14px;font-weight:700;cursor:pointer}
.btn:hover{background:#004F60}.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line-2)}.btn.ghost:hover{background:#F5F6FA}
.btn.sm{padding:5px 10px;font-size:12.5px}.btn.sky{background:var(--sky-deep)}.btn.accent{background:var(--orange);color:var(--amber-ink) !important}.btn.accent:hover{background:var(--amber-hover)}.btn:disabled{opacity:.5;cursor:default}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}
.f{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--ink-2);font-weight:600}
.f input,.f select,.f textarea{border:1px solid var(--line-2);border-radius:8px;padding:7px 10px;background:#fff;font-weight:400;color:var(--ink);min-width:0}
.f textarea{min-height:70px;resize:vertical}
select.inline{border:1px solid var(--line);border-radius:7px;padding:3px 6px;background:#fff;font-size:12px;font-weight:700}
.finding{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:8px;font-size:13px}
.finding small{display:block;color:var(--ink-3);margin-top:2px}
.drawer{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,96vw);max-height:92vh;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px -30px rgba(0,0,0,.55);z-index:30;overflow:auto;padding:22px}
@media(max-width:700px){.drawer{top:auto;left:0;bottom:0;transform:none;width:100vw;max-height:94vh;border-radius:18px 18px 0 0}}
.kind-row{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:13px}.kind-row .lbl{width:170px;flex:0 0 170px}.kind-row .bar{flex:1;margin:0;height:12px}.kind-row .val{width:120px;text-align:right;white-space:nowrap;font-weight:700}
.mini-bars{display:flex;align-items:flex-end;gap:6px;height:80px;margin-top:8px}.mini-bars div{flex:1;background:var(--sky-deep);border-radius:4px 4px 0 0;position:relative}.mini-bars div span{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-size:10px;color:var(--ink-3)}
.plus-h{border:1px solid var(--orange-2);background:var(--amber-soft);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:800;color:var(--amber-ink);cursor:pointer;margin-top:4px}.plus-h:hover{background:var(--orange);color:var(--amber-ink)}
.backdrop{position:fixed;inset:0;background:rgba(15,19,48,.35);z-index:25}
.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy),#005D75)}
.login .card{width:min(400px,92vw);padding:28px}.err-msg{color:var(--err);font-size:13px;margin-top:8px}
.muted{color:var(--ink-3);font-size:12.5px}.alias{font-size:11px;color:var(--ink-3);font-weight:400}
.ans{color:var(--sky-deep);font-size:12.5px;margin-top:3px}.events{border-top:1px solid var(--line);margin-top:14px;padding-top:10px;font-size:12.5px}
.events div{padding:4px 0;border-bottom:1px dashed var(--line);color:var(--ink-2)}.events time{color:var(--ink-3);margin-right:8px}
.section{margin-top:22px}.hint{background:#F5F6FA;border:1px dashed var(--line-2);border-radius:10px;padding:10px 12px;font-size:12.5px;color:var(--ink-2)}
.exit{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;background:#EFF1F6;color:var(--ink-3);font-size:12px;font-weight:600;cursor:pointer;margin:2px 4px 2px 0}
.exit.ok{background:#E7F4EC;color:var(--ok)}

/* tuntinäppäimistö */
.hours-in{cursor:pointer;font-weight:700;font-size:16px;background:#F7F8FC}
.pad{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:18px 18px 0 0;
  box-shadow:0 -20px 60px -30px rgba(0,0,0,.45);z-index:40;padding:16px 16px 22px}
@media(min-width:700px){.pad{bottom:auto;top:50%;transform:translate(-50%,-50%);border-radius:18px}}
.pad-v{font-size:48px;font-weight:800;letter-spacing:-.02em;text-align:center;padding:6px 0 10px;min-height:58px}.pad-v span{font-size:18px;color:var(--ink-3);font-weight:600}
.pad-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.pad-q{border:1px solid var(--line-2);background:#F5F6FA;border-radius:10px;padding:12px 0;font-weight:700;font-size:17px;cursor:pointer;color:var(--navy)}
.pad-q.on{background:var(--sky-deep);color:#fff;border-color:var(--sky-deep)}
.pad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pad-k{border:0;background:#EFF1F6;border-radius:12px;height:68px;font-size:28px;font-weight:800;cursor:pointer;color:var(--navy)}
.pad-k:active{background:var(--sky)}

/* aikajana */
.glegend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.gantt{overflow-x:auto}.g-row{display:flex;min-width:max-content}.g-row+.g-row{border-top:1px solid var(--line)}
.g-label{position:sticky;left:0;z-index:3;width:220px;flex:0 0 220px;background:var(--card);display:flex;align-items:center;gap:8px;padding:0 12px;font-size:13px;border-right:1px solid var(--line);min-height:40px}
.g-sum{margin-left:auto;color:var(--ink-3);font-size:11.5px;font-weight:600;white-space:nowrap}.g-tlabel{padding-left:26px;color:var(--ink-2)}
.g-lane{position:relative;min-height:40px;flex:0 0 auto}
.g-head .g-label,.g-head{background:#FAFBFD;font-weight:700}.g-head .g-lane{min-height:44px}
.g-week{position:absolute;top:4px;font-size:10px;line-height:1.3;color:var(--ink-3);border-left:1px solid var(--line);padding-left:4px;height:100%}
.g-proj .g-lane{background:#F7F8FC}
.g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--sky-deep);opacity:.5}
.g-mark{position:absolute;top:8px;transform:translateX(-50%);color:var(--sky-deep);font-size:14px;line-height:1;text-align:center}
.g-mark span{display:block;font-size:9px;font-weight:700;color:var(--ink-3)}.g-mark.held{color:var(--ok)}.g-mark.golive{color:var(--ok);font-size:18px}
.gb{position:absolute;top:8px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:#fff;padding:0 6px}
.gb.planned{background:#9AA0BC}.gb.active{background:var(--sky-deep)}.gb.done{background:var(--ok)}.gb.w1B{box-shadow:inset 0 0 0 2px var(--amber)}
.gb-t{white-space:nowrap}
.gmove{position:absolute;top:2px;width:18px;height:20px;border-radius:5px;background:#fff;color:var(--navy);border:1px solid var(--line-2);display:grid;place-items:center;opacity:0;cursor:pointer;font-size:14px;line-height:1}
.gmove.l{left:-20px}.gmove.r{right:-20px}.gb:hover .gmove{opacity:1}.gb:hover{z-index:4}

.finding.dim{opacity:.6}

.sticky-bar{position:sticky;top:-22px;z-index:6;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:0 8px 20px -14px rgba(23,27,63,.35)}

/* työkuorma (prototyypin henki) */
.wl{overflow-x:auto}.wl table{border-collapse:separate;border-spacing:0;min-width:100%}
.wl th{position:sticky;top:0;background:#FAFBFD;z-index:2;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:10px 8px;border-bottom:1px solid var(--line);text-align:center}
.wl th.now{color:var(--sky-deep);background:#E7F3FB}.wl th.person{text-align:left;position:sticky;left:0;z-index:3;min-width:220px}
.wl td{padding:6px 6px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:center}
.wl td.person{text-align:left;position:sticky;left:0;background:#fff;z-index:1;font-weight:700}.wl td.person small{display:block;color:var(--ink-3);font-weight:500}
.wl td.now{background:#F3F8FE}.wl .cellb{cursor:pointer;border-radius:8px;padding:6px 6px;transition:background .15s}.wl .cellb:hover{background:#EFF1F6}.wl .cellb.sel{outline:2px solid var(--sky-deep)}
.wl .num{font-weight:800;font-size:13px}.wl .num.over{color:var(--err)}.wl .num.warn{color:var(--warn)}.wl .num.ok{color:var(--ok)}.wl .num.dim{color:var(--ink-3);font-weight:600}
.wl .lb{height:8px;border-radius:4px;background:#E9EBF3;overflow:hidden;display:flex;margin-top:4px}.wl .lb i{display:block;height:100%}.wl .lb .a{background:var(--navy)}.wl .lb .p{background:var(--sky)}.wl .lb.over .p{background:var(--err)}.wl .lb.warn .p{background:var(--warn)}
.wl .cap{position:relative}.wl .cap::after{content:"";position:absolute;right:-1px;top:-2px;bottom:-2px;width:2px;background:var(--ink-3);opacity:.5}
.wl tr.bucket td{background:var(--amber-soft)}.wl tr.bucket td.person{background:var(--amber-soft);color:var(--amber-ink)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);align-items:center}.legend i{display:inline-block;width:14px;height:8px;border-radius:3px;margin-right:6px;vertical-align:middle}

.wl .lb .f{background:repeating-linear-gradient(45deg,var(--orange),var(--orange) 3px,#fff 3px,#fff 6px)}

/* kalenteri */
.cal-grid{display:grid;grid-template-columns:34px repeat(7,1fr);gap:4px}.cal-head{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:center;padding:4px 0;font-weight:700}
.cal-wk{font-size:10px;color:var(--ink-3);display:flex;align-items:flex-start;justify-content:center;padding-top:8px}
.cal-day{min-height:96px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:4px 6px;cursor:pointer;transition:background .12s}.cal-day.out{background:#FAFBFD;opacity:.65}.cal-day.today{border-color:var(--sky-deep);box-shadow:inset 0 0 0 1px var(--sky-deep)}.cal-day.over{background:#E7F3FB;border-color:var(--sky)}
.cal-num{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:3px}.cal-day.today .cal-num{color:var(--sky-deep)}
.cal-ev{font-size:11.5px;line-height:1.3;border-left:3px solid var(--sky-deep);background:#EFF4FE;border-radius:6px;padding:3px 6px;margin-top:3px;cursor:grab;white-space:normal;word-break:break-word}.cal-ev:active{cursor:grabbing}
.cal-ev small{display:block;color:var(--ink-3);font-size:10.5px}.cal-time{font-weight:800;margin-right:4px}
.cal-ev.ok{border-left-color:var(--ok);background:#E7F4EC;cursor:default}.cal-ev.dim{opacity:.5;text-decoration:line-through;cursor:default}.cal-ev.golive{border-left-color:var(--orange);background:var(--amber-soft);font-weight:800;cursor:default}
@media(max-width:800px){.cal-grid{grid-template-columns:22px repeat(7,1fr)}.cal-day{min-height:64px;padding:2px 3px}.cal-ev small{display:none}}

/* haku */
.search{position:relative;margin-left:8px}.search input{width:300px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;border-radius:10px;padding:7px 30px 7px 12px;font-size:13px}.search input::placeholder{color:rgba(255,255,255,.65)}.search input:focus{background:#fff;color:var(--navy);outline:none;border-color:var(--sky)}
.search.compact input{width:230px}.search-x{position:absolute;right:6px;top:5px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:13px;opacity:.7}
.search-res{position:absolute;top:40px;left:0;width:min(640px,92vw);background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 70px -20px rgba(0,0,0,.5);z-index:40;text-align:left;font-weight:500}
.search-h{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:8px 12px 2px;font-weight:700}
.search-row{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;cursor:pointer;font-size:13.5px;border-bottom:1px solid #F1F2F7}.search-row:hover{background:#EFF4FE}
.topbar[style*="amber-ink"] .search input{background:rgba(255,255,255,.7);color:var(--amber-ink);border-color:rgba(83,42,22,.25)}.topbar[style*="amber-ink"] .search input::placeholder{color:rgba(83,42,22,.6)}
@media(max-width:900px){.search input{width:150px}.search.compact input{width:130px}}

/* kokosivun muistio */
.fullpage{position:fixed;inset:0;z-index:35;background:var(--paper);display:flex;flex-direction:column}
.fullpage-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 22px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.fullpage-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;padding:18px 22px;overflow:auto}
.fullpage-main{display:flex;flex-direction:column;min-height:0}.fullpage-text{flex:1;min-height:60vh;font-size:15px;line-height:1.6;padding:16px;border-radius:12px;border:1px solid var(--line-2);resize:none;font-family:inherit}
.fullpage-side{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;align-self:start}
@media(max-width:900px){.fullpage-body{grid-template-columns:1fr}.fullpage-text{min-height:45vh}}
/* Ok / Ei ok, kommentit */
.verdict{display:inline-flex;gap:4px}.vbtn{border:1px solid var(--line-2);background:#fff;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:700;cursor:pointer;color:var(--ink-3)}
.vbtn.ok.on{background:#E7F4EC;color:var(--ok);border-color:var(--ok)}.vbtn.no.on{background:#F9E9E7;color:var(--err);border-color:var(--err)}.vbtn:hover{background:#F5F6FA}
.cbtn{border:1px solid var(--line-2);background:#fff;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:700;cursor:pointer;color:var(--ink-3)}.cbtn.has{color:var(--sky-deep);border-color:var(--sky)}.cbtn.on{background:#E7F3FB}
.comments-row td{background:#FAFBFD !important;padding:8px 12px 10px 48px !important}.comment{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}.comment:last-of-type{border-bottom:0}
.cal-ev.rev{border-left-color:var(--ink-3);background:#F1F2F7}

.inline-edit{cursor:text;border-bottom:1px dashed transparent;display:inline-block;min-width:24px}.inline-edit:hover{border-bottom-color:var(--line-2);background:#FAFBFD}
td.ref.click span:hover{color:var(--sky-deep)}select.inline.p1{color:var(--err);font-weight:700}select.inline.p2{color:var(--warn);font-weight:700}select.inline.p3{color:var(--ink-3);font-weight:700}

.proposals{background:var(--amber-soft);border:1px solid var(--orange-2);border-radius:10px;padding:8px 10px}.card.stat.click{cursor:pointer}.card.stat.click:hover{box-shadow:0 10px 30px -18px rgba(0,0,0,.35)}

/* tekoälyn nostot */
.brief{border-top:4px solid var(--orange)}.brief-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#fff}.brief-item:hover{background:#FAFBFD}
.brief-item.high{border-left:4px solid var(--err)}.brief-item.medium{border-left:4px solid var(--warn)}.brief-item.low{border-left:4px solid var(--line-2)}
.brief-n{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;font-size:13px;display:grid;place-items:center;flex:0 0 26px}

select.inline.pst-offered,select.inline.pst-contracting{background:#FFF3DA;color:#8A5A00}select.inline.pst-active{background:#E7F3FB;color:var(--sky-deep)}select.inline.pst-live{background:#E7F4EC;color:var(--ok)}select.inline.pst-closed,select.inline.pst-paused{background:#F1F2F7;color:var(--ink-3)}

.eur{font-size:11.5px}

.tabs.unit button{padding:5px 12px}

.card.stat.mut{border-top-color:var(--ink-3)}

/* Seinän tapaamiset */
.meeting{display:flex;gap:12px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.meeting.click:hover{background:#FAFBFD}
.meeting.past{border-left:5px solid var(--ink-3);opacity:.8}.meeting.today{border-left:5px solid var(--orange);background:var(--amber-soft)}.meeting.future{border-left:5px solid var(--sky-deep);background:#F3F8FE}
.meeting .mdate{width:56px;text-align:center;font-size:12.5px;line-height:1.2;flex:0 0 56px}.meeting.past .mdate{color:var(--ink-3)}.meeting.today .mdate{color:var(--amber-ink)}.meeting.future .mdate{color:var(--sky-deep)}

/* ===== Tuntikirjaaja ===== */
.trk{position:fixed;z-index:60;width:352px;background:var(--navy);color:#fff;border-radius:18px;box-shadow:0 24px 60px -18px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08);padding:12px;font-size:13.5px;user-select:none}
.trk-standalone{position:static;width:100%;box-shadow:none}
.trk-head{display:flex;gap:10px;align-items:center;cursor:grab;padding:2px 2px 8px}.trk-head:active{cursor:grabbing}.trk-title{font-weight:800;font-size:16px;color:var(--orange)}.trk-sub{font-size:12px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.trk-ic{border:0;background:rgba(255,255,255,.1);color:#fff;border-radius:8px;width:26px;height:26px;cursor:pointer;font-size:13px}.trk-ic:hover{background:rgba(255,255,255,.22)}
.trk-clock{width:100%;border:0;border-radius:14px;padding:14px 12px;background:var(--orange);color:var(--amber-ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:800}.trk-clock:hover{background:var(--amber-hover)}.trk-clock.on{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 3px var(--orange)}
.trk-time{font-size:32px;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1}.trk-clock-l{font-size:12px;font-weight:600;opacity:.8}
.trk-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.trk-p{border:0;border-radius:12px;padding:9px 10px;background:rgba(255,255,255,.1);color:#fff;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:48px}.trk-p:hover{background:rgba(255,255,255,.2)}.trk-p.on{background:var(--orange);color:var(--amber-ink)}.trk-p.int{border-left:3px solid var(--sky)}.trk-p.on.int{border-left-color:var(--amber-ink)}
.trk-p-n{font-weight:800;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trk-p-s{font-size:11px;opacity:.75}.trk-more{grid-column:span 2;border-radius:10px;border:0;padding:8px;background:rgba(255,255,255,.1);color:#fff}
.trk-note{width:100%;margin-top:10px;border:0;border-radius:10px;padding:10px 12px;background:rgba(255,255,255,.12);color:#fff;font-size:13.5px}.trk-note::placeholder{color:rgba(255,255,255,.55)}.trk-note:focus{background:#fff;color:var(--navy);outline:none}
.trk-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.trk-h{display:flex;gap:4px;align-items:center}.trk-q{border:0;border-radius:8px;padding:7px 9px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;cursor:pointer;font-size:13px}.trk-q.on{background:var(--orange);color:var(--amber-ink)}.trk-h input{width:52px;border:0;border-radius:8px;padding:7px 8px;text-align:center;font-weight:800;background:#fff;color:var(--navy)}
.trk-nb{font-size:11.5px;opacity:.85;display:flex;gap:4px;align-items:center;white-space:nowrap}
.trk-actions{display:grid;grid-template-columns:1.4fr 1fr;gap:6px;margin-top:10px}.trk-big{border:0;border-radius:12px;padding:12px 10px;background:var(--orange);color:var(--amber-ink);font-weight:800;font-size:14px;cursor:pointer}.trk-big:disabled{opacity:.45;cursor:default}.trk-big:hover:not(:disabled){background:var(--amber-hover)}.trk-big.alt{background:rgba(255,255,255,.14);color:#fff}.trk-big.alt.on,.trk-big.alt:hover:not(:disabled){background:var(--sky);color:var(--navy)}
.trk-sug{margin-top:10px;background:#fff;color:var(--navy);border-radius:12px;padding:10px;max-height:46vh;overflow:auto;user-select:text}.trk-reason{font-size:12.5px;line-height:1.45;padding:8px 10px;background:var(--amber-soft);border-radius:8px;color:var(--amber-ink)}
.trk-c{margin-top:6px;padding:8px 10px;border-radius:10px;border:1px solid var(--line)}.trk-c.ok{border-left:4px solid var(--ok)}.trk-c.warn{border-left:4px solid var(--warn)}.trk-c.no{border-left:4px solid var(--err);opacity:.8}.trk-why{font-size:12px;color:var(--ink-2);margin-top:2px;line-height:1.4}
.trk-min{width:auto;padding:6px;border-radius:50%;cursor:pointer;display:flex;align-items:center}.trk-badge{position:absolute;bottom:-4px;right:-6px;background:var(--orange);color:var(--amber-ink);font-size:10.5px;font-weight:800;border-radius:8px;padding:1px 6px}
.mascot.working .mascot-clock{transform-origin:52px 48px;animation:trk-tick 1s steps(8) infinite}@keyframes trk-tick{to{transform:rotate(360deg)}}
.mascot.thinking{animation:trk-bob 1.6s ease-in-out infinite}@keyframes trk-bob{50%{transform:translateY(-2px)}}
@media(max-width:600px){.trk{width:calc(100vw - 24px);left:12px !important;right:12px !important}}

.trk-bubble{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;color:var(--navy);border-radius:12px;padding:8px 10px;font-size:12.5px;line-height:1.4;margin-bottom:8px;position:relative}.trk-bubble:before{content:"";position:absolute;top:-6px;left:22px;border:6px solid transparent;border-top:0;border-bottom-color:#fff}
.trk-early{display:flex;gap:4px;align-items:center;margin-top:6px;flex-wrap:wrap}.trk-early input{border:0;border-radius:8px;padding:5px 6px;font-size:12px}.trk-link{cursor:pointer;text-decoration:underline dotted;color:var(--orange)}
.trk-day{position:relative;height:18px;background:rgba(255,255,255,.12);border-radius:9px;margin-top:8px;overflow:hidden;font-size:11px}.trk-day i{position:absolute;left:0;top:0;bottom:0;background:var(--sky);opacity:.55;border-radius:9px}.trk-day span{position:relative;display:block;text-align:center;line-height:18px;font-weight:700}

.trk-day.ot i{background:var(--orange);opacity:.7}.trk-switch{margin-top:8px;background:#fff;color:var(--navy);border-radius:12px;padding:10px;border-left:5px solid var(--orange);font-size:13px}

/* MRR */
.mrr-chart{display:flex;align-items:flex-end;gap:3px;height:200px;margin-top:12px;padding-bottom:18px;position:relative}.mrr-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;position:relative;min-width:6px}.mrr-col:hover .mrr-bar,.mrr-col.sel .mrr-bar{filter:brightness(1.12)}.mrr-col.now .mrr-bar{outline:2px solid var(--orange)}
.mrr-bar{display:flex;flex-direction:column-reverse;border-radius:4px 4px 0 0;overflow:hidden;min-height:2px}.mrr-bar .seg{width:100%}.seg.bill{background:var(--navy)}.seg.lease{background:var(--orange)}.seg.plan{background:repeating-linear-gradient(45deg,var(--sky-deep),var(--sky-deep) 3px,#fff 3px,#fff 6px)}
.mrr-lbl{position:absolute;bottom:-18px;left:0;font-size:10px;color:var(--ink-3);white-space:nowrap}

.trk-ic.pip{width:auto;padding:0 8px;background:var(--orange);color:var(--amber-ink);font-weight:800}.trk-ic.pip:hover{background:var(--amber-hover)}.trk-min.pip{background:var(--navy);border-radius:40px;padding:6px 16px 6px 6px;color:#fff;box-shadow:none;position:relative}

.grid.g6{grid-template-columns:repeat(6,1fr)}@media(max-width:1100px){.grid.g6{grid-template-columns:repeat(3,1fr)}}

/* Grenke-kortit */
.gcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-top:8px;box-shadow:0 8px 24px -18px rgba(0,0,0,.25)}
.gcard.ending{border-left:5px solid var(--err)}.gcard.missing_end{border-left:5px solid var(--warn)}.gcard.ended{opacity:.75;border-left:5px solid var(--ink-3)}.gcard.active{border-left:5px solid var(--ok)}
.grow{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}.grow:first-child{margin-top:0;align-items:center}
.gf{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-3)}.gf span{white-space:nowrap}
.gin{border:1px solid var(--line-2);border-radius:10px;padding:7px 9px;font:inherit;font-size:13px;background:#fff;color:var(--ink);width:100%;min-height:34px}.gin:focus{outline:none;border-color:var(--sky-deep);box-shadow:0 0 0 3px rgba(84,185,234,.2)}.gin.miss{border-color:var(--warn);background:var(--amber-soft)}
input[type=date].gin,input[type=month].gin{font-family:inherit;-webkit-appearance:none;appearance:none}input[type=date].gin::-webkit-calendar-picker-indicator{opacity:.6;cursor:pointer}
.gsep{width:1px;height:34px;background:var(--line);margin:0 2px}

tr.fresh td{animation:fresh-in 1.2s ease-out}@keyframes fresh-in{from{background:#E7F4EC}to{background:transparent}}.btn.dis{opacity:.5}

/* Sopimusvaraston lataus: isot luvut */
.upl{margin-top:10px;background:var(--navy);color:#fff;border-radius:16px;padding:16px 18px}.upl.done{background:#fff;color:var(--navy);border:2px solid var(--ok)}
.upl-big{display:flex;align-items:baseline;gap:10px}.upl-n{font-size:56px;font-weight:900;line-height:1;letter-spacing:-.02em}.upl-of{font-size:26px;font-weight:700;opacity:.7}.upl-l{font-size:16px;font-weight:600;opacity:.8;margin-left:6px}
.upl-bar{height:14px;background:rgba(255,255,255,.18);border-radius:7px;overflow:hidden;margin:12px 0}.upl.done .upl-bar{display:none}.upl-bar i{display:block;height:100%;background:var(--orange);border-radius:7px;transition:width .4s}
.upl-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.upl-k{background:rgba(255,255,255,.1);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.upl.done .upl-k{background:#F3F6F9}
.upl-k b{font-size:30px;font-weight:900;line-height:1}.upl-k span{font-size:13px;font-weight:600;opacity:.85}.upl-k.ok b{color:#7BE29B}.upl.done .upl-k.ok b{color:var(--ok)}.upl-k.warn b{color:var(--orange)}.upl.done .upl-k.warn b{color:var(--amber-ink)}.upl-k.err b{color:#FF8E8E}.upl.done .upl-k.err b{color:var(--err)}
.upl-now{margin-top:10px;font-size:15px}.upl-list{margin-top:10px;font-size:14px;line-height:1.6}
@media(max-width:700px){.upl-row{grid-template-columns:repeat(2,1fr)}.upl-n{font-size:44px}}

.t.inbox{table-layout:auto}.t.inbox td.ai-col{min-width:420px;max-width:560px;line-height:1.45}.t.inbox td:first-child{max-width:220px;overflow-wrap:anywhere}
@media(max-width:1100px){.t.inbox td.ai-col{min-width:300px}}

/* Tapaamiset-välilehti */
.mday{font-weight:800;font-size:14px;margin:14px 0 6px;display:flex;gap:8px;align-items:center;color:var(--ink-2)}
.meeting.held{background:#EEF8F1;border-left-color:var(--ok)}.meeting.past.held{opacity:.9}.held-dot{width:10px;height:10px;border-radius:50%;background:var(--ok);display:inline-block;box-shadow:0 0 0 3px #D8F0DF}
tr.billed td{color:var(--ink-3)}tr.hour-edit td{background:#F6F8FB}

.card.rel{cursor:pointer}.card.rel:hover{box-shadow:0 12px 30px -18px rgba(0,0,0,.35)}.rel-c{padding:10px 0;border-top:1px solid var(--line);cursor:pointer}.rel-c:first-of-type{border-top:0}

.card.brief.collapsed{padding:10px 16px}.card.brief.collapsed h2{margin:0}

/* Keskitetty dialogi kiinteällä alapalkilla */
.dialog.dlg-center{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,96vw);max-height:92vh;background:#fff;border-radius:18px;box-shadow:0 30px 80px -30px rgba(0,0,0,.5);z-index:30;display:flex;flex-direction:column;overflow:hidden}
.dialog.dlg-center.wide{width:min(960px,96vw)}
.dlg-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px 10px;border-bottom:1px solid var(--line)}.dlg-head h2{margin:0}
.dlg-body{padding:12px 18px;overflow:auto;flex:1}
.dlg-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid var(--line);background:#F7F8FA;position:sticky;bottom:0}
.lbl{font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:4px}
/* Aikavalitsin */
.tp-row{display:flex;gap:4px;flex-wrap:wrap}.tp{border:1px solid var(--line-2);background:#fff;border-radius:9px;padding:7px 0;min-width:40px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--ink)}.tp:hover{border-color:var(--sky-deep)}.tp.on{background:var(--navy);color:#fff;border-color:var(--navy)}.tp.min{min-width:52px}
/* Minikalenteri */
.mcal{border:1px solid var(--line);border-radius:12px;padding:8px}.mcal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:6px}.mcal-h{font-size:11px;color:var(--ink-3);text-align:center;font-weight:700}
.mcal-d{position:relative;border:0;background:transparent;border-radius:8px;height:36px;font:inherit;font-size:13px;cursor:pointer;color:var(--ink)}.mcal-d:hover{background:#EEF3F9}.mcal-d.we{color:var(--ink-3)}.mcal-d.today{font-weight:800;box-shadow:inset 0 0 0 1px var(--sky-deep)}.mcal-d.sel{background:var(--navy);color:#fff}
.mcal-dots{position:absolute;bottom:3px;left:0;right:0;display:flex;justify-content:center;gap:2px}.mcal-dots i{width:5px;height:5px;border-radius:50%;background:var(--sky-deep);display:inline-block}.mcal-dots i.internal{background:var(--orange)}.mcal-dots i.review{background:var(--ink-3)}.mcal-d.sel .mcal-dots i{background:#fff}
.mcal-day{margin-top:6px;font-size:12.5px;line-height:1.5;background:#F7F8FA;border-radius:8px;padding:6px 8px}

/* Vaaditut kentät */
.f.req>input,.f.req>select,.f.req>textarea{border-color:var(--sky-deep);background:#F3F9FD}.f.req.missing>input,.f.req.missing>select,.f.req.missing>textarea{border-color:var(--err);background:#FFF5F4}.req-star{color:var(--err);font-weight:800}

.bank-edit{border:1px dashed var(--line-2);background:#fff;border-radius:8px;padding:1px 7px;font:inherit;font-size:11.5px;color:var(--ink-2);cursor:pointer;margin-left:4px}.bank-edit:hover{border-color:var(--sky-deep);color:var(--sky-deep)}

.dir-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px;padding:6px 8px;background:#F7F8FA;border-radius:10px}.dir-l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--ink-3);min-width:70px}

.bank-edit.lg{font-size:13px;padding:5px 10px;border-radius:9px;border-style:solid;border-color:var(--line-2);margin-left:0;background:#F7F8FA}.bank-edit.lg:hover{background:#EEF3F9}

.bank-opt{background:#F7F8FA;border-radius:12px;padding:10px 12px}

/* Tuntipankin nelikko (v0.32.0): ostettu · aiemmin · kirjattu · jäljellä */
.bank-quad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.bank-quad .bq{background:#F7F8FA;border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-align:left}
.bank-quad .bq .v{font-size:26px;font-weight:800;line-height:1.05;letter-spacing:-.5px}
.bank-quad .bq .v .u{font-size:14px;font-weight:700;opacity:.55}
.bank-quad .bq .l{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-2);margin-top:3px}
.bank-quad .bq .e{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.bank-quad .bq.ok{background:#F1F8F2;border-color:#CDE6D2}
.bank-quad .bq.err{background:#FDF2F2;border-color:#F0CFCF}
.bank-quad.sm .bq{padding:7px 9px}.bank-quad.sm .bq .v{font-size:19px}
@media (max-width:640px){.bank-quad{grid-template-columns:repeat(2,1fr)}}
.bank-edit.dim{opacity:.55;text-decoration:line-through}

/* Yleiskuvan Kanban (v0.33.0): Tarjous → Sopiminen → Aktiivinen → Suljettu, raahaus vaihtaa tilan */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}
.kcol{background:#F7F8FA;border:1px solid var(--line);border-radius:14px;padding:8px;min-height:120px;transition:background .12s,border-color .12s}
.kcol.over{background:#EEF3F9;border-color:var(--sky-deep)}.kcol.off{opacity:.5;min-height:48px}
.khead{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 8px;font-size:12.5px}
.kcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.kcard:hover{border-color:var(--sky-deep)}.kcard:active{cursor:grabbing}
.kmeta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12px;color:var(--ink-2)}
@media (max-width:900px){.kanban{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.kanban{grid-template-columns:1fr}}
/* Tyyppi otsikosta (v0.33.0): valikko chipin näköisenä */
.chip-sel{border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:700;border:1px solid var(--line-2);background:#fff;cursor:pointer}
.chip-sel.navy{background:#E6EEF2;color:#003342}.chip-sel.sky{background:#E8F1FB;color:#1F4E79}.chip-sel.warn{background:var(--amber-soft);color:var(--amber-ink)}
/* KPI-porautuminen (v0.34.0) */
.card.stat.kpi{cursor:pointer;transition:box-shadow .12s,transform .12s}.card.stat.kpi:hover{box-shadow:0 2px 10px rgba(0,51,66,.12);transform:translateY(-1px)}
.card.stat.kpi .v::after{content:" ›";font-size:14px;opacity:.35;font-weight:500}
.card.kpi-card{cursor:pointer}.card.kpi-card:hover{box-shadow:0 2px 10px rgba(0,51,66,.12)}
/* MRR-vesiputous (v0.35.0) */
.wf-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}
.wf-kpi{background:#F7F8FA;border:1px solid var(--line);border-radius:12px;padding:8px 12px}.wf-kpi .v{font-size:20px;font-weight:800;letter-spacing:-.3px}.wf-kpi .l{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-2);margin-top:2px}
.wf-months{margin-top:6px;padding:10px 12px;background:#F7F8FA;border-radius:12px}
@media (max-width:760px){.wf-kpis{grid-template-columns:repeat(2,1fr)}}
.wf-range{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;padding:8px 10px;background:#F7F8FA;border-radius:12px}
.wf-range input[type=month]{padding:4px 8px;border:1px solid var(--line-2);border-radius:8px;font:inherit;font-size:13px}
.wf-kpi.click{cursor:pointer}.wf-kpi.click:hover{border-color:var(--sky-deep);box-shadow:0 1px 6px rgba(0,51,66,.1)}
.wf-group{border-top:1px solid var(--line);padding-bottom:6px}.wf-group:first-child{border-top:0}
.wf-edit{background:#F7F8FA;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:4px 0 8px}.wf-edit .f{font-size:11.5px}.wf-edit input,.wf-edit select{font-size:13px;padding:4px 6px}
/* Päättymismerkki (v0.35.2) */
.endtag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.2px;color:#B23A2E;background:#FDF2F2;border:1px solid #F0CFCF;border-radius:999px;padding:0 7px;line-height:16px;vertical-align:middle;white-space:nowrap}
.endtag.soft{color:#8A5A00;background:#FFF6E0;border-color:#F2D9A0}
.wf-sw{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:3px}
.wf-hatch{background:repeating-linear-gradient(45deg,#003342 0 2px,#fff 2px 5px);border:1px solid #003342}
/* Segmentoitu valinta suunnitellulle jaksolle: Toteutui | Ei toteudu (v0.35.8) */
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:9px;overflow:hidden;vertical-align:middle;margin-right:6px;background:#fff}
.seg button{font:inherit;font-size:11.5px;font-weight:600;padding:3px 9px;border:0;background:transparent;color:var(--ink-2);cursor:pointer;line-height:1.4}
.seg button+button{border-left:1px solid var(--line-2)}
.seg .seg-ok:hover{background:#EAF5EC;color:#1E7F4F}.seg .seg-no:hover{background:#FDF2F2;color:#B23A2E}
.seg button:disabled{opacity:.5;cursor:default}
.chip.err{background:#FDF2F2;color:#B23A2E;border-color:#F0CFCF}
/* Tuntipankin tila tuntikirjauksessa (v0.37.0) */
.bankbar{border-radius:12px;padding:10px 14px;margin:10px 0 6px;font-size:13px;line-height:1.4;border:1px solid var(--line)}
.bankbar .big{font-size:22px;font-weight:800;letter-spacing:-.3px;line-height:1.1;margin-bottom:3px}
.bankbar.ok{background:#EAF5EC;border-color:#CDE6D2;color:#14532D}.bankbar.ok .big{color:#1E7F4F}
.bankbar.err{background:#FDF2F2;border-color:#F0CFCF;color:#7A1F17}.bankbar.err .big{color:#B23A2E}
.bankbar.warn{background:#FFF6E0;border-color:#F2D9A0;color:#5A3D00}.bankbar.warn .big{color:#8A5A00}
.bankbar.mut{background:#F7F8FA;color:var(--ink-2)}.bankbar.mut .big{color:var(--ink-2);font-size:16px}
.bankbar.sm .big{font-size:17px}.bankbar.sm{padding:8px 12px;font-size:12.5px}
/* Aamupalaveri (v0.37.0) */
.su-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}
.su-card{padding:14px 16px}.su-card.missing{border-color:#F0CFCF;background:#FFF8F8}
.su-h{font-size:26px;font-weight:800;letter-spacing:-.5px}
.su-row{font-size:12.5px;padding:4px 0;border-top:1px solid var(--line);display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.su-add{background:#F7F8FA;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-top:8px}.su-add .f{font-size:11.5px}.su-add input,.su-add select{font-size:13px;padding:4px 6px}
@media (max-width:900px){.su-grid{grid-template-columns:1fr}}
/* Ylävalikon ryhmät (v0.37.3) */
.navmenu{position:relative;display:inline-block}
.navmenu>button{display:inline-flex;align-items:center;gap:6px}
.navmenu-caret{font-size:10px;opacity:.6;margin-left:-2px}.navmenu.open .navmenu-caret{opacity:1}
.navmenu-sub{font-weight:500;color:#fff;opacity:.85}
.navmenu-list{position:absolute;top:calc(100% + 4px);left:0;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,51,66,.18);padding:6px;z-index:60;display:flex;flex-direction:column;gap:2px}
.navmenu-list button{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;color:var(--navy);padding:8px 10px;border-radius:8px;font-weight:600}
.navmenu-list button:hover,.navmenu-list button:focus{background:#EEF3F9;outline:none}.navmenu-list button.on{background:var(--amber-soft);color:var(--amber-ink);box-shadow:none}
.navmenu-list button small{display:block;font-weight:400;font-size:11.5px;color:var(--ink-2);margin-top:1px}
.su-act{margin-left:auto;white-space:nowrap;opacity:.35;transition:opacity .12s}.su-row:hover .su-act{opacity:1}
.rs-box{background:#FFF6E0;border:1px solid #F2D9A0;border-radius:12px;padding:10px 12px;margin:8px 0 4px}.rs-box .f{font-size:11.5px}.rs-box input,.rs-box select{font-size:13px;padding:4px 6px}
/* Määrittelyt: esikatselu rivillä, kohtavalitsin ja hierarkiapuu (v0.40.0) */
.spec-preview{color:var(--ink-2);cursor:pointer;line-height:1.5;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.spec-preview:hover{color:var(--ink)}
.kpick-list{border:1px solid var(--line-2);border-radius:8px;margin-top:6px;max-height:260px;overflow:auto;background:#fff}
.kpick-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-bottom:1px solid var(--line);font-size:13px;font-weight:400;color:var(--ink);cursor:pointer}.kpick-row:hover{background:var(--paper)}.kpick-row.on{background:#E7F3FB}
.kpick-row .txt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpick-row .ref{font-weight:800;min-width:52px}.kpick-row input{width:auto;min-width:0}
.kpick-new{margin-top:6px;padding:8px;border:1px dashed var(--orange-2);border-radius:8px;background:var(--amber-soft)}
.tree{font-size:13.5px}.tree-head{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;flex-wrap:wrap}
.tree-node.theme>.tree-head{cursor:pointer;background:var(--paper);margin-top:8px;border:1px solid var(--line)}.tree-node.theme>.tree-head:hover{background:#ECEEF3}
.tree-kids{margin-left:16px;padding-left:14px;border-left:2px solid var(--line-2)}
.tree-node.item>.tree-head{padding:4px 8px;margin-top:2px}.tree-node.item .txt{flex:1;min-width:140px}.tree .ref{font-weight:800;white-space:nowrap}
.spec-row{padding:6px 10px;margin:4px 0;border:1px solid var(--line);border-left:4px solid var(--line-2);border-radius:8px;background:#fff}.spec-row.approved{border-left-color:var(--ok)}.spec-row.review{border-left-color:var(--warn)}
.spec-row .ttl{cursor:pointer;font-weight:700}.spec-row .ttl:hover{text-decoration:underline}.spec-row .spec-preview{margin-top:3px}
.tree-more{color:var(--sky-deep);cursor:pointer;font-size:12.5px;padding:4px 8px;font-weight:600}.tree-more:hover{text-decoration:underline}.tree-empty{padding:4px 8px;font-size:12.5px}
.tree .caret{width:12px;color:var(--ink-3);font-size:12px}
.seg.view{border-radius:10px;margin-right:0}.seg.view button{font-size:13px;font-weight:700;padding:6px 14px;color:var(--ink-2)}.seg.view button.on{background:var(--navy);color:#fff}.seg.view button:not(.on):hover{background:var(--paper)}
/* Rekisterin hierarkia: teemaryhmärivit ja projektirivi (v0.41.0) */
.t tr.grp td{background:var(--paper);border-top:1px solid var(--line-2);padding:7px 10px;cursor:pointer;font-size:13.5px}.t tr.grp:hover td{background:#ECEEF3}
.t tr.grp.proj td{background:var(--navy);color:#fff;cursor:default;border-radius:8px 8px 0 0}.t tr.grp.proj td .muted{color:rgba(255,255,255,.75)}
.t tr.grp .caret{width:12px;color:var(--ink-3);font-size:12px}.t tr.grp .acts{opacity:.4}.t tr.grp:hover .acts{opacity:1}
.tree .tree-head a.ref{color:var(--ink);text-decoration:underline dotted}
/* Rekisterin hierarkia: teemaryhmärivit ja projektirivi (v0.41.0) */
.t tr.grp td{background:var(--paper);border-top:1px solid var(--line-2);padding:7px 10px;cursor:pointer;font-size:13.5px}.t tr.grp:hover td{background:#ECEEF3}
.t tr.grp.proj td{background:var(--navy);color:#fff;cursor:default}.t tr.grp.proj:hover td{background:var(--navy)}.t tr.grp.proj td .muted{color:rgba(255,255,255,.75)}
.t tr.grp .caret{width:12px;color:var(--ink-3);font-size:12px}.t tr.grp .acts{opacity:.4}.t tr.grp:hover .acts{opacity:1}
.tree .tree-head a.ref{color:var(--ink);text-decoration:underline dotted}
/* Linkitys teemaan puusta: massasiirtopalkki, valitut rivit, raahauskohde, rivin teemavalikko (v0.42.0) */
.assign-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:8px 12px;border:1px solid var(--orange-2);background:var(--amber-soft);border-radius:10px;font-size:13px;color:var(--amber-ink)}
.tree-node.item.picked>.tree-head{background:#E7F3FB;border-radius:6px}.tree-node.item[draggable=true]>.tree-head{cursor:grab}
.tree-node.theme.drop>.tree-head{outline:2px dashed var(--sky-deep);background:#E7F3FB}
.tree .theme-pick{font-size:11.5px;padding:1px 4px;max-width:150px;margin-left:auto;opacity:.75}.tree .theme-pick:hover,.tree .theme-pick:focus{opacity:1}
.tree-node.item input[type=checkbox]{margin:0 2px 0 0}
/* Hierarkian muokkaus: nimeä/poista-napit, raahauskahva, pudotus kohdan päälle (v0.43.0) */
.tree .grip{color:var(--ink-3);font-size:12px;letter-spacing:-2px;cursor:grab;user-select:none;opacity:.55}.tree .grip:hover{opacity:1}
.tree .acts{opacity:.4;transition:opacity .12s}.tree .tree-head:hover .acts{opacity:1}
.ibtn{border:0;background:transparent;cursor:pointer;font-size:12px;line-height:1;padding:2px 5px;border-radius:5px;color:var(--ink-3)}.ibtn:hover{background:#ECEEF3;color:var(--ink)}.ibtn.del:hover{background:#F9E9E7;color:var(--err)}.ibtn:disabled{opacity:.4;cursor:default}
.tree-node.item.drop-row>.tree-head{box-shadow:inset 0 2px 0 var(--sky-deep);background:#F3F8FD}
.tree-node.theme[draggable=true]>.tree-head{cursor:grab}.tree-node.theme[draggable=true]>.tree-head:active{cursor:grabbing}
/* Oletusteemat (v0.44.0): hallintasivu, valitsin projektin luonnissa ja hierarkiassa */
.card.tt{padding:12px 16px}.card.tt.off{opacity:.7}.card.tt.drop{outline:2px dashed var(--sky-deep)}.card.tt .grip{cursor:grab;color:var(--ink-3);letter-spacing:-2px}
.tt-list{margin:6px 0 0;padding-left:20px;font-size:13px;line-height:1.7}.lbl{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.tpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;margin-top:6px}
.tpick-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line-2);border-radius:8px;background:#fff;cursor:pointer;font-weight:400}.tpick-row.on{background:#E7F3FB;border-color:var(--sky-deep)}.tpick-row.has{border-style:dashed}.tpick-row input{margin:0}.tpick-row b{font-size:13px}
.tpl-panel{margin-top:10px;padding:10px 12px;border:1px solid var(--orange-2);background:var(--amber-soft);border-radius:10px}
/* Rakenteen valinta: vakiomuoto → teemat → osiot (v0.45.0) */
.spick{margin-top:6px}.spick-tree{display:grid;gap:4px;margin-top:8px}.spick-theme{border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;background:#fff}.spick-theme.on{border-color:var(--sky-deep);background:#F7FBFE}.spick-theme.has{border-style:dashed}
.spick-secs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 12px;margin:6px 0 2px 28px}.spick-sec{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:400;padding:2px 4px;border-radius:5px;cursor:pointer;color:var(--ink-2)}.spick-sec.on{color:var(--ink)}.spick-sec:hover{background:var(--paper)}.spick-sec input{margin:0}
.spick-sec.opt span{color:var(--ink-3)}.spick-sec.opt.on span{color:var(--ink)}
/* Hyväksynnät (v0.46.0): merkinnät, vahvistusdialogi, rivit */
.sign{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-3);background:#fff}
.sign.ok{color:var(--ok);border-color:#BFE3CC;background:#EEF8F1}.sign.me{color:var(--amber-ink);border-color:var(--orange-2);background:var(--amber-soft)}.sign .ibtn{padding:0 3px;font-size:11px}
.appr-row{padding:8px 12px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:8px;background:#fff}.appr-row.done{border-left-color:var(--ok)}.appr-row .ttl{cursor:pointer}.appr-row .ttl:hover{text-decoration:underline}
.confirm-box{margin-top:12px;padding:14px 16px;border:1px solid var(--orange-2);border-radius:12px;background:var(--amber-soft)}
.spec-quote{margin-top:10px;padding:8px 12px;border-left:3px solid var(--line-2);background:#fff;border-radius:0 8px 8px 0;white-space:pre-wrap;line-height:1.5;font-size:13.5px;max-height:260px;overflow:auto}
.commit{margin-top:10px;padding:10px 12px;border-radius:8px;background:#fff;border:1px solid var(--orange-2);font-weight:600;color:var(--amber-ink);line-height:1.5}
.approvals h3{font-size:14px;color:var(--ink-2)}
/* Tehtävät hierarkiassa (v0.47): pikatehtävä, tehtävärivit, liitteet */
.qtask{margin:6px 0 4px;padding:8px 10px;border:1px dashed var(--orange-2);border-radius:8px;background:var(--amber-soft)}.qtask input,.qtask select{border:1px solid var(--line-2);border-radius:8px;padding:5px 8px;background:#fff;font:inherit;font-size:13px}
.tasks{display:grid;gap:4px;margin:4px 0}.task{padding:5px 8px;border:1px solid var(--line);border-left:3px solid var(--sky);border-radius:8px;background:#fff;font-size:13px}.task.done{opacity:.65;border-left-color:var(--ok)}.task.done .ttl{text-decoration:line-through;color:var(--ink-3)}.task.late{border-left-color:var(--err)}
.spec-line{padding:4px 6px;margin:3px 0;border:1px solid var(--line);border-radius:8px;background:#fff}
/* Kohtalomake tyypin mukaan (v0.48.0) */
.kind-seg{display:flex;gap:4px;margin-top:10px;flex-wrap:wrap}.kind-seg button{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer}.kind-seg button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.kind-seg select{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:5px 10px;font:inherit;font-size:12.5px;color:var(--ink-3)}
.f.hl>span:first-child,.f.hl{color:var(--ink)}.f.hl input,.f.hl select,.f.hl textarea{border-color:var(--orange-2);background:#FFFBF3}
.estbox{padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--paper)}.estbox.hl{border-color:var(--orange-2);background:var(--amber-soft)}.estbox input{border:1px solid var(--line-2);border-radius:8px;padding:6px 8px;background:#fff;font:inherit}
/* Kanbanit ja myöhässä-lista (v0.48.0) */
.ikanban{overflow-x:auto}.ik-head,.ik-lane{display:grid;grid-template-columns:180px repeat(6,minmax(150px,1fr));gap:6px;align-items:start}.ik-head{position:sticky;top:0;background:var(--paper);padding:4px 0;font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.ik-col-h{padding:4px 6px}.ik-col-h.late{color:var(--err)}.ik-lane{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.ik-lane-h{display:flex;align-items:center;gap:6px;padding:6px;cursor:pointer;font-size:13px;flex-wrap:wrap}.ik-lane-h .caret{width:10px;font-size:11px;color:var(--ink-3)}
.ik-col{min-height:44px;padding:4px;border-radius:8px;background:#F3F4F8;display:grid;gap:4px;align-content:start}.ik-col.over{outline:2px dashed var(--sky-deep);background:#E7F3FB}.ik-col.ro{background:repeating-linear-gradient(45deg,#F3F4F8,#F3F4F8 6px,#EEF0F5 6px,#EEF0F5 12px)}
.ik-card{background:#fff;border:1px solid var(--line-2);border-left:3px solid var(--sky);border-radius:8px;padding:6px 8px;font-size:12.5px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.04)}.ik-card:active{cursor:grabbing}.ik-card.tCR{border-left-color:var(--warn)}.ik-card.tK{border-left-color:var(--navy)}.ik-card.tS{border-left-color:var(--ok)}.ik-card.locked{border-left-color:var(--ok)}.ik-card.late{border-left-color:var(--err)}.ik-card.done{opacity:.6}
.ik-card .ik-txt{margin-top:2px;line-height:1.35}.ik-card .ref{font-weight:800;font-size:11.5px}.ik-col-closed{padding:6px}
.late-list{border-left:4px solid var(--err);margin-top:10px}.late-list h2{font-size:15px}
.tcomments{display:grid;gap:4px;font-size:12.5px}.tc{padding:4px 8px;border-left:2px solid var(--line-2);background:var(--paper);border-radius:0 6px 6px 0}.tc.reschedule{border-left-color:var(--warn)}.tc.cr{border-left-color:var(--err)}
.chip.err{background:#F9E9E7;color:var(--err)}
/* Projektin välilehdet valikoiksi (v0.49.0) */
.tabgroups{align-items:flex-end}.tabmenu>button{display:inline-flex;align-items:center;gap:6px;border-bottom:2px solid transparent;padding:9px 14px;color:var(--ink-3);font-weight:600;background:transparent;border-top:0;border-left:0;border-right:0;cursor:pointer}
.tabmenu>button.on,.tabmenu.active>button{color:var(--navy);border-bottom-color:var(--sky-deep)}.tabmenu .navmenu-sub{color:var(--ink-2);opacity:1;font-weight:500}.tabmenu.active .navmenu-sub{color:var(--navy)}
.tabmenu .navmenu-list{min-width:240px}.tabmenu .navmenu-list button{flex-direction:row;justify-content:space-between;border-bottom:0;padding:8px 10px}.tabmenu .navmenu-list button .n{margin-left:8px}
.tabs .n.warn{background:var(--amber-soft);color:var(--amber-ink)}
.step-card{border-left:4px solid var(--navy)}
/* Projektisivun yläosa (v0.49.2): navy-nauha, keltainen koodi ja ensisijainen toiminto */
.phead{background:var(--navy);color:#fff;border-radius:16px;padding:12px 18px 14px;margin-top:10px;box-shadow:0 14px 34px -18px rgba(0,51,66,.55)}
.phead-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.phead .btn.ghost{color:#fff;border-color:rgba(255,255,255,.3);background:transparent}.phead .btn.ghost:hover{background:rgba(255,255,255,.12)}
.phead-main{display:flex;align-items:center;gap:14px;margin-top:12px;flex-wrap:wrap}
.phead-code{background:var(--orange);color:var(--navy);font-weight:900;letter-spacing:.05em;border-radius:12px;padding:8px 12px;font-size:16px;line-height:1;flex-shrink:0}
.phead h1{margin:0;color:#fff;font-size:26px;line-height:1.15;letter-spacing:-.01em}.phead-name{font-size:15px;font-weight:600;color:rgba(255,255,255,.85);margin-top:3px}
.phead-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;margin-top:12px;font-size:13px;color:rgba(255,255,255,.78)}
.phead-sep{width:1px;height:16px;background:rgba(255,255,255,.25)}
.phead select.inline{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:3px 10px;font-weight:700;font-size:12.5px}.phead select.inline option{color:var(--ink);background:#fff}
.phead .chip{background:rgba(255,255,255,.14);color:#fff}.phead .chip.warn{background:var(--orange);color:var(--navy)}
.phead .muted{color:rgba(255,255,255,.6)}.phead .inline-edit:hover{border-bottom-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08)}.phead .inline-edit input,.phead .inline-edit textarea{color:var(--ink)}
.phead-more .navmenu-list{right:0;left:auto;min-width:240px}
.tabgroups{margin-top:14px}
/* Seinä (v0.50.0): virta */
.wall-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:12px}.wall-bar input{border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px}
.wall-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px;margin-top:8px;padding:10px 12px;border:1px solid var(--orange-2);background:var(--amber-soft);border-radius:12px}
.wall-upcoming{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 2px;padding:8px 12px;border-radius:12px;background:#fff;border:1px dashed var(--line-2)}.wall-next{font-size:12.5px;color:var(--ink-2);padding:2px 8px;border-radius:999px;background:var(--paper)}.wall-next.today{background:var(--amber-soft);color:var(--amber-ink)}.wall-next.click{cursor:pointer}
.wall-feed{margin-top:8px}.wall-day{margin-top:14px}.wall-day-h{display:flex;gap:8px;align-items:baseline;font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:0 4px 6px;border-bottom:1px solid var(--line)}
.wall-ev{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:start;padding:10px 12px;margin-top:6px;background:#fff;border:1px solid var(--line);border-radius:12px;position:relative}.wall-ev.click{cursor:pointer}.wall-ev.click:hover{border-color:var(--sky-deep)}
.wall-ev.w3{border-left:4px solid var(--ok);background:#FBFEFC}.wall-ev.w2{border-left:4px solid var(--sky)}.wall-ev.c-deletion{border-left:4px solid var(--err)}.wall-ev.c-change.w3{border-left-color:var(--warn)}
.wall-av{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;letter-spacing:.02em;flex-shrink:0}.wall-av.cust{background:var(--orange);color:var(--navy)}
.wall-line{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13.5px;line-height:1.4}.wall-verb{color:var(--ink-2)}.wall-ent{color:var(--ink-2)}.wall-sum{margin-top:3px;color:var(--ink);font-size:13.5px;line-height:1.5;white-space:pre-wrap}
.wall-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--ink-3);font-size:12px;white-space:nowrap}.wall-ico{font-size:15px}
/* Kirjoitusalueet (v0.50.1): pyöreät kulmat, kevyt katkoviiva levossa, pehmeä korostus fokuksessa */
textarea{width:100%;box-sizing:border-box;border:1.5px dashed var(--line-2);border-radius:14px;padding:12px 14px;background:linear-gradient(180deg,#FBFBFD,#FFFFFF);font-size:14px;line-height:1.55;color:var(--ink);resize:vertical;min-height:96px;transition:border-color .15s,box-shadow .15s,background .15s}
textarea:hover{border-color:var(--sky-deep);background:#fff}
textarea:focus{outline:none;border-style:solid;border-color:var(--sky-deep);box-shadow:0 0 0 4px rgba(46,107,240,.14);background:#fff}
textarea::placeholder{color:var(--ink-3);font-style:italic;font-weight:400}
.f textarea{border:1.5px dashed var(--line-2);border-radius:12px;padding:10px 12px;min-height:80px}.f textarea:focus{border-style:solid}
.f.hl textarea{border-color:var(--orange-2);background:#FFFBF3}.f.hl textarea:focus{border-color:var(--orange-2);box-shadow:0 0 0 4px rgba(255,201,97,.35)}
.f.req>textarea{border-style:dashed}.f.req.missing>textarea{border-color:var(--err);border-style:dashed}
.notes-ta.internal:hover,.notes-ta.internal:focus{border-color:var(--navy)}.notes-ta.internal:focus{box-shadow:0 0 0 4px rgba(0,51,66,.12)}
.notes-ta.shared:hover,.notes-ta.shared:focus{border-color:var(--orange)}.notes-ta.shared:focus{box-shadow:0 0 0 4px rgba(255,201,97,.38);background:#FFFDF7}
.notes-ta.customer:hover,.notes-ta.customer:focus{border-color:var(--sky-deep)}
.spec-quote,.confirm-box{border-radius:14px}
/* Yläpalkki (v0.50.2): sanat eivät rivity; nimi piiloon kapealla; haku joustaa */
.topbar{gap:12px;flex-wrap:nowrap}.topnav button,.navmenu>button,.topbar .btn{white-space:nowrap}.topnav{flex-wrap:nowrap}
.topbar .search{flex:1 1 160px;min-width:120px;max-width:420px}.topbar .search input{width:100%}
.topbar .right{gap:8px;white-space:nowrap}
@media (max-width:1500px){.topbar-name{display:none}.topbar .search input{padding-right:26px}}
@media (max-width:1280px){.topnav button,.navmenu>button{padding:8px 9px;font-size:13px}.topbar{gap:8px;padding:0 14px}.brand small{display:none}}
@media (max-width:1100px){.topbar .search{display:none}}
/* Tuntikirjaaja (v0.50.2): otsikon hallintanapit yhdellä rivillä, kaikki sisältö mahtuu 352 px:iin */
.trk-head{align-items:flex-start}.trk-head>div:first-of-type{min-width:0}.trk-sub{max-width:100%}
.trk-ctrl{display:flex;gap:4px;align-items:center;flex-shrink:0;margin-left:4px}
.trk-ic.pip{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;white-space:nowrap;font-size:12px}.trk-pip-l{display:inline}
@media (max-width:420px){.trk-pip-l{display:none}}
.trk .btn,.trk button{white-space:nowrap}.trk .row{flex-wrap:wrap}
.trk .trk-go{min-width:0}.trk .trk-go b,.trk .trk-go .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.trk .trk-submit{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trk-actions .trk-big{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
/* Roadmap (v0.52.0) */
.rm-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:start}.rm-col{background:#F3F4F8;border-radius:12px;padding:8px;min-height:120px;display:grid;gap:8px;align-content:start}.rm-col.over{outline:2px dashed var(--sky-deep);background:#E7F3FB}
.rm-col-h{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:2px 4px}.rm-col-h .muted{font-weight:600}
.rm-card{background:#fff;border:1px solid var(--line-2);border-left:4px solid var(--line-2);border-radius:10px;padding:10px 12px;font-size:13.5px;cursor:default}.rm-card[draggable=true]{cursor:grab}.rm-card.p1{border-left-color:var(--orange)}.rm-card.p2{border-left-color:var(--sky)}.rm-card.p3{border-left-color:var(--line-2)}
.rm-title{cursor:pointer;line-height:1.35}.rm-title:hover{text-decoration:underline}.rm-prio{font-size:11px;font-weight:800;background:var(--navy);color:#fff;border-radius:6px;padding:1px 6px;flex-shrink:0;margin-top:2px}
.rm-vote{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:2px 10px;font:inherit;font-size:12.5px;cursor:pointer}.rm-vote.on{background:var(--amber-soft);border-color:var(--orange-2);color:var(--amber-ink);font-weight:700}
.rm-desc{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);white-space:pre-wrap;line-height:1.5;color:var(--ink-2);font-size:13px}
@media (max-width:1100px){.rm-board{grid-template-columns:repeat(2,1fr)}}
/* Nimetyt vastuut yläosassa käsinkirjoituksella (v0.53) */
.phead-roles{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}
.prole{cursor:pointer;padding:6px 10px;border-radius:12px;transition:background .12s}.prole:hover{background:rgba(255,255,255,.08)}
.prole-l{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:700}
.prole-n{display:block;font-family:'Caveat','Segoe Script','Bradley Hand','Snell Roundhand','Apple Chancery','Brush Script MT',cursive;font-size:30px;line-height:1.1;margin-top:2px;color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prole.customer .prole-n{color:var(--orange)}.prole.empty .prole-n{color:rgba(255,255,255,.35);font-size:24px}.prole.guess .prole-n{opacity:.85;border-bottom:1px dashed rgba(255,255,255,.35);display:inline-block}
@media (max-width:1100px){.phead-roles{grid-template-columns:repeat(2,1fr)}}
.roles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}.role-slot{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);border-left:4px solid var(--navy)}.role-slot.customer{border-left-color:var(--orange)}
.role-l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.role-n{font-family:'Caveat','Segoe Script','Bradley Hand','Snell Roundhand',cursive;font-size:28px;line-height:1.1;margin:2px 0 6px;display:flex;gap:8px;align-items:center}
/* Osallistujat muistiossa (v0.54) */
.pp{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.pp-group{display:flex;gap:10px;align-items:flex-start;margin-top:8px;font-size:13px}.pp-l{min-width:70px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-top:3px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card.merge-on{outline:2px dashed var(--orange-2);outline-offset:-2px}

/* Palautteet (v0.57.0): hetkikortti portaalissa, lupa-valinta, sitaatti */
.feedback-ask{border-left:4px solid var(--warn);background:linear-gradient(180deg,#FFFBF2 0%,#fff 70%)}.feedback-ask.done{border-left-color:var(--ok);background:#F3FAF5;padding:12px 16px}
.feedback-ask .eyebrow{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-ink);font-weight:700}
.feedback-ask textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:#fff;resize:vertical}
.consent-pick{display:inline-flex;gap:6px;flex-wrap:wrap}.consent-pick button{font:inherit;text-align:left;display:flex;flex-direction:column;gap:1px;padding:7px 12px;border:1px solid var(--line-2);border-radius:10px;background:#fff;cursor:pointer;color:var(--ink-2);min-width:150px}
.consent-pick button b{font-size:13px;color:var(--ink)}.consent-pick button span{font-size:11.5px;color:var(--ink-3)}.consent-pick button.on{border-color:var(--navy);background:var(--navy);color:#fff}.consent-pick button.on b,.consent-pick button.on span{color:#fff}
.appr-row.fb{border-left-color:var(--warn)}.appr-row.fb.answered{border-left-color:var(--ok)}.appr-row.fb.declined,.appr-row.fb.skipped{border-left-color:var(--line-2);opacity:.75}
.fb-quote{margin-top:8px;padding:10px 14px;border-radius:10px;background:#F7F8FA;font-size:14.5px;line-height:1.5;font-style:italic}
.stack{display:flex;flex-direction:column;gap:8px}.appr-row.fb .ttl{cursor:default}.appr-row.fb .ttl:hover{text-decoration:none}

/* Kalenteriin: kohteet (v0.59.0) */
.targets{display:flex;flex-direction:column;gap:8px}.target{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:#fff;cursor:pointer}.target.on{border-color:var(--navy);box-shadow:inset 3px 0 0 var(--navy)}.target.off{opacity:.6;cursor:default}.target>input{margin-top:3px}.target>div{flex:1}

/* Kysymysdialogi (v0.59.6) */
.dialog.ask .ask-body{padding:18px 18px 4px}.dialog.ask h2{font-size:17px}.btn.danger{background:var(--err);color:#fff;border-color:var(--err)}.btn.danger:disabled{opacity:.5}
/* Tuntinäppäimistö skaalautuu näytön korkeuteen (v0.59.6): pieni kannettava ei leikkaa ylä- ja alareunaa */
.pad{max-height:96vh;overflow:auto;padding:clamp(8px,1.5vh,16px) 16px clamp(10px,2vh,22px)}
.pad-v{font-size:clamp(30px,5.5vh,48px);min-height:auto;padding:clamp(2px,.5vh,6px) 0 clamp(4px,1vh,10px)}
.pad-q{padding:clamp(6px,1.2vh,12px) 0;font-size:clamp(14px,1.8vh,17px)}.pad-quick{margin-bottom:clamp(6px,1vh,10px);gap:clamp(5px,.8vh,8px)}
.pad-grid{gap:clamp(5px,.8vh,8px)}.pad-k{height:clamp(40px,7vh,68px);font-size:clamp(20px,3vh,28px)}

/* Lunni ID -valikko avautuu tumman .phead-otsikon sisällä → pakotetaan vaalea teema, muuten tekstit ja napit ovat valkoista valkoisella (v0.59.8) */
.phead .l360-pick,.l360-pick{color:var(--ink);font-size:13.5px;font-weight:400;text-align:left;line-height:1.35;min-height:0}
.l360-pick input{width:100%;box-sizing:border-box;background:#fff;color:var(--ink);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;font:inherit;font-size:13.5px}
.l360-pick input::placeholder{color:var(--ink-3)}.l360-pick .muted{color:var(--ink-3)}.l360-pick .err-msg{color:var(--err)}
.phead .l360-pick .btn.ghost,.l360-pick .btn.ghost{color:var(--navy);border-color:var(--line-2);background:#fff}.l360-pick .btn.ghost:hover{background:#F5F6FA}
.l360-pick .stack>button{width:100%}

/* Synkkamerkit (v0.59.10): G = Google, L = Lunni360 */
.sync-badges{display:inline-flex;gap:3px;align-items:center;margin-left:2px}.sync-b{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-size:11px;font-weight:800;line-height:1;cursor:help;color:#fff}
.sync-b.g{background:#1a73e8}.sync-b.l{background:#0aa3d8}.sync-b.miss{background:var(--err)}
/* Sähköpostit (v0.60.0) */
.mail-compose{border-left:4px solid var(--sky-deep);margin-bottom:14px}
.mail-book{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.mail-book .chip{font-size:12px;padding:4px 10px;border:0}
.mail-addr-box{display:flex;flex-wrap:wrap;align-items:center;gap:5px;border:1px solid var(--line-2);border-radius:8px;padding:5px 7px;background:#fff;cursor:text;min-height:36px}
.mail-addr-box input{border:0!important;padding:3px 2px!important;flex:1 1 140px;outline:none;font:inherit;font-weight:400}
.mail-pill{display:inline-flex;align-items:center;gap:4px;background:#E7F3FB;color:var(--sky-deep);border-radius:999px;padding:2px 4px 2px 10px;font-size:12.5px;font-weight:600}
.mail-pill button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:0 4px;border-radius:50%}.mail-pill button:hover{background:rgba(0,0,0,.08)}
.mail-l360{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink-2)}.mail-l360.off{color:var(--ink-3)}.mail-l360 input{margin-top:2px}
.mail-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.mail-row{border-bottom:1px solid var(--line)}
.mail-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:10px 4px;cursor:pointer;font:inherit;color:inherit}
.mail-head:hover{background:#F7F9FC}.mail-subj{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-to{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-meta{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}
.mail-body{padding:4px 4px 14px}.mail-body pre{white-space:pre-wrap;font:13.5px/1.55 inherit;font-family:inherit;margin:0 0 10px;background:#FAFBFD;border:1px solid var(--line);border-radius:8px;padding:10px 12px}
@media (max-width:720px){.mail-head{grid-template-columns:1fr}.mail-meta{flex-wrap:wrap}}
/* ✉ sähköposti mistä tahansa kohteesta (v0.60.0) */
.mail-btn{display:inline-flex;align-items:center;gap:3px;border:1px solid #CFE6F5;background:#F2F9FE;color:var(--sky-deep);border-radius:6px;padding:1px 7px;font-size:12.5px;font-weight:700;line-height:1.5;cursor:pointer;white-space:nowrap;vertical-align:middle}
.mail-btn:hover{background:#E1F1FC;border-color:#A9D3EF}.mail-btn.has{background:var(--sky-deep);border-color:var(--sky-deep);color:#fff}
.mail-btn .n{font-size:10.5px;font-weight:800;background:rgba(255,255,255,.25);border-radius:999px;padding:0 5px;margin-left:1px}
.mail-btn:not(.has) .n{background:#D8ECF9}.mail-btn.lbl{padding:4px 10px;font-size:12.5px}
.phead .mail-btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff}.phead .mail-btn:hover{background:rgba(255,255,255,.24)}
.mail-dlg{width:min(680px,94vw);max-height:92vh;overflow:auto;padding:0}.mail-dlg .mail-compose{margin:0;border-radius:inherit;box-shadow:none}
.mail-ctx{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#F4F6FB;border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:0 0 10px;font-size:13px}
.mail-ctx span{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.mail-done{text-align:center;padding:26px 22px}.mail-done-ic{width:48px;height:48px;border-radius:50%;background:#E7F4EC;color:var(--ok);display:grid;place-items:center;font-size:22px;margin:0 auto 10px}
.phead .mail-btn{text-transform:none;letter-spacing:0}.phead .mail-btn.lbl{padding:5px 12px;font-size:13px;font-weight:600;border-radius:8px}
/* ---- Postilaatikko (v0.61.0, kierros 1): mylunnin phead + KPI-kortit, vanhan Postilaatikon kolmijako (sivupalkki · työkalurivi · lista/Kanban) ---- */
.ibx{max-width:1640px;margin:0 auto;padding:12px 22px 60px}
.ibx-head{background:var(--navy);color:#fff;border-radius:16px;padding:14px 20px;margin-top:10px;box-shadow:0 14px 34px -18px rgba(0,51,66,.55);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ibx-head h1{margin:0;color:#fff;font-size:24px;line-height:1.15;letter-spacing:-.01em}.ibx-head .sub{color:rgba(255,255,255,.7);margin:0;font-size:12.5px}
.ibx-head .seg.view{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25)}.ibx-head .seg.view button{color:#fff}.ibx-head .seg.view button.on{background:#fff;color:var(--navy)}.ibx-head .seg.view button:not(.on):hover{background:rgba(255,255,255,.12)}
.ibx-head .btn.ghost{color:#fff;border-color:rgba(255,255,255,.3);background:transparent}.ibx-head .btn.ghost:hover{background:rgba(255,255,255,.12)}
.ibx-live{font-size:12px;color:#BFF0D0;background:rgba(46,139,87,.28);border:1px solid rgba(191,240,208,.35);border-radius:999px;padding:3px 10px;font-weight:600;white-space:nowrap}.ibx-live.err{color:#FFD3CD;background:rgba(192,57,43,.35);border-color:rgba(255,211,205,.4)}.ibx-live.mut{color:rgba(255,255,255,.75);background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25)}
.ibx-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:14px 0}
.ibx-stats .card.stat{padding:12px 16px 12px;cursor:pointer;transition:box-shadow .12s,transform .12s}.ibx-stats .card.stat:hover{box-shadow:0 2px 10px rgba(0,51,66,.12);transform:translateY(-1px)}
.ibx-stats .stat .s{color:var(--ink-3);font-size:12px;margin-top:2px}.ibx-stats .stat.on{box-shadow:0 0 0 2px var(--sky-deep)}.ibx-stats .stat .l{color:var(--ink-3)}
.ibx-stats .stat .tgt{font-size:11px;color:var(--ink-3);margin-left:6px;font-weight:600}
.stat.ibx-new{border-top-color:var(--sky-deep)}.stat.ibx-new .l{color:var(--sky-deep)}.stat.ibx-unlinked{border-top-color:var(--orange-2)}.stat.ibx-unlinked .l{color:#B8791A}.stat.ibx-unassigned{border-top-color:#E8642B}.stat.ibx-unassigned .l{color:#E8642B}
.stat.ibx-done{border-top-color:var(--ok)}.stat.ibx-done .l{color:var(--ok)}.stat.ibx-ai{border-top-color:#6B4FD8}.stat.ibx-ai .l{color:#6B4FD8}
.ibx-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}
.ibx-side{position:sticky;top:68px;max-height:calc(100vh - 80px);overflow:auto;padding-right:2px}
.ibx-new-btn{width:100%;justify-content:center;padding:10px 12px;font-size:14px;display:inline-flex;align-items:center;gap:8px}
.ibx-sec{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin:16px 0 6px 8px}
.ibx-nav button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:7px 10px;border-radius:9px;cursor:pointer;font:inherit;font-size:13.5px;color:var(--ink-2)}
.ibx-nav button:hover{background:#fff}.ibx-nav button.on{background:#E7F3FB;color:var(--sky-deep);font-weight:700}
.ibx-nav .n{margin-left:auto;background:#EFF1F6;color:var(--ink-2);border-radius:999px;padding:0 7px;font-size:11px;font-weight:700}.ibx-nav button.on .n{background:var(--sky-deep);color:#fff}.ibx-nav .n.hot{background:var(--sky-deep);color:#fff}
.ibx-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.ibx-box{background:#fff;border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:10px;padding:7px 10px;margin:6px 0;cursor:pointer;font-size:12px;color:var(--ink-3)}.ibx-box.on{border-color:var(--sky-deep);box-shadow:0 0 0 1px var(--sky-deep)}.ibx-box b{display:block;font-size:13px;color:var(--ink)}
.ibx-tool{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-bottom:10px}
.ibx-tool .search-in{flex:1;min-width:200px;border:1px solid var(--line-2);border-radius:9px;padding:6px 10px 6px 30px;font:inherit;font-size:13px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237A80A0' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") 10px center no-repeat}
.ibx-pills{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.ibx-pills .lbl{margin:0 4px 0 6px}.ibx-pill{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit}.ibx-pill.on{background:var(--sky-deep);color:#fff;border-color:var(--sky-deep)}.ibx-pill .n{opacity:.7;margin-left:4px;font-weight:500}
table.t.ibx-t td{font-size:13px;padding:9px 10px;vertical-align:middle}.ibx-t tr.click{cursor:pointer}.ibx-t tr.click:hover td{background:#F7F9FC}.ibx-t tr.unread td.subj,.ibx-t tr.unread td.from{font-weight:700}.ibx-t tr.sel td{background:#E7F3FB}
.ibx-t td.subj{max-width:620px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibx-t td.subj .snip{color:var(--ink-3);font-weight:400;margin-left:6px}.ibx-t td.from{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ibx-t td.when{white-space:nowrap;color:var(--ink-3);text-align:right}.ibx-t td.acts{white-space:nowrap;text-align:right;padding:4px 6px}.ibx-t td.acts .btn{opacity:0;padding:3px 5px;transition:opacity .1s}.ibx-t tr:hover td.acts .btn,.ibx-t tr.sel td.acts .btn,.ibx-t tr.picked td.acts .btn{opacity:1}.ibx-t tr.picked td{background:#FFF6E0}.ibx-t input[type=checkbox]{margin:0;vertical-align:middle;cursor:pointer}
.ibx-bulk{background:#FFF6E0;border-color:var(--orange-2)}.ibx-bulk b{margin-right:4px}.ibx-t .dir{display:inline-block;width:14px;color:var(--ink-3);font-size:11px}
.ibx-av{width:24px;height:24px;border-radius:50%;background:var(--ok);color:#fff;display:inline-grid;place-items:center;font-size:10px;font-weight:800;margin-right:6px;vertical-align:middle;flex-shrink:0}.ibx-av.me{background:var(--sky-deep)}
.ibx-kanban{display:grid;grid-template-columns:repeat(8,minmax(150px,1fr));gap:10px;align-items:start;overflow-x:auto}.ibx-kanban .kcard .subj{font-weight:600;font-size:13px;line-height:1.35}.ibx-kanban .kcard .from{color:var(--ink-3);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ibx-detail{position:fixed;top:56px;right:0;bottom:0;width:min(760px,100vw);background:#fff;border-left:1px solid var(--line);box-shadow:-24px 0 60px -30px rgba(0,0,0,.45);z-index:40;display:flex;flex-direction:column}
.ibx-detail-h{padding:12px 18px 8px;border-bottom:1px solid var(--line)}.ibx-detail-h h2{font-size:17px;line-height:1.3;margin:4px 0 2px;overflow-wrap:anywhere}
.ibx-detail-b{flex:1;overflow:auto;padding:12px 18px 18px}.ibx-detail-f{border-top:1px solid var(--line);padding:10px 18px;background:#FAFBFD}
.ibx-mailbody{white-space:pre-wrap;font-size:14px;line-height:1.55;background:#FAFBFD;border:1px solid var(--line);border-radius:12px;padding:14px 16px;max-height:48vh;overflow:auto;overflow-wrap:anywhere}.ibx-mailbody.html{white-space:normal}.ibx-mailbody.html img{max-width:100%}
.ibx-links{display:flex;flex-wrap:wrap;gap:6px}.ibx-link{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:999px;padding:3px 10px;font-size:12px;background:#fff;color:var(--ink-2);cursor:pointer;font-family:inherit;position:relative}
.ibx-link.set{background:#E6EEF2;border-color:#B7CCD6;color:var(--navy);font-weight:600}.ibx-link.derived{border-style:dashed;border-color:#B7CCD6;color:var(--ink-2)}.ibx-link.derived:hover{background:#E6EEF2}.ibx-t td.acc.derived{color:var(--ink-3)}.ibx-link .x{border:0;background:transparent;cursor:pointer;color:var(--ink-3);padding:0 0 0 2px;font-size:13px;line-height:1}.ibx-link .x:hover{color:var(--err)}
.ibx-pick{position:absolute;top:calc(100% + 6px);left:0;z-index:45;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px -20px rgba(0,0,0,.4);width:min(420px,92vw);padding:10px;text-align:left;cursor:default}
.ibx-pick input{width:100%;border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px}.ibx-pick .res{max-height:260px;overflow:auto;margin-top:6px}.ibx-pick .res button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:6px 8px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px}.ibx-pick .res button:hover{background:#F5F6FA}.ibx-pick .res small{display:block;color:var(--ink-3);font-size:11.5px}
.ibx-ev{font-size:12.5px;color:var(--ink-2);padding:5px 0;border-top:1px solid var(--line)}.ibx-ev:first-child{border-top:0}.ibx-ev .at{color:var(--ink-3);font-size:11.5px;margin-left:6px}
.ibx-thread{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-top:6px;font-size:12.5px}.ibx-thread.cur{border-color:var(--sky-deep);box-shadow:0 0 0 1px var(--sky-deep);background:#F7FBFE}.ibx-thread.in{border-left:3px solid var(--sky-deep)}.ibx-thread.out{border-left:3px solid var(--ok)}.ibx-thread .dir{color:var(--ink-3);font-size:11px}
.ibx-earlier{display:block;width:100%;text-align:left;border:1px dashed var(--line);border-radius:10px;padding:8px 10px;margin-top:6px;font-size:12.5px;background:#FAFBFD;color:var(--ink);cursor:pointer;font-family:inherit}.ibx-earlier:hover{border-color:var(--sky-deep)}.ibx-earlier.open{border-style:solid;background:#F3F7FB}.ibx-earlier .dir{display:inline-block;width:14px;color:var(--ink-3)}
.cr-form{border:1px solid var(--line);border-radius:14px;padding:14px 16px 12px;background:#FAFBFD;display:flex;flex-direction:column;gap:10px}.cr-form textarea,.cr-form input,.cr-form select{border-radius:10px}.cr-form .f.hl textarea{border-color:var(--orange);background:#FFFCF7}.cr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.cr-prio,.cr-shareseg{display:inline-flex;border-radius:10px;overflow:hidden;flex-wrap:wrap}.cr-prio button,.cr-shareseg button{border-radius:0}.cr-lunni{border-top:1px dashed var(--line);padding-top:10px}.cr-share{border-top:1px dashed var(--line);padding-top:10px}.cr-share .seg button.on{background:var(--ok);color:#fff}.cr-src a{color:var(--sky-deep)}
.ibx-cr-verdict{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#F7FBFE}.ibx-cr-verdict.yes{border-color:var(--ok);background:#F2FBF5}.ibx-cr-verdict.no{background:#F6F6F8}.ibx-cr-verdict.unsure{border-color:var(--warn);background:#FFF9EC}.ibx-cr-verdict b.v{font-size:13.5px}.ibx-cr-rel{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px;background:#fff;margin:2px 4px 2px 0}.ibx-cr-rel code{font-size:11.5px}
.ibx-tn{display:inline-block;margin-left:6px;background:#EFF1F6;color:var(--ink-2);border-radius:999px;padding:0 7px;font-size:11px;font-weight:700;vertical-align:1px}
.ibx-compose{width:min(1060px,96vw);max-height:92vh;display:flex;flex-direction:column;padding:0}.ibx-compose .dlg-body{padding:0;display:grid;grid-template-columns:minmax(0,1fr) 260px;flex:1;min-height:0}
.ibx-compose-main{padding:14px 18px;overflow:auto}.ibx-compose-ai{border-left:1px solid var(--line);padding:14px;background:#FAFBFD;overflow:auto}
.ibx-compose textarea{min-height:220px;font-size:14px;line-height:1.5}
.ibx-ai-act{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;margin-top:6px;font:inherit;font-size:13px;color:var(--ink-3)}
.ibx-tags input{border:1px solid var(--line-2);border-radius:999px;padding:2px 10px;font:inherit;font-size:12px;width:120px}
.ibx-empty{padding:50px 20px;text-align:center;color:var(--ink-3)}
.ibx-toast{position:fixed;right:22px;bottom:22px;z-index:70;background:var(--navy);color:#fff;border-radius:12px;padding:10px 16px;font-size:13px;box-shadow:0 20px 50px -20px rgba(0,0,0,.5);max-width:min(560px,90vw)}.ibx-toast.err{background:var(--err)}
.ibx-set-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
/* v0.70.0: haku — paletti (⌘K), laajennettu haku ja projektisivun hakukenttä */
.search input{cursor:pointer}
.spal{position:fixed;top:8vh;left:50%;transform:translateX(-50%);width:min(760px,94vw);max-height:80vh;display:flex;flex-direction:column;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 40px 90px -20px rgba(0,0,0,.55);z-index:71;text-align:left;font-weight:400}
.spal-in{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink-3)}.spal-in input{flex:1;border:0;outline:0;font:inherit;font-size:16px;color:var(--ink);background:transparent;min-width:0}.spal kbd{font:inherit;font-size:11px;border:1px solid var(--line-2);border-radius:5px;padding:1px 5px;color:var(--ink-3);background:#F6F7F9;margin:0 1px}
.spal-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line)}.spal-chips .chip.on{background:var(--navy);color:#fff;border-color:var(--navy);cursor:pointer;font-family:inherit}.spal-chips .chip.click{cursor:pointer;font-family:inherit}.spal-chips .chip.click b{margin-left:3px}.spal-facets{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.spal-body{overflow:auto;flex:1;min-height:80px}.spal-empty{padding:12px 14px;font-size:13.5px}.spal-empty>div{margin-bottom:12px}.spal-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);flex-wrap:wrap}
.sr-h{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:10px 14px 3px;font-weight:700}.sr-h .ibx-lnk{text-transform:none;letter-spacing:0;font-weight:600;margin-left:auto}
.sr-row{display:grid;grid-template-columns:minmax(88px,auto) minmax(0,1fr) minmax(0,150px) minmax(0,170px) 68px 16px;align-items:center;gap:10px;padding:7px 14px;cursor:pointer;border-bottom:1px solid #F1F2F7;font-size:13.5px}
.sr-row:nth-child(even){background:#FAFBFD}
.sr-title{display:block;font-weight:600;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-who,.sr-ctx,.sr-when{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-when{color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:900px){.sr-row{grid-template-columns:minmax(0,1fr) 16px}.sr-kind{display:none}.sr-who,.sr-ctx,.sr-when{display:none}}.sr-row.on,.sr-row:hover{background:#F0F5F9}.sr-row .sr-go{color:var(--ink-3);flex:none;opacity:0}.sr-row.on .sr-go,.sr-row:hover .sr-go{opacity:1}
.sr-main{flex:1;min-width:0}.sr-t{display:flex;align-items:baseline;gap:8px;font-weight:600;color:var(--navy);overflow:hidden}.sr-t>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-kind{flex:none;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:#6B4FD8;background:#F3EFFC;border-radius:6px;padding:1px 6px;font-weight:700}
.sr-snip{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.sr-meta{display:flex;gap:10px;font-size:11.5px;color:var(--ink-3);margin-top:2px;flex-wrap:wrap}.sr-meta span+span::before{content:"·";margin-right:10px}
.sr-row mark,.sr-snip mark{background:#FFE9A8;color:inherit;padding:0 1px;border-radius:2px}
.sr-recent{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;text-align:left;padding:5px 0;font:inherit;font-size:13.5px;color:var(--navy);cursor:pointer;border-radius:6px}.sr-recent:hover{background:#F0F5F9}.sr-recent .muted{font-size:12px}
.sr-tips{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 16px;font-size:12.5px}.sr-tips code{background:#F6F7F9;border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-right:8px;font-size:12px;white-space:nowrap}
.psearch{margin-left:auto;display:flex;align-items:flex-end;padding-bottom:6px}.psearch-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:#fff;border-radius:10px;padding:6px 12px;font:inherit;font-size:12.5px;color:var(--ink-3);cursor:pointer;white-space:nowrap}.psearch-btn:hover{color:var(--navy);border-color:var(--navy)}
.ptabs-row{display:flex;align-items:flex-end;gap:10px}.ptabs-row .tabgroups{flex:1;min-width:0}
.spage-head h1{display:flex;align-items:center;gap:8px;margin:0 0 10px}.spage-in{display:flex;gap:8px;align-items:center}.spage-in input{flex:1;border:1px solid var(--line-2);border-radius:12px;padding:10px 14px;font:inherit;font-size:16px;min-width:0}
.spage-body{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;margin-top:14px;align-items:start}.spage-facets{position:sticky;top:70px}.sf{margin-bottom:14px}.sf-t{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-bottom:4px}
.sf-i{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:5px 8px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;border-radius:8px;gap:8px}.sf-i:hover{background:#F0F5F9}.sf-i.on{background:var(--navy);color:#fff}.sf-i b{font-weight:600;color:inherit;opacity:.7}
.spage-list{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.spage-list .sr-row{padding:10px 14px}.spage-list .sr-snip{white-space:normal}
@media(max-width:760px){.spal{top:0;left:0;transform:none;width:100vw;max-height:100vh;height:100vh;border-radius:0}.spage-body{grid-template-columns:1fr}.spage-facets{position:static;display:flex;flex-wrap:wrap;gap:8px}.sf{margin:0}.sf-i{display:inline-flex;width:auto}.psearch-btn span{display:none}.spal-foot>span:first-child{display:none}}
.ibx-stats-foot{display:flex;justify-content:flex-end;margin:-8px 0 10px}.ibx-lnk{border:0;background:transparent;color:var(--ink-3);font-size:12px;cursor:pointer;font-family:inherit;padding:2px 4px;border-radius:6px}.ibx-lnk:hover{color:var(--navy);background:#F0F5F9}
/* v0.69.0: AI-kriteerit listoittain */
.ibx-crit{padding:8px 0 6px;border-top:1px solid var(--line)}.ibx-crit textarea{width:100%;box-sizing:border-box;margin-top:4px;min-height:44px;font-size:13px;line-height:1.4}.ibx-crit.off textarea{opacity:.5}.ibx-crit.off b{color:var(--ink-3)}.ibx-aicard .f textarea{width:100%;box-sizing:border-box;min-height:56px;font-size:13px;line-height:1.4}.ibx-jobp{font-size:12.5px;font-weight:600;color:#6B4FD8}.ibx-set-row:first-child{border-top:0}.ibx-set-row input[type=number]{width:70px;border:1px solid var(--line-2);border-radius:8px;padding:4px 8px;font:inherit}
@media(max-width:1200px){.ibx-stats{grid-template-columns:repeat(3,1fr)}.ibx-kanban{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.ibx-body{grid-template-columns:1fr}.ibx-side{position:static;max-height:none}.ibx-kanban{grid-template-columns:repeat(2,1fr)}.ibx-compose .dlg-body{grid-template-columns:1fr}.ibx-compose-ai{display:none}.ibx-t td.subj{max-width:320px}}
/* v0.62.0: välilehdet, sarakekohtaiset klikkaukset, ponnahdusvalinta, projektisivun sähköpostilista */
.ibx-tabs{display:flex;gap:2px;border-bottom:2px solid var(--line-2);margin:0 0 8px;flex-wrap:wrap}.ibx-tab{border:0;background:transparent;padding:7px 12px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-2px}.ibx-tab:hover{color:var(--navy)}.ibx-tab.on{color:var(--navy);border-bottom-color:var(--sky-deep)}.ibx-tab.cal{margin-left:auto;color:var(--ink-3)}.ibx-tab .n{display:inline-block;margin-left:6px;background:#EFF1F6;color:var(--ink-2);border-radius:999px;padding:0 7px;font-size:11px;font-weight:700}.ibx-tab.on .n{background:var(--sky-deep);color:#fff}
.ibx-t td.click{cursor:pointer}.ibx-t td.click:hover{background:#F7F9FC}.ibx-t tr.sel td.click:hover{background:#D9ECF8}.ibx-t td.click:hover .chip{box-shadow:0 0 0 2px #C9E1F2}
.ibx-cat{display:inline-block;margin-left:6px;background:#E6EEF2;color:var(--navy);border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:700;vertical-align:1px;text-transform:uppercase;letter-spacing:.02em}
/* v0.71.0: Ellan säilö — yksityinen lukko, lähde-merkki, säilötoimintorivi */
.ibx-priv{margin-right:5px;font-size:11px;opacity:.85}
.ibx-src{display:inline-block;margin-left:6px;background:#FFF4E0;color:#7A4B00;border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:600;vertical-align:1px}
.ibx-store{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 10px;padding:6px 10px;border:1px dashed var(--line-2);border-radius:10px;font-size:12px}
.mail-policy .mode{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.mail-policy .mode.on{border-color:var(--navy);background:#F3F7F9}
.mail-policy .mode b{display:block}
.mail-policy .mode small{color:var(--mut)}
.mail-policy .adv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;margin-top:8px}
.mail-policy .adv label{display:flex;align-items:center;gap:6px;font-size:12.5px}
.mail-policy .adv select,.mail-policy .adv input[type=number]{border:1px solid var(--line-2);border-radius:8px;padding:3px 8px;font:inherit;font-size:12.5px;max-width:140px}
.ibx-pj{display:inline-block;margin-left:5px;background:var(--navy);color:#fff;border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:700;vertical-align:1px}
.ibx-pop{position:absolute;z-index:40;top:100%;left:6px;min-width:200px;background:#fff;border:1px solid var(--line-2);border-radius:10px;box-shadow:0 12px 28px rgba(16,32,48,.16);padding:4px;text-align:left;white-space:normal;cursor:default}.ibx-pop-t{font-size:11px;font-weight:700;color:var(--ink-3);padding:5px 8px 3px;text-transform:uppercase;letter-spacing:.03em}.ibx-pop-i{display:block;width:100%;border:0;background:transparent;text-align:left;padding:6px 8px;border-radius:6px;font-size:13px;color:var(--ink);cursor:pointer;font-family:inherit}.ibx-pop-i:hover{background:#F0F5F9}.ibx-pop-i.on{font-weight:700;color:var(--navy)}
.pmail{margin-top:18px}.pmail table.t td{font-size:12.5px;padding:6px 8px;vertical-align:middle}.pmail .subj{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.pmail .subj:hover{color:var(--sky-deep)}.pmail .dir{display:inline-block;width:14px;color:var(--ink-3)}.pmail .more{margin-top:6px}
.ibx-act{display:inline-block;margin-left:6px;background:#FFF1DB;color:#8A5A00;border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:700;vertical-align:1px}
.ibx-stats.ai{grid-template-columns:repeat(6,1fr)}.ibx-stats .stat.ibx-act{border-top:3px solid #6B4FD8}.ibx-stats .stat.ibx-act.on{background:#F3EFFC}@media(max-width:900px){.ibx-stats.ai{grid-template-columns:repeat(3,1fr)}}
.ibx-body.narrow{grid-template-columns:52px minmax(0,1fr)}.ibx-side{position:relative}.ibx-side-toggle{position:absolute;top:-2px;right:0;border:1px solid var(--line-2);background:#fff;border-radius:6px;width:20px;height:20px;line-height:17px;font-size:13px;color:var(--ink-3);cursor:pointer;padding:0;z-index:2}.ibx-side-toggle:hover{color:var(--navy);border-color:var(--navy)}
.ibx-side.narrow{padding-top:22px}.ibx-side.narrow .ibx-side-toggle{right:14px}.ibx-side.narrow .ibx-new-btn{width:40px;height:40px;padding:0;border-radius:10px;margin:0 6px}.ibx-side.narrow .ibx-nav{margin-top:12px}.ibx-side.narrow .ibx-nav button{width:40px;height:38px;justify-content:center;padding:0;margin:2px 6px;position:relative}.ibx-side.narrow .ibx-nav .ibx-dot.hot{position:absolute;top:6px;right:6px;width:7px;height:7px;background:var(--err)}
.ibx-box-av{display:block;border:1px solid var(--line);border-left:3px solid var(--ok);background:#fff;border-radius:10px;width:40px;height:40px;margin:6px;padding:0;cursor:pointer}.ibx-box-av.on{border-color:var(--sky-deep);box-shadow:0 0 0 1px var(--sky-deep)}.ibx-box-av .ibx-av{margin:0}
.ws-del{color:var(--ink-3);font-size:12px}.ws-del:hover{color:var(--err);border-color:var(--err)}

/* ===== mobiili (v0.63.1): puhelinasettelu — yläpalkin navigaatio ☰-valikoksi, sivu ei liiku sivuttain, taulukot vierivät omassa laatikossaan, iOS-turva-alueet ===== */
html{overflow-x:hidden}body{overflow-x:clip}
.topbar{padding-top:env(safe-area-inset-top,0px);height:calc(56px + env(safe-area-inset-top,0px))}
.mob-menu{display:none}
.mob-sheet{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;color:var(--ink);border-radius:18px 18px 0 0;box-shadow:0 -20px 60px -30px rgba(0,0,0,.45);max-height:min(92vh,92dvh);overflow:auto;padding:12px 14px calc(18px + env(safe-area-inset-bottom,0px));font-weight:500}
.mob-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mob-head b{display:block;font-size:14px;color:var(--navy)}.mob-head small{color:var(--ink-3);font-size:12px}.mob-head .btn{margin-left:auto}
.mob-sheet .search{display:block;margin:0 0 4px}.mob-sheet .search input{width:100%;background:#F7F8FC;color:var(--ink);border:1px solid var(--line-2);font-size:16px;padding:9px 30px 9px 12px}.mob-sheet .search input::placeholder{color:var(--ink-3)}.mob-sheet .search-x{top:8px;color:var(--ink-2)}
.mob-sheet .search-res{position:static;width:100%;margin-top:6px;box-shadow:none}
.mob-gl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin:12px 0 6px}
.mob-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mob-item{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:600;font-size:13.5px;text-align:left;cursor:pointer;line-height:1.25}
.mob-item svg{flex:0 0 auto;opacity:.8}.mob-item.on{background:#E7F3FB;border-color:var(--sky);color:var(--navy)}.mob-item.accent{background:var(--orange);border-color:var(--orange-2);color:var(--amber-ink)}.mob-item.wide{grid-column:1/-1}
@media(max-width:760px){
  .mob-menu{display:inline-flex}.topbar{gap:8px;padding-left:12px;padding-right:12px}.topbar .topnav,.topbar .mob-hide{display:none !important}.topbar .right{gap:6px}.brand{font-size:14px;gap:6px}.brand svg{width:22px;height:22px}
  .wrap{padding:14px 12px 96px}.page-head{flex-wrap:wrap;align-items:flex-start;gap:10px}h1{font-size:22px}h2{font-size:16px}
  .f input,.f select,.f textarea,.search input,.hours-in,.drawer input,.drawer select,.drawer textarea{font-size:16px}   /* iOS Safari zoomaa alle 16 px kenttään — sivu "lähtee liikkeelle" */
  .btn{min-height:38px}.btn.sm{min-height:32px}.chip-sel{padding:4px 10px;font-size:12.5px}
  table.t{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.t th{background:transparent}.t th,.t td{padding:8px 8px}
  .drawer{padding:16px 14px calc(16px + env(safe-area-inset-bottom,0px));max-height:min(92vh,92dvh)}.pad{padding-bottom:calc(22px + env(safe-area-inset-bottom,0px))}
  .trk{bottom:calc(12px + env(safe-area-inset-bottom,0px)) !important;top:auto !important}.trk.trk-min{width:auto;left:auto !important;right:12px !important}
  .stat .v{font-size:22px}.kind-row .lbl{width:110px;flex-basis:110px}.kind-row .val{width:auto}
  .sticky-bar{top:calc(56px + env(safe-area-inset-top,0px))}
  .trk{z-index:24}   /* kirjaajan pip jää dialogien ja valikon taustan (25) alle */
  /* projektin otsake: roolit kahteen kapeaan sarakkeeseen, nimet pienemmällä */
  .phead{padding:12px 14px 12px}.phead h1{font-size:22px}.phead-roles{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.prole{padding:4px 6px}.prole-l{font-size:10px}.prole-n{font-size:22px}.prole.empty .prole-n{font-size:18px}
  /* postilaatikko: yksi sarake, mittarit kahteen, sivupalkki chip-riviksi, postilaatikot piiloon (Omat/Ryhmä/Kaikki riittää) */
  .ibx-body,.ibx-body.narrow{grid-template-columns:minmax(0,1fr)}.ibx-head{padding:12px 14px}.ibx-stats,.ibx-stats.ai{grid-template-columns:repeat(2,1fr);gap:8px}.ibx-kanban{grid-template-columns:1fr}
  .ibx-side{position:static;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ibx-side-toggle{display:none}.ibx-side .ibx-new-btn{width:auto;padding:8px 14px;margin:0}
  .ibx-side .ibx-sec{flex:0 0 100%;margin:6px 0 0 2px}.ibx-side .ibx-nav{display:flex;flex-wrap:wrap;gap:6px}.ibx-side .ibx-nav button{width:auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 10px;font-size:12.5px;gap:6px;min-height:32px}.ibx-side .ibx-nav .n{margin-left:2px}
  .ibx-side .ibx-box,.ibx-side .ibx-box-av,.ibx-side .ibx-sec:has(+ .ibx-box),.ibx-side .ibx-sec:has(+ .ibx-box-av){display:none}
  .ibx-t td.subj{max-width:220px}
  .g2,.g3,.g4,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}   /* minmax(0,…): pitkä nappi tai select ei levennä saraketta yli näytön */
}
@media(max-width:600px){.g2{grid-template-columns:minmax(0,1fr)}.g6,.grid.g6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.g3,.g4,.g5{grid-template-columns:1fr 1fr}.mob-grid{gap:5px}.mob-item{font-size:13px;padding:8px 8px}}

/* Lunni360-tunnit (v0.64.1): pip-kortin vihje */
.trk-l360{display:block;margin-top:8px;padding:6px 10px;border-radius:9px;background:rgba(255,201,97,.16);color:var(--orange);font-size:12px;font-weight:700;text-decoration:none}.trk-l360:hover{background:rgba(255,201,97,.28)}
/* v0.64.2: kohdistettu tuntirivi */
.t tr.hl td{background:#FFF3CF;transition:background .6s}
.l360-list td{vertical-align:top}.l360-list .desc{max-width:340px;white-space:normal}
@media(max-width:760px){.l360-list .desc{max-width:180px}}

/* v0.66.0: Minnis — siirtymäajan muistutus ja palautuskoodit */
.minnis-banner{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px auto 0;max-width:1400px;padding:8px 14px;border-radius:12px;background:var(--amber-soft);color:var(--amber-ink);font-size:13px}
.minnis-codes{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin:8px 0;padding:10px 12px;border-radius:10px;background:var(--paper,#F5F6F1);font:600 14px ui-monospace,SFMono-Regular,Menlo,monospace}
.minnis-codes .btn{grid-column:span 1;justify-self:start;font-family:inherit}
@media(max-width:760px){.minnis-banner{margin:8px 10px 0;font-size:12.5px}}
@media(max-width:760px){.minnis-grid{grid-template-columns:minmax(0,1fr)}.drawer .minnis-grid input,.drawer .minnis-grid select{max-width:100%}}
.minnis-who{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-weight:600;color:var(--ink)}
.minnis-who .linkb{background:none;border:0;color:var(--sky-deep);font:600 13px inherit;cursor:pointer;padding:4px}
.login .linkb{background:none;border:0;color:var(--sky-deep);font:600 13.5px inherit;cursor:pointer;padding:6px 8px;min-height:36px}
/* v0.73.0 Puhelut: sarakkeet, dialogi, rivit, kellotaulu */
.ibx-t th.calls-h{text-align:center;padding-left:2px;padding-right:2px}.ibx-t th.calls-h.done{color:var(--ok)}.ibx-t th.calls-h.open{color:var(--warn)}
.ibx-t td.calls-c{text-align:center;font-size:12.5px;white-space:nowrap;padding-left:2px;padding-right:2px}.ibx-t td.calls-c.done b{color:var(--ok)}.ibx-t td.calls-c.open b{color:var(--warn)}.ibx-t td.calls-c .muted{font-size:11.5px}
.calls-dlg{width:min(720px,96vw)}.calls .lbl{margin-top:2px}
.call-row{border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:6px 0;background:#fff}.call-row.done{background:#FAFBFD}
.call-ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;flex:0 0 26px;margin-top:2px}.call-ic.open{background:#FBF1DC;color:var(--warn)}.call-ic.done{background:#E7F4EC;color:var(--ok)}
.call-desc{font-size:12.5px;color:var(--ink-2);white-space:pre-wrap;margin-top:3px;max-height:38px;overflow:hidden;cursor:pointer;position:relative}.call-desc.open{max-height:none}
.cform .grid.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:760px){.cform .grid.g2{grid-template-columns:1fr}}
.ctime{display:flex;flex-direction:column;gap:6px}
.cdial{display:inline-flex;flex-direction:column;align-items:center;gap:4px;user-select:none}.cdial svg{display:block}.cdial-bg{fill:#F3F5F9;stroke:var(--line-2)}
.cdial-n circle{fill:transparent;cursor:pointer}.cdial-n text{font-size:13px;font-weight:600;fill:var(--ink);pointer-events:none;font-family:inherit}.cdial-n.small text{font-size:10.5px;fill:var(--ink-2)}
.cdial-n:hover circle{fill:#E7F3FB}.cdial-n.on circle{fill:var(--navy)}.cdial-n.on text{fill:#fff}
.cdial-hand{stroke:var(--navy);stroke-width:2;opacity:.35}.cdial-dot{fill:var(--navy)}
.cdial-foot{display:flex;align-items:center;gap:10px}.cdial-v{font-size:15px;font-variant-numeric:tabular-nums;color:var(--navy);min-width:48px}.cdial-foot .seg.view{background:#fff;border-color:var(--line-2)}.cdial-foot .seg.view button{color:var(--ink-2)}.cdial-foot .seg.view button.on{background:var(--navy);color:#fff}
/* v0.75.0 Puhelujono */
.cq-row{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:6px 0;background:#fff}.cq-row.overdue{border-left:4px solid var(--err)}.cq-row.today{border-left:4px solid var(--warn)}.cq-row.later{border-left:4px solid var(--sky)}.cq-row.nodate{border-left:4px solid var(--line-2)}
.cq-main{flex:1;min-width:220px}.cq-acts{flex:0 0 auto;align-self:center}.call-ic.late{background:#F9E9E7;color:var(--err)}.cq-call{padding:2px 8px}
.cq .ibx-pill .n{margin-left:4px;background:rgba(0,0,0,.08);border-radius:999px;padding:0 6px;font-size:10.5px}
@media (max-width:760px){.cq-row{flex-wrap:wrap}.cq-acts{width:100%;justify-content:flex-end}}
/* v0.78.2 Laskutettava erä: leveämpi dialogi, asiakas-/mahdollisuushaku leveänä */
.bi-dlg .ibx-pick{width:440px;max-width:calc(96vw - 40px);left:0}.bi-dlg .ibx-links{gap:8px}.bi-dlg .ibx-link{max-width:100%}
@media (max-width:760px){.bi-dlg .ibx-pick{width:calc(100vw - 48px)}}
/* v0.79.0 Tiedostot */
.pf-drop{border:2px dashed var(--line-2);transition:border-color .15s,background .15s}.pf-drop.on{border-color:var(--sky-deep);background:#EEF5FD}.pf-t td{vertical-align:middle}.pf-t a.btn{display:inline-flex}
/* v0.79.0 porautuminen: seepra */
table.t.zebra tbody tr:nth-child(even) td{background:#F6F8FB}table.t.zebra tbody tr.click:hover td{background:#EEF3F8}
/* v0.79.1 Tiedostot koko näkymän leveydelle (irti .wrap-rajauksesta) */
.wrap .pf-full{width:calc(100vw - 48px);max-width:none;margin-left:calc(50% - 50vw + 24px);box-sizing:border-box}
.pf-full table.t{width:100%;table-layout:auto}.pf-t td:nth-child(2){min-width:220px}.pf-t td:nth-child(3){min-width:260px;white-space:normal}
@media (max-width:760px){.wrap .pf-full{width:100%;margin-left:0}}
/* v0.81.0 Kalenterinäkymä */
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-h{font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em;padding:2px 6px}
.cal-d{min-height:96px;border:1px solid var(--line);border-radius:10px;padding:4px 6px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:3px}.cal-d.empty{background:transparent;border-color:transparent;cursor:default}.cal-d.we{background:#FAFBFD}.cal-d.today{border-color:var(--sky-deep);box-shadow:inset 0 0 0 1px var(--sky-deep)}.cal-d:not(.empty):hover{background:#F2F7FC}
.cal-n{font-size:12px;font-weight:700;color:var(--ink-2)}.cal-d.today .cal-n{color:var(--sky-deep)}
.cal-ev{font-size:11.5px;line-height:1.25;padding:2px 5px;border-radius:6px;background:#E7F3FB;border-left:3px solid var(--sky);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.cal-ev.review{background:#F3F4F8;border-left-color:var(--ink-3)}.cal-ev.internal{background:#FBF1DC;border-left-color:var(--warn)}.cal-ev.networking{background:#EEF8F1;border-left-color:var(--ok)}.cal-ev.held{opacity:.6;text-decoration:line-through}.cal-ev.call{background:#FFF4E5;border-left-color:var(--warn)}
.cal-online{color:var(--ok);margin-left:4px;font-size:9px}.cal-g1{margin-left:4px;font-size:9.5px;font-weight:700;color:var(--ink-3);border:1px solid var(--line-2);border-radius:4px;padding:0 3px}
@media (max-width:760px){.cal-d{min-height:60px;padding:3px}.cal-ev{font-size:10.5px}}
/* v0.82.0 Tapaaminen viestistä: viikkonäkymä */
.mw-g{display:grid;grid-template-columns:44px repeat(7,1fr);gap:4px}.mw-hcol{padding-top:22px}.mw-hr{font-size:11px;color:var(--ink-3);text-align:right;padding-right:6px;box-sizing:border-box;border-top:1px solid transparent}
.mw-col{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.mw-col.today{border-color:var(--sky-deep)}.mw-col.sel{box-shadow:inset 0 0 0 2px var(--warn)}.mw-dh{font-size:11.5px;font-weight:700;color:var(--ink-2);padding:3px 6px;height:22px;box-sizing:border-box;background:#F6F8FB}
.mw-body{position:relative}.mw-slot{border-top:1px solid #EEF1F5;cursor:pointer;box-sizing:border-box}.mw-slot.half{border-top-style:dashed}.mw-slot:hover{background:#F2F7FC}
.mw-ev{position:absolute;left:2px;right:2px;font-size:11px;line-height:1.2;padding:2px 4px;border-radius:5px;background:#E7F3FB;border-left:3px solid var(--sky);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;box-sizing:border-box}.mw-ev.review{background:#F3F4F8;border-left-color:var(--ink-3)}.mw-ev.internal{background:#FBF1DC;border-left-color:var(--warn)}.mw-ev.networking{background:#EEF8F1;border-left-color:var(--ok)}.mw-ev.call{background:#FFF4E5;border-left-color:var(--warn)}
.mw-ev.prop{background:#FFE8C2;border-left-color:var(--warn);font-weight:700;color:#7A4A00;border:2px dashed var(--warn)}.mw-ev.prop.user{background:#DDF3E4;border-color:var(--ok);color:#1F5F3A}
@media (max-width:760px){.mw-g{grid-template-columns:36px repeat(7,1fr)}.mw-ev{font-size:9.5px}}
/* v0.82.1 asettelu: tasaleveät sarakkeet; Google-varaukset */
.cal-g{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-d{min-width:0}.mw-g{grid-template-columns:44px repeat(7,minmax(0,1fr))}.mw-col{min-width:0}
.cal-ev.google,.mw-ev.google{background:#EFEFF4;border-left-color:#8E8EA0;color:#444;font-style:italic}.cal-ev.gall{background:#F2E9F7;border-left-color:#9C6BB5;color:#5A3A6E;font-style:italic}.cal-ev.declined,.mw-ev.declined{opacity:.45;text-decoration:line-through}
.mw-allday{display:block;font-weight:400;font-size:10.5px;color:#5A3A6E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mw-dh{height:auto;min-height:22px}
@media (max-width:760px){.mw-g{grid-template-columns:36px repeat(7,minmax(0,1fr))}}
/* v0.82.2 Tila pudotusvalikkona */
.ibx-stsel{display:inline-flex;align-items:center;gap:6px}.ibx-stsel select{padding:5px 28px 5px 10px;border-radius:999px;border:1px solid var(--line-2);background:#fff;font-weight:600;font-size:12.5px;min-width:140px}.ibx-stsel.on select{background:var(--navy);color:#fff;border-color:var(--navy)}
/* v0.83.0 mylunnin projektit Projekti-chipissä */
.ibx-mp{margin-top:8px;border-top:1px dashed var(--line);padding-top:4px}
/* v0.83.0 Viestipaneeli: suurempi pyöreäkulmainen ikkuna Postilaatikon päällä; hallinta (otsikko, tila, vastuu, välilehdet, toiminnot) erottuu viestistä */
.ibx-detail-bd{position:fixed;inset:0;background:rgba(0,30,45,.38);z-index:39;backdrop-filter:blur(2px)}
.ibx-detail{top:18px;right:auto;bottom:18px;left:50%;transform:translateX(-50%);width:min(1480px,96vw);border-radius:22px;border:1px solid rgba(0,0,0,.08);box-shadow:0 36px 90px -28px rgba(0,20,35,.6);overflow:hidden}
.ibx-detail-h{padding:0;border-bottom:0}
.ibx-dtitle{background:var(--navy);color:#fff;padding:14px 22px 12px}.ibx-dtitle h2{color:#fff;margin:6px 0 2px;font-size:20px}.ibx-dtitle .muted{color:rgba(255,255,255,.78)}.ibx-dtitle .btn.ghost{color:#fff;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.06)}.ibx-dtitle .btn.ghost:hover{background:rgba(255,255,255,.16)}.ibx-dtitle .err-msg{color:#FFD6D0}
.ibx-dtitle .chip{background:rgba(255,255,255,.14);color:#fff;border-color:transparent}.ibx-dtitle .chip.warn{background:#F0C06A;color:#3A2A00}.ibx-dtitle .chip.ok{background:#8ED1A3;color:#0E3A1E}
.ibx-dctl{background:#EEF2F7;padding:10px 22px 0;border-bottom:1px solid var(--line)}.ibx-dctl .seg{background:#fff}.ibx-dctl .tabs{margin-top:8px}.ibx-dctl .tabs button{padding-bottom:8px}
.ibx-detail-b{padding:16px 22px 22px;background:#fff}
.ibx-detail-f{background:#EEF2F7;border-top:1px solid var(--line);padding:12px 22px}.ibx-detail-f .btn.ghost{background:#fff}
@media (max-width:760px){.ibx-detail{top:0;bottom:0;width:100vw;border-radius:0}.ibx-dtitle,.ibx-dctl,.ibx-detail-b,.ibx-detail-f{padding-left:12px;padding-right:12px}}
/* v0.84.0 Kanban: AI-kiireellisyys */
.kcard.acute{border:2px solid var(--err);box-shadow:0 0 0 3px rgba(197,66,51,.10)}.kcard.high{border:2px solid var(--warn);box-shadow:0 0 0 3px rgba(201,138,27,.10)}
.kb-urg{font-size:11px;font-weight:700;color:var(--err);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kcard.high .kb-urg{color:var(--warn)}
.kb-leg{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;border:2px solid var(--err)}.kb-leg.high{border-color:var(--warn)}
/* v0.85.0 Asiakasportaali: lohkot, kevyempi seinä */
.psec{margin-top:14px}.psec-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.psec-t{background:none;border:0;font:700 12.5px inherit;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;padding:4px 0}.psec-car{display:inline-block;width:12px;color:var(--ink-3)}.psec.closed .psec-bar{border-bottom:1px dashed var(--line)}.psec-body>.section{margin-top:6px}.psec-body>.card.section,.psec-body>.grid.section{margin-top:6px}
.wall.compact .wall-row,.wall.compact .ev,.wall.compact li{padding:5px 8px;font-size:12.5px;line-height:1.35;border:0;border-radius:6px}.wall.compact .wall-row:nth-child(even),.wall.compact .ev:nth-child(even),.wall.compact li:nth-child(even){background:#F6F8FB}.wall.compact .wall-row b,.wall.compact .ev b{font-weight:600}.wall.compact .muted{font-size:11.5px}.wall.compact .wall-ic,.wall.compact .ev-ic{display:none}.wall.compact h3,.wall.compact .wall-day{font-size:12px;color:var(--ink-3);margin:8px 0 2px;text-transform:uppercase;letter-spacing:.03em}
/* v0.85.0 asiakkaan seinä kevyenä: seepraraidat, pienempi rivikorkeus, ei avataria eikä isoa kuvaketta */
.wall-feed.compact .wall-ev{padding:4px 8px;margin:0;border:0;border-radius:6px;gap:8px;align-items:baseline;box-shadow:none;background:transparent}.wall-feed.compact .wall-ev:nth-child(even){background:#F6F8FB}
.wall-feed.compact .wall-av{display:none}.wall-feed.compact .wall-line{font-size:12.5px;gap:6px}.wall-feed.compact .wall-line b{font-weight:600}.wall-feed.compact .wall-verb{color:var(--ink-2)}.wall-feed.compact .wall-sum{font-size:12.5px;color:var(--ink-2);margin-top:1px}
.wall-feed.compact .wall-meta{font-size:11px}.wall-feed.compact .wall-ico{display:none}.wall-feed.compact .wall-day-h{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);margin:8px 0 2px;padding:0 8px}
.wall-feed.compact .wall-ev.w2,.wall-feed.compact .wall-ev.w3{border-left:3px solid var(--sky);padding-left:6px}
/* v0.86.0 Tapaamisehdotukset */
.ws-proposed{border:2px dashed var(--warn)!important;background:#FFFBF2!important}.ws-prop{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding:6px 8px;border-radius:8px;background:#FFF3DC;font-size:12.5px}.ws-prop.small{margin-top:6px;padding:4px 6px}.ws-prop-t{color:#7A4A00;font-weight:600}.ws-prop input{padding:3px 6px;border-radius:6px;border:1px solid var(--line-2)}
.cal-ev.proposed{border:1px dashed var(--warn);border-left:3px dashed var(--warn);background:#FFF8EA;font-style:italic}
tr.bi-row.hl td{background:#FFF1C9!important;transition:background .6s}
/* v0.87.0 tapaamisen henkilöt */
.cpp{margin-top:8px;padding:8px 10px;border:1px dashed var(--line-2);border-radius:10px;background:#FAFBFD}.pv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12.5px;margin-top:4px}.pv>div{display:contents}.pv-l{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding-top:2px}
/* v0.88.0 seurantapalaverin muutoslista */
.rd{margin-top:8px;padding:8px 10px;border-radius:10px;background:#F6F8FB;border:1px solid var(--line)}.rd-list{margin:2px 0 0;padding-left:16px;font-size:12.5px}.rd-list li{padding:1px 0}.rd-list li.ok b{color:var(--ok)}.rd-list li.late{color:var(--err)}
/* v0.89.0 asiakastapaaminen */
.cal-ev.customer{background:#E7EEF7;border-left-color:var(--navy)}.mw-ev.customer{background:#E7EEF7;border-left-color:var(--navy)}
/* v0.89.0 tapaamisen aika isolla */
.ws-when{margin-top:8px;padding:8px 10px;border-radius:10px;background:#F6F8FB}.ws-when-big{font-size:17px;display:inline-flex;align-items:center;gap:6px}.ws-when-big b{font-size:19px}
/* v0.90.0 seinän näkyvyysmatriisi + asiakkaan kevyen seinän ruudukkokorjaus (avatar piilossa → sarakkeet 1fr auto) */
.wv td,.wv th{padding:6px 8px;font-size:12.5px}.wv tr.wv-cat td{background:#F3F6FA}.wv input[type=checkbox]{width:16px;height:16px}
.wall-feed.compact .wall-ev{grid-template-columns:1fr auto}
/* v0.91.0 tapaamisen pikatoiminnot */
.mqa{margin-top:8px;padding-top:6px;border-top:1px dashed var(--line)}.mqa .ws-when{margin-top:0;padding:6px 8px}.mqa .ws-when-big{font-size:14px}.mqa .ws-when-big b{font-size:15px}
/* v0.97.0 Postilaatikon liitteet */
.ibx-atts{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.ibx-att{position:relative;display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:999px;background:#fff;font-size:12px;max-width:100%}
.ibx-att>a{display:inline-flex;align-items:center;gap:5px;padding:4px 6px 4px 10px;color:var(--ink);text-decoration:none;max-width:260px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ibx-att>a:hover{background:#F5F6FA;border-radius:999px 0 0 999px}
.ibx-att>a small{color:var(--ink-3);font-size:11px;margin-left:2px}
.ibx-att-more{border:0;background:transparent;border-left:1px solid var(--line);padding:2px 9px;cursor:pointer;color:var(--ink-2);font-weight:700;border-radius:0 999px 999px 0;line-height:1.4}
.ibx-att-more:hover{background:#EFF1F6}
.ibx-compose-atts{margin-top:2px}
.ibx-compose-atts .ibx-att>a{cursor:default}
/* v0.99.0 Liitteet-välilehti */
.ibx-attc{width:30px;text-align:center;color:var(--ink-3)}
.ibx-attc small{font-size:10px;margin-left:1px}
.ibx-done-dot{color:#1E8E5A;font-weight:700}
.chip.ibx-done{background:#E4F6EC;color:#1E6E48}
.ibx-att-manage{margin-right:4px}
.ibx-att-t td{vertical-align:middle}
.ibx-att-t tr.sel td{background:#F6F8FD}
.ibx-att-name{word-break:break-all}
.ibx-tg{cursor:pointer;background:#EFF1F6;color:var(--ink-2);padding:3px 9px}
.ibx-tg.on{background:#E3ECFB;color:var(--navy)}
.ibx-tg input{margin:0 2px 0 0}
.ibx-opp-box{padding:8px 10px;border:1px dashed var(--line-2);border-radius:10px;background:#FAFBFD}

/* ===== v0.106.0: megavalikko — yläpalkin jatke, koko sovellus yhdessä paneelissa ===== */
.mega{display:contents}
.topnav .mega-trig{display:inline-flex;align-items:center;gap:6px}
.mega-caret{font-size:10px;opacity:.55;margin-left:1px;transition:transform .15s ease}
.topnav .mega-trig.open{background:rgba(255,255,255,.1);color:#fff}
.mega-trig.open .mega-caret{transform:rotate(180deg);opacity:1}
.mega-trig .navmenu-sub{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1500px){.mega-trig .navmenu-sub{display:none}}
body.mega-open .topbar{z-index:90}
.mega-scrim{position:fixed;left:0;right:0;top:56px;bottom:0;background:rgba(0,24,33,.32);animation:megaFade .16s ease-out}
.mega-panel{position:absolute;left:0;right:0;top:100%;display:grid;grid-template-columns:minmax(0,1fr) 290px;background:linear-gradient(180deg,#003A4C 0%,#002A38 100%);border-top:1px solid rgba(84,185,234,.25);box-shadow:0 30px 60px -28px rgba(0,16,24,.8);color:#DCE4F2;max-height:calc(100vh - 56px);overflow:auto;cursor:default;animation:megaIn .16s ease-out}
.mega-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:16px 14px 18px 18px;align-content:start}
.mega-col{border-radius:14px;padding:10px 6px 8px;transition:background-color .15s ease}
.mega-col.hot{background:rgba(84,185,234,.08)}
.mega-gh{display:flex;align-items:center;gap:7px;margin:0 8px 8px;font-size:12.5px;font-weight:700;color:#8FA7BE;letter-spacing:.01em}
.mega-gh::after{content:"";flex:1;height:2px;border-radius:2px;background:rgba(255,255,255,.08);margin-left:4px}
.mega-col.hot .mega-gh{color:#fff}
.mega-col.hot .mega-gh::after{background:var(--orange)}
.mega-panel .mega-item{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:11px;width:100%;padding:8px;margin:0;border:0;border-radius:11px;background:transparent;color:inherit;text-align:left;white-space:normal;font-weight:500;font-size:14px;position:relative;box-shadow:none}
.mega-panel .mega-item:hover{background:rgba(255,255,255,.07)}
.mega-panel .mega-item:focus-visible{outline:none;background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 2px var(--sky)}
.mega-panel .mega-item.on{background:rgba(255,201,97,.1);box-shadow:none}
.mega-panel .mega-item.on::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--orange)}
.mega-ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(84,185,234,.13);color:#8ED2F4}
.mega-item:hover .mega-ic{background:rgba(84,185,234,.2);color:#BDE6FA}
.mega-item.on .mega-ic{background:var(--orange);color:var(--amber-ink)}
.mega-tx{min-width:0}
.mega-tl{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mega-tl b{font-size:14px;font-weight:650;color:#fff;line-height:1.25}
.mega-tx small{display:block;font-size:12px;line-height:1.35;color:#9DB0C5;margin-top:2px}
.mega-sig{font-size:11px;font-weight:700;line-height:1;border-radius:999px;padding:4px 7px;white-space:nowrap;background:rgba(255,255,255,.09);color:#C6D3E4}
.mega-sig.hot{background:var(--orange);color:var(--amber-ink)}
.mega-sig.now{background:rgba(84,185,234,.26);color:#DDF2FD}
.mega-sig.calm{background:transparent;color:#7E98AE;padding-left:0;padding-right:0;font-weight:600}
.mega-rail{display:flex;flex-direction:column;gap:7px;padding:18px 18px 14px;background:rgba(0,10,16,.22);border-left:1px solid rgba(255,255,255,.07)}
.mega-rh{font-size:12.5px;font-weight:700;color:#8FA7BE;margin:0 2px 2px}
.mega-rh2{margin-top:10px}
.mega-panel .mega-act{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:1px solid rgba(255,255,255,.13);border-radius:11px;background:rgba(255,255,255,.04);color:#fff;font-weight:600;font-size:13.5px;text-align:left;box-shadow:none}
.mega-panel .mega-act:hover{background:rgba(255,255,255,.1)}
.mega-panel .mega-act:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sky)}
.mega-panel .mega-act.accent{background:var(--orange);border-color:var(--orange);color:var(--amber-ink)}
.mega-panel .mega-act.accent:hover{background:var(--orange-2);border-color:var(--orange-2)}
.mega-act kbd{margin-left:auto;font:inherit;font-size:11px;font-weight:700;color:#B9C7D8;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:1px 6px}
.mega-recent{display:flex;flex-direction:column;gap:2px}
.mega-panel .mega-recent button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:6px 8px;border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;white-space:normal;box-shadow:none;font-weight:500}
.mega-panel .mega-recent button:hover{background:rgba(255,255,255,.07)}
.mega-panel .mega-recent button.on{background:rgba(255,201,97,.1)}
.mega-code{font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 6px;border-radius:6px;background:rgba(84,185,234,.18);color:#C4E8FB;min-width:40px;text-align:center}
.mega-recent b{display:block;font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mega-recent small{display:block;font-size:11.5px;color:#93A7BD;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mega-panel .mega-set{margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px 6px 2px;border:0;border-top:1px solid rgba(255,255,255,.08);border-radius:0;background:transparent;color:#AFC0D3;font-weight:600;font-size:13px;box-shadow:none}
.mega-panel .mega-set:hover{color:#fff;background:transparent}
@keyframes megaIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes megaFade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.mega-panel,.mega-scrim{animation:none}.mega-caret,.mega-col{transition:none}}
@media (max-width:1180px){.mega-panel{grid-template-columns:1fr}.mega-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.mega-rail{border-left:0;border-top:1px solid rgba(255,255,255,.07);display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mega-rail .mega-rh,.mega-recent,.mega-panel .mega-set{grid-column:1/-1}}
.topnav button[data-badge]::after{content:attr(data-badge);display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:var(--orange);color:var(--amber-ink);font-size:11px;font-weight:800;line-height:18px;box-sizing:border-box}
.mob-item[data-badge]::after{content:attr(data-badge);margin-left:auto;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--orange);color:var(--amber-ink);font-size:11.5px;font-weight:800;box-sizing:border-box}

/* ===== v0.134.0: postilaatikon mittarit v3 — rauhallinen tumma kaista mylunnin ylävalikon sävyissä, hienoinen sähköinen hehku (Markku 11.10.); ei pylväitä ===== */
.ibx-metrics{--n:5;position:relative;display:flex;margin:12px 0 14px;border-radius:16px;overflow:hidden;color:#fff;
  background:radial-gradient(130% 150% at 50% -70%,rgba(84,185,234,.20),rgba(84,185,234,0) 55%),linear-gradient(90deg,var(--navy-2),var(--navy) 60%,#00465B);
  border:1px solid rgba(84,185,234,.16);box-shadow:0 14px 34px -18px rgba(0,51,66,.55)}
.ibx-metrics::before{content:"";position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,rgba(84,185,234,0),rgba(140,214,247,.75),rgba(84,185,234,0));pointer-events:none}
.ibx-metric{position:relative;flex:1 1 auto;display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px 16px 12px;background:transparent;border:0;border-radius:0;box-shadow:1px 0 0 rgba(255,255,255,.07),0 1px 0 rgba(255,255,255,.07);transition:background-color .2s ease}
.ibx-metric::before{content:none}
.ibx-metric.click{cursor:pointer}
.ibx-metric.click:hover{background:rgba(255,255,255,.045)}
.ibx-metric:focus-visible{outline:2px solid rgba(84,185,234,.85);outline-offset:-3px}
.ibx-metric.on{background:rgba(84,185,234,.11)}
.ibx-metric.on::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:2px;background:var(--sky);box-shadow:0 0 10px rgba(84,185,234,.85),0 0 2px rgba(140,214,247,1)}
.im-head{display:flex;align-items:center;gap:8px;min-height:22px}
.im-ic{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(84,185,234,.12);color:#9FDCF7;box-shadow:inset 0 0 0 1px rgba(84,185,234,.25)}
.im-title{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.78);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-val{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.im-val b{font-size:30px;line-height:1.05;font-weight:700;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(84,185,234,.38)}
.im-val span{font-size:12px;color:rgba(255,255,255,.5)}
.ibx-metric.zero .im-val b{color:rgba(255,255,255,.38);text-shadow:none}
.ibx-metric.zero .im-ic{color:rgba(159,220,247,.55);background:rgba(84,185,234,.06)}
.im-foot{display:flex;align-items:center;gap:8px;min-height:18px;font-size:11.5px;color:rgba(255,255,255,.52)}
.im-age{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.im-age::before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.28)}
.im-age.warn::before,.im-age.err::before{background:var(--orange)}
.im-age.err::before{box-shadow:0 0 5px rgba(255,201,97,.55)}
.im-ring{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:rgba(255,255,255,.7);font-variant-numeric:tabular-nums}
.im-ring .rt{fill:none;stroke:rgba(255,255,255,.14);stroke-width:3}
.im-ring .rp{fill:none;stroke:var(--sky);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .4s ease}
.im-ring.met{color:#8FE3B5}.im-ring.met .rp{stroke:#5FD39A}
@media (prefers-reduced-motion:reduce){.ibx-metric,.im-ring .rp{transition:none}}
@media (max-width:1100px){.ibx-metrics{display:grid;grid-template-columns:repeat(var(--half,4),minmax(0,1fr))}}
@media (max-width:760px){.ibx-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.im-val b{font-size:24px}.ibx-metric{padding:12px 13px 10px}}
/* v0.106.0: mobiilivalikko kelluvan tuntikirjaajan päälle (kirjaaja 60) */
.mob-sheet{z-index:75}
/* v0.117.0 Hierarkia: kysymyksen vastaus rivin alla */
.hier-ans{border-left:2px solid var(--line);margin:2px 0 6px 34px;background:var(--paper)}
.hier-ans textarea{width:100%;box-sizing:border-box;resize:vertical}
/* v0.117.1 Tapaamiset yleiskuvassa: AI:n ehdotus haamuna, kunnes ihminen vahvistaa tai muokkaa */
.card.ws-ghost{opacity:.62;border:1px dashed var(--warn);background:#FFFDF7}
.card.ws-ghost:hover{opacity:.9}
/* v0.120.0 Tuntikirjaaja: selite monirivisenä, aiemmat selitteet chipeinä, työtunnin laji */
.trk-note{resize:vertical;min-height:38px;font-family:inherit;line-height:1.35}
.trk-recent{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.trk-kind{border:0;border-radius:8px;padding:6px 8px;background:rgba(255,255,255,.14);color:#fff;font-size:12.5px;max-width:150px}
.trk-kind option{color:#111}
/* v0.123.0 Postilaatikko: luonti hausta (yhteyshenkilö, liidi, asiakas) */
.ibx-create{margin-top:6px;padding:8px;border:1px solid var(--line-2);border-radius:10px;background:#FAFBFD;display:flex;flex-direction:column;gap:4px}
.ibx-create input,.ibx-create select{border:1px solid var(--line-2);border-radius:8px;padding:5px 8px;font-size:12.5px}
/* v0.125.1 Uusi viesti: Lunni360:n tiedostot dialogin sisällä */
.ibx-lf{margin-top:8px;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:#FAFBFD;display:flex;flex-direction:column;gap:2px}
.ibx-lf-i{display:flex;justify-content:space-between;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:6px 8px;border-radius:8px;font-size:13px;color:var(--ink);cursor:pointer;font-family:inherit}
.ibx-lf-i:hover{background:#EEF3F8}.ibx-lf-i.on{background:#E6F2EC;color:#1f5e3a;font-weight:600}.ibx-lf-i small{color:var(--ink-3);font-weight:400;white-space:nowrap}
/* v0.125.2 Ella Gmailiin: kopioinnin kuittaus */
.ok-msg{background:#E6F2EC;color:#1f5e3a;border:1px solid #BFE0CC;border-radius:8px;padding:6px 10px}
/* v0.127.0 upotus Lunni360:n widget-sivuksi: ei yläpalkkia, tiiviimpi marginaali */
body.embedded .topbar{display:none}
body.embedded .page,body.embedded .inbox-page{padding-top:8px}
/* v0.128.0 tuore tarjous-PDF -kaistale; Tuntikirjaaja piiloon upotuksessa */
.ibx-fresh{display:flex;align-items:center;gap:10px;margin:10px 0 0;padding:8px 12px;border-radius:12px;background:#FFF6E5;border:1px solid #F3D9A4;font-size:13.5px}
.ibx-fresh>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.embedded .trk{display:none}
/* v0.129.0 allekirjoitukset */
.ibx-sig{padding:10px 12px;border:1px solid var(--line-2);border-radius:12px;background:#FAFBFD;display:flex;flex-direction:column;gap:6px}
.ibx-sig-html{margin-top:6px;padding:8px 10px;background:#fff;border:1px solid var(--line-2);border-radius:8px;font-size:13px;color:#222}

/* v0.133.0: lataus näkyy — lista himmenee hakua/suodatusta odottaessa, hakukenttä sykkii */
.ibx-t.ibx-loading tbody{opacity:.55;transition:opacity .2s}.search-in.ibx-searching{background:linear-gradient(90deg,#fff 0%,#eef4ff 50%,#fff 100%);background-size:200% 100%;animation:ibxsearch 1s linear infinite}@keyframes ibxsearch{from{background-position:200% 0}to{background-position:-200% 0}}
/* v0.135.1: Postilaatikon yläpalkki yksinkertaistettu (Markku 11.10.) — isommat Kanban · Lista ja Lähetä tarjous; Päivitä ja Asetukset sivupalkin alaosaan, synkan tila hiljaisena rivinä */
.seg.view.lg button{font-size:14px;padding:9px 18px}
.ibx-head .ibx-offer-btn .btn{font-size:14px;padding:9px 16px;font-weight:700}
.ibx-side-foot{margin-top:14px;padding-top:10px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ibx-side-foot .btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.ibx-sync{width:100%;font-size:11.5px;color:var(--ink-3);padding:2px 4px}.ibx-sync.err{color:var(--err)}
.ibx-side.narrow .ibx-side-foot{flex-direction:column;align-items:center;gap:8px}.ibx-side.narrow .ibx-side-foot .btn{padding:8px}
.ibx-detail-f.top{border-top:0;background:transparent;padding:8px 0 0;flex-wrap:wrap;gap:8px}.ibx-detail-f.top>.row{flex-wrap:wrap}
