:root{
  --brand:#005d95; --brand-600:#004c7a; --brand-50:#e8f2f9; --accent:#f17e00; --accent-50:#fff3e6;
  --bg:#f3f5f9; --surface:#ffffff; --surface-2:#f8fafc; --surface-3:#eef2f7; --border:#e2e8f0; --border-strong:#cfd8e3;
  --text:#152033; --text-2:#3f4b60; --muted:#6c778b; --danger:#dc2626; --danger-50:#fdecec; --success:#16a34a; --success-50:#e8f7ee;
  --warn:#d97706; --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08); --shadow-lg:0 12px 32px rgba(16,24,40,.16);
  --radius:10px; --sidebar:236px; color-scheme:light;
}
:root[data-theme="dark"]{
  --brand:#2e8fd0; --brand-600:#1f7ab8; --brand-50:#12304a; --accent:#ff9326; --accent-50:#3a2612;
  --bg:#0c121c; --surface:#131b28; --surface-2:#172131; --surface-3:#1d293c; --border:#243248; --border-strong:#31415c;
  --text:#e7ecf4; --text-2:#c2cbd9; --muted:#8a97ad; --danger:#f87171; --danger-50:#3a1b1d; --success:#4ade80; --success-50:#15301f;
  --shadow:0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 12px 32px rgba(0,0,0,.5); color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font:14px/1.45 "Inter","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}
.muted{color:var(--muted)} .small{font-size:12px} .nowrap{white-space:nowrap}
.row{display:flex;align-items:center;gap:8px} .grow{flex:1;min-width:0} .wrap{flex-wrap:wrap}
.hidden{display:none!important}

/* boot/login */
.boot{height:100vh;display:grid;place-items:center;align-content:center;gap:24px}
.boot img{width:200px}
.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:auto}
@keyframes spin{to{transform:rotate(360deg)}}
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login-art{background:linear-gradient(145deg,#005d95 0%,#003e66 60%,#002a47 100%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-art:after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;border:48px solid rgba(241,126,0,.85);border-left-color:transparent;border-bottom-color:transparent;transform:rotate(10deg)}
.login-art h1{font-size:40px;line-height:1.1;max-width:460px}
.login-art p{opacity:.8;max-width:420px;font-size:16px}
.login-art .tags{display:flex;gap:8px;flex-wrap:wrap}
.login-art .tags span{background:rgba(255,255,255,.12);padding:6px 12px;border-radius:99px;font-size:13px}
.login-form{display:grid;place-items:center;padding:32px;background:var(--surface)}
.login-form form{width:100%;max-width:360px;display:grid;gap:14px}
.login-form img{width:190px;margin-bottom:12px}
@media(max-width:860px){.login{grid-template-columns:1fr}.login-art{display:none}}

/* shell */
.shell{display:grid;grid-template-columns:auto minmax(0,1fr);height:100vh}
.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;width:var(--sidebar);transition:width .55s cubic-bezier(.32,.72,0,1),background-color .3s;overflow:hidden}
.sidebar .brand{padding:18px 18px 12px;display:flex;align-items:center}
.sidebar .brand img{width:150px}
.sidebar .brand{position:relative;gap:6px;min-height:66px}
.brand-a{display:block;position:relative;flex:none}
.nav{padding:6px 10px;overflow:auto;flex:1}
.nav-sec{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:14px 10px 6px;font-weight:600}
.nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--text-2);font-weight:500;margin:1px 0}
.nav a:hover{background:var(--surface-3)}
.nav a.active{background:var(--brand-50);color:var(--brand)}
.nav a .ic{width:18px;height:18px;flex:none;opacity:.85}
.nav a .count{margin-left:auto;background:var(--accent);color:#fff;font-size:11px;padding:1px 7px;border-radius:99px;font-weight:600}
.nav .dot{width:9px;height:9px;border-radius:3px;flex:none;margin:0 4.5px}
.side-foot{border-top:1px solid var(--border);padding:10px;display:flex;align-items:center;gap:10px}
.side-foot .who{flex:1;min-width:0;cursor:pointer}
.side-foot .who b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.main{display:flex;flex-direction:column;min-width:0;min-height:0}
.topbar{height:56px;flex:none;display:flex;align-items:center;gap:12px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--surface)}
.topbar h2{font-size:17px}
.search{position:relative;margin-left:auto;width:300px;max-width:40vw}
.search input{width:100%;padding:7px 12px 7px 32px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2)}
.search svg{position:absolute;left:9px;top:9px;width:16px;height:16px;color:var(--muted)}
.search-results{position:absolute;top:40px;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);z-index:50;max-height:420px;overflow:auto;padding:6px}
.search-results a{display:flex;gap:8px;align-items:center;padding:7px 8px;border-radius:6px;color:var(--text)}
.search-results a:hover{background:var(--surface-3)}
.content{flex:1;overflow:auto;padding:20px 24px 40px;min-height:0}
.content.board-mode{padding:0;display:flex;flex-direction:column;overflow:hidden}
.menu-btn{display:none}
@media(max-width:900px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;width:260px;z-index:60;transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow-lg)}
  .sidebar.open{transform:none}
  .menu-btn{display:inline-flex}
  .search{width:auto;flex:1;max-width:none}
  .topbar h2{display:none}
  .content{padding:16px}
}

/* buttons & inputs */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:550;white-space:nowrap;color:var(--text)}
.btn:hover{background:var(--surface-3)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-600)}
.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.accent:hover{filter:brightness(.95)}
.btn.danger{color:var(--danger)} .btn.danger:hover{background:var(--danger-50)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--surface-3)}
.btn.sm{padding:4px 9px;font-size:12.5px}
.btn.icon{padding:6px;width:32px;height:32px;justify-content:center}
.btn svg{width:16px;height:16px}
.btn:disabled{opacity:.5;cursor:not-allowed}
label.f{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.inp,select.inp,textarea.inp{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-weight:400;font-size:14px;color:var(--text)}
textarea.inp{resize:vertical;min-height:72px}
.inp:focus{outline:2px solid color-mix(in srgb,var(--brand) 35%,transparent);outline-offset:0;border-color:var(--brand)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}}
.err{color:var(--danger);font-size:13px;min-height:18px}

/* cards & pills */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-h{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}
.card-h h3{font-size:14.5px}
.card-b{padding:14px 16px}
.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--surface-3);color:var(--text-2)}
.pill .d{width:7px;height:7px;border-radius:50%}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:5px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.av{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:11px;font-weight:700;flex:none;border:2px solid var(--surface);text-transform:uppercase}
.av.lg{width:40px;height:40px;font-size:15px}
.av.xs{width:22px;height:22px;font-size:10px}
.avs{display:flex}.avs .av+.av{margin-left:-8px}
.empty{padding:40px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--text);font-size:15px;margin-bottom:4px}
.prio{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600}
.prio svg{width:13px;height:13px}
.prio.urgent{color:#dc2626}.prio.high{color:var(--accent)}.prio.normal{color:var(--brand)}.prio.low{color:var(--muted)}
.due{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.due.over{color:var(--danger);font-weight:600}.due.today{color:var(--accent);font-weight:600}
.due svg{width:13px;height:13px}

/* page header */
.ph{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.ph h1{font-size:22px}
.ph .sub{color:var(--muted);font-size:13.5px}

/* dashboard */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{padding:14px 16px;cursor:pointer}
.stat .lbl{color:var(--muted);font-size:12.5px;font-weight:600}
.stat .val{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-top:2px}
.stat .hint{font-size:12px;color:var(--muted)}
.stat.warn .val{color:var(--danger)} .stat.acc .val{color:var(--accent)} .stat.ok .val{color:var(--success)} .stat.br .val{color:var(--brand)}
.dash{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
@media(max-width:1100px){.dash{grid-template-columns:1fr}}
.dash .col{display:grid;gap:16px;align-content:start}
.bar{height:8px;background:var(--surface-3);border-radius:99px;overflow:hidden;display:flex}
.bar i{display:block;height:100%}
.prog-row{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr 70px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border)}
.prog-row:last-child{border-bottom:0}
.load-row{display:grid;grid-template-columns:minmax(140px,1fr) 2fr 90px;gap:12px;align-items:center;padding:7px 0}
.act{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.act:last-child{border-bottom:0}
.li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);cursor:pointer}
.li:last-child{border-bottom:0}
.li:hover .ttl{color:var(--brand)}
.li .ttl{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* board */
.toolbar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap}
.toolbar .inp{width:auto;padding:6px 9px;font-size:13px}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2)}
.seg a{padding:6px 12px;font-size:13px;font-weight:550;color:var(--text-2);display:flex;align-items:center;gap:6px}
.seg a svg{width:15px;height:15px}
.seg a.on{background:var(--surface);color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
.board{flex:1;display:flex;gap:12px;padding:16px 20px;overflow:auto;align-items:flex-start;min-height:0}
.col-k{width:290px;flex:none;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;max-height:100%}
.col-k .kh{display:flex;align-items:center;gap:8px;padding:11px 12px;font-weight:650;font-size:13px;border-top:3px solid var(--c);border-radius:12px 12px 0 0}
.col-k .kh .n{color:var(--muted);font-weight:600;background:var(--surface-3);padding:0 7px;border-radius:99px;font-size:12px}
.col-k .kb{padding:4px 10px 10px;overflow:auto;display:flex;flex-direction:column;gap:8px;min-height:60px;flex:1}
.col-k.over{outline:2px dashed var(--brand);outline-offset:-3px}
.kcard{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 11px;cursor:pointer;box-shadow:var(--shadow);display:grid;gap:7px;transition:border-color .1s}
.kcard:hover{border-color:var(--brand)}
.kcard.dragging{opacity:.4}
.kcard .t{font-weight:600;font-size:13.5px;line-height:1.35;word-break:break-word}
.kcard .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kcard .foot{display:flex;align-items:center;gap:8px}
.kcard .mini{font-size:12px;color:var(--muted);display:inline-flex;gap:3px;align-items:center}
.kcard .mini svg{width:13px;height:13px}
.placeholder{height:54px;border:2px dashed var(--border-strong);border-radius:10px;flex:none}
.quick-add{display:flex;gap:6px;padding:0 10px 10px}
.quick-add input{flex:1;padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13px}
.add-link{color:var(--muted);font-size:13px;padding:6px 12px 10px;cursor:pointer;font-weight:550}
.add-link:hover{color:var(--brand)}

/* list table */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface-2);position:sticky;top:0}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:var(--surface-2)}
.grp-h{display:flex;align-items:center;gap:8px;padding:12px 4px 8px;font-weight:650}
.list-wrap{flex:1;overflow:auto;padding:8px 20px 30px}
.chk{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);display:inline-grid;place-items:center;cursor:pointer;flex:none;background:var(--surface)}
.chk:hover{border-color:var(--success)}
.chk.on{background:var(--success);border-color:var(--success);color:#fff}
.chk svg{width:11px;height:11px}

/* calendar */
.cal-wrap{flex:1;overflow:auto;padding:12px 20px 24px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--border);gap:1px}
.cal .dh{background:var(--surface-2);padding:8px;font-size:12px;font-weight:650;color:var(--muted);text-align:center}
.cal .day{background:var(--surface);min-height:118px;padding:6px;display:flex;flex-direction:column;gap:3px}
.cal .day.out{background:var(--surface-2)} .cal .day.out .dn{opacity:.4}
.cal .day .dn{font-size:12px;font-weight:650;color:var(--text-2);display:flex;justify-content:space-between}
.cal .day.today .dn span{background:var(--accent);color:#fff;border-radius:99px;padding:0 7px}
.cal .ev{font-size:11.5px;padding:2px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface))}
.cal .ev.done{text-decoration:line-through;opacity:.6}
.cal .more{font-size:11px;color:var(--muted);padding-left:4px;cursor:pointer}
.cal .day.drop{outline:2px dashed var(--brand);outline-offset:-3px}

/* clients */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.ccard{padding:16px;cursor:pointer;display:grid;gap:12px;transition:border-color .1s}
.ccard:hover{border-color:var(--brand)}
.logo-box{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:750;font-size:18px;flex:none}
.logo-box.lg{width:64px;height:64px;font-size:26px;border-radius:14px}
.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13.5px}
.kv dt{color:var(--muted)} .kv dd{margin:0;word-break:break-word}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow:auto}
.tabs a{padding:9px 14px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a.on{color:var(--brand);border-bottom-color:var(--brand)}
.del-row{display:grid;grid-template-columns:1fr 100px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.soc{display:flex;align-items:center;gap:8px;padding:6px 0}
.cdetail{display:grid;grid-template-columns:1fr 340px;gap:16px}
@media(max-width:1100px){.cdetail{grid-template-columns:1fr}}

/* drawer */
.drawer-bg{position:fixed;inset:0;background:rgba(10,15,25,.35);z-index:70;animation:fade .15s}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(760px,100vw);background:var(--surface);z-index:71;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide .18s ease-out}
@keyframes slide{from{transform:translateX(40px);opacity:.3}}
@keyframes fade{from{opacity:0}}
.drawer .dh{display:flex;align-items:center;gap:8px;padding:12px 18px;border-bottom:1px solid var(--border)}
.drawer .db{flex:1;overflow:auto;padding:18px 22px 40px}
.title-inp{width:100%;font-size:21px;font-weight:700;border:1px solid transparent;border-radius:8px;padding:4px 6px;margin-left:-7px;background:transparent;letter-spacing:-.01em}
.title-inp:hover{border-color:var(--border)} .title-inp:focus{border-color:var(--brand);outline:none}
.props{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;align-items:center;margin:14px 0 18px;font-size:13.5px}
.props .k{color:var(--muted);display:flex;align-items:center;gap:6px}
.props .k svg{width:15px;height:15px}
.props .inp{padding:5px 8px;border-color:transparent;background:transparent;width:auto;max-width:100%}
.props .inp:hover{border-color:var(--border)}
.chipsel{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:32px;padding:3px 6px;border-radius:8px;cursor:pointer;border:1px solid transparent}
.chipsel:hover{border-color:var(--border)}
.chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface-3);border-radius:99px;padding:2px 9px 2px 3px;font-size:12.5px;font-weight:550}
.chip.plain{padding:2px 9px}
.sec-t{font-size:13px;font-weight:700;margin:22px 0 8px;display:flex;align-items:center;gap:8px;color:var(--text-2)}
.ck-item{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:6px}
.ck-item:hover{background:var(--surface-2)}
.ck-item.done span{text-decoration:line-through;color:var(--muted)}
.ck-item .x{margin-left:auto;opacity:0}
.ck-item:hover .x{opacity:1}
.comment{display:flex;gap:10px;padding:10px 0}
.comment .bub{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;flex:1;white-space:pre-wrap;word-break:break-word}
.file{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px}
.file img{width:44px;height:44px;object-fit:cover;border-radius:6px}
.hist{font-size:12.5px;color:var(--muted);padding:3px 0}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(10,15,25,.45);z-index:80;display:grid;place-items:center;padding:20px;animation:fade .15s;overflow:auto}
.modal{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column}
.modal.wide{width:min(920px,100%)}
.modal .mh{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.modal .mh h3{font-size:17px}
.modal .mb{padding:18px 20px;overflow:auto;display:grid;gap:14px}
.modal .mf{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;align-items:center}
.fs{border:1px solid var(--border);border-radius:12px;padding:14px;display:grid;gap:12px}
.fs legend{font-weight:700;font-size:13px;padding:0 6px;color:var(--brand)}
.rowlist{display:grid;gap:8px}
.drow{display:grid;grid-template-columns:1.2fr 1.4fr 80px 1.2fr 34px;gap:8px;align-items:center}
.srow{display:grid;grid-template-columns:180px 1fr 34px;gap:8px}
@media(max-width:700px){.drow{grid-template-columns:1fr 1fr}.srow{grid-template-columns:1fr 1fr 34px}}
.checks{display:flex;flex-wrap:wrap;gap:6px}
.checks label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:99px;padding:4px 10px 4px 6px;font-size:13px;cursor:pointer;font-weight:500}
.checks label:has(input:checked){border-color:var(--brand);background:var(--brand-50);color:var(--brand)}
.checks input{margin:0}
.swatches{display:flex;gap:6px;flex-wrap:wrap}
.swatches label{width:26px;height:26px;border-radius:7px;cursor:pointer;border:2px solid transparent;display:block}
.swatches input{display:none}
.swatches label:has(input:checked){border-color:var(--text);box-shadow:0 0 0 2px var(--surface) inset}

/* popover */
.pop{position:fixed;z-index:90;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;min-width:220px;max-height:340px;overflow:auto}
.pop .opt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13.5px}
.pop .opt:hover{background:var(--surface-3)}
.pop .opt .tick{margin-left:auto;color:var(--brand);font-weight:700}
.pop input.inp{margin-bottom:4px;padding:6px 8px}

/* toast */
#toast-root{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:100;display:grid;gap:8px}
.toast{background:#152033;color:#fff;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow-lg);font-size:13.5px;animation:fade .2s}
.toast.err{background:var(--danger)}

/* daily */
.daily{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:1000px){.daily{grid-template-columns:1fr}}
.log-card{padding:14px 16px;border-bottom:1px solid var(--border)}
.log-card:last-child{border-bottom:0}
.log-card .txt{white-space:pre-wrap;font-size:13.5px;margin-top:4px}
.moods{display:flex;gap:6px}
.moods label{font-size:20px;cursor:pointer;padding:2px 6px;border-radius:8px;border:1px solid transparent;filter:grayscale(1);opacity:.6}
.moods label:has(input:checked){filter:none;opacity:1;border-color:var(--border);background:var(--surface-2)}
.moods input{display:none}
.space-head{padding:16px 20px 0;background:var(--surface)}
svg.ic{width:16px;height:16px;flex:none}
.nav a svg.ic{width:18px;height:18px}
.btn.menu-btn{display:none}
@media(max-width:900px){.btn.menu-btn{display:inline-flex}}
.kcard .foot{flex-wrap:wrap}
.date-inp{font-variant-numeric:tabular-nums}
.chk svg{opacity:0}
.chk:hover svg{opacity:.35;color:var(--success)}
.chk.on svg,.chk.on:hover svg{opacity:1;color:#fff}
.dash{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
@media(max-width:1100px){.dash{grid-template-columns:minmax(0,1fr)}}
.daily{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:1000px){.daily{grid-template-columns:minmax(0,1fr)}}
.cdetail{grid-template-columns:minmax(0,1fr) 340px}
@media(max-width:1100px){.cdetail{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.li{flex-wrap:wrap}.ph .row{flex-wrap:wrap}}

.modal>form{display:flex;flex-direction:column;flex:1;min-height:0}
.modal .mb{flex:1;min-height:0;background:var(--surface);border-radius:0 0 14px 14px}
.modal .mf{background:var(--surface);border-radius:0 0 14px 14px}
.prow{display:grid;grid-template-columns:1fr 2fr 90px 34px;gap:8px;align-items:start}
@media(max-width:700px){.prow{grid-template-columns:1fr 90px 34px}.prow textarea{grid-column:1/-1;grid-row:2}}
.pillar{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--border)}
.pillar:last-child{border-bottom:0}
.pillar .pd{grid-column:1/-1;font-size:13px;color:var(--muted);white-space:pre-wrap}
.ptag{font-size:11.5px;font-weight:600;color:var(--accent);white-space:nowrap}

.crumb{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;font-weight:550}
.crumb .sep{color:var(--muted);font-weight:400}
.crumb-box{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:10px}
.crumb-box .crumb{font-size:13.5px}
.tbl.sheet td{padding:8px 10px}
.tbl.sheet tr.is-today td{background:var(--accent-50)}
.tbl.sheet tr.is-done td{opacity:.55}

.sbox{width:18px;height:18px;border-radius:5px;border:2px solid var(--border-strong);display:inline-grid;place-items:center;cursor:pointer;background:var(--surface);flex:none;vertical-align:middle}
.sbox svg{width:12px;height:12px;opacity:0;color:#fff}
.sbox:hover{border-color:var(--brand)}
.sbox.on{background:var(--brand);border-color:var(--brand)}
.sbox.on svg{opacity:1}
.tbl tr.selected td{background:var(--brand-50)!important}
.kcard{position:relative}
.kcard>.sbox{position:absolute;top:9px;right:9px;opacity:0;transition:opacity .1s}
.kcard:hover>.sbox,.kcard>.sbox.on,.board.has-sel .kcard>.sbox{opacity:1}
.kcard.selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}
.kcard .meta{padding-right:22px}
.col-k .kh .sbox{width:16px;height:16px;margin-left:4px}
#bulk-root{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:66}
.bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);border-radius:14px;padding:8px 10px 8px 16px;max-width:calc(100vw - 32px)}
.bulk .inp{width:auto;padding:5px 8px;font-size:13px}
.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.danger-solid:hover{filter:brightness(.93)}
.sel-hint{margin-left:auto}
@media(max-width:1200px){.sel-hint{display:none}}
.comment .cm-x{opacity:0}.comment:hover .cm-x{opacity:1}
#bulk-root{left:0;right:0;transform:none;display:flex;justify-content:center;pointer-events:none;padding:0 16px}
#bulk-root .bulk{pointer-events:auto}

.tbl th.sortable{cursor:pointer;user-select:none}
.tbl th.sortable:hover,.tbl th.sortable.on{color:var(--brand)}
.tbl.clist td{padding:8px 10px}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.tc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.tc{border:1px solid var(--border);border-radius:10px;padding:12px;display:grid;gap:9px;align-content:start;background:var(--surface-2)}
.tc-chips{display:flex;flex-wrap:wrap;gap:5px}
.tc-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:550;padding:2px 8px 2px 6px;border-radius:99px;background:var(--surface);border:1px solid var(--border);color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-chip:hover{border-color:var(--brand);color:var(--brand)}
.tc-chip i{width:8px;height:8px;border-radius:50%;flex:none}
.tc-chip.paused{opacity:.55}

.tc-row{cursor:pointer;border-radius:8px;margin:0 -8px;padding:0 8px}
.tc-row:hover{background:var(--surface-2)}
.tc-row.open{background:var(--surface-2);padding-bottom:10px}
.tc-caret{color:var(--muted);display:inline-block;width:10px}


.hook-box{display:grid;gap:4px;margin:10px 0 4px}
.hook-box .inp{font-size:15px;font-weight:600}

.timer-chip{display:flex;align-items:center;gap:8px;background:var(--success-50);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);border-radius:10px;padding:4px 6px 4px 10px;max-width:420px}
.timer-chip .tname{color:var(--text);font-weight:600;font-size:13px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timer-chip .tclock{font-variant-numeric:tabular-nums;font-size:14px}
.dotlive{width:8px;height:8px;border-radius:50%;background:var(--success);flex:none;animation:pulse 1.4s infinite}
.dotlive.paused{background:var(--muted);animation:none}
@keyframes pulse{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.dotlive{animation:none}}
.time-box{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:12px 14px;display:grid;gap:10px;margin:6px 0 4px}
.tlogs{display:grid;gap:5px;border-top:1px dashed var(--border);padding-top:8px}
.cap-bar{position:relative;overflow:visible}
.cap-mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text-2);border-radius:2px}
.cap-track{margin:-4px 0 6px 30px}
.cap-tasks{display:grid;gap:4px;padding:4px 0 2px 30px}
.cap-tasks a{color:var(--text);gap:8px}
.cap-tasks a:hover{color:var(--brand)}
.daystrip{display:flex;align-items:center;gap:22px;padding:14px 18px;margin-bottom:16px;flex-wrap:wrap}
@media(max-width:900px){.timer-chip .tname{display:none}}
.card-h{flex-wrap:wrap;row-gap:6px}
.card-h .seg{margin-left:auto}

.shift-tag{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:99px;background:var(--accent-50);color:var(--accent);white-space:nowrap;margin-left:4px}
.shift-tag.lv{background:var(--surface-3);color:var(--muted)}
.card .tc-row .load-row{grid-template-columns:minmax(110px,1fr) 1.3fr auto}

.wp-row{display:grid;grid-template-columns:62px 1fr auto auto;gap:12px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--border);cursor:pointer;border-radius:8px}
.wp-row:last-of-type{border-bottom:0}
.wp-row:hover{background:var(--surface-2)}
.wp-row.live{background:var(--success-50)}
.wp-time{font-weight:700;font-variant-numeric:tabular-nums;font-size:13.5px;line-height:1.2}
.wp-time span{display:block;font-weight:500;color:var(--muted);font-size:12px}
.wp-meta{text-align:right;white-space:nowrap}
@media(max-width:700px){.wp-row{grid-template-columns:52px 1fr}.wp-meta,.wp-row .btn{grid-column:2}}

.ws-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ws-tiles>div{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:8px 10px;display:grid;gap:2px}
.ws-tiles span{font-size:11.5px;color:var(--muted);font-weight:600}
.ws-tiles b{font-size:17px;font-variant-numeric:tabular-nums}
@media(max-width:600px){.ws-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ws-tbl{margin-top:10px}.ws-tbl td{padding:7px 8px}
.checklist{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:grid;gap:4px}
.ck-row{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px dashed var(--border)}
.ck-row:last-of-type{border-bottom:0}.ck-row>div:first-child{flex:1}
.yn{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden;flex:none}
.yn label{padding:5px 14px;cursor:pointer;font-weight:600;font-size:13px;color:var(--muted)}
.yn label+label{border-left:1px solid var(--border-strong)}
.yn input{display:none}
.yn label.on-yes{background:var(--success);color:#fff}.yn label.on-no{background:var(--danger);color:#fff}
.ck-chip{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--surface-3);color:var(--muted);white-space:nowrap}
.ck-chip.yes{background:var(--success-50);color:var(--success)}.ck-chip.no{background:var(--danger-50);color:var(--danger)}
.btn.wa{color:#128c4b;border-color:#bfe8cf}.btn.wa:hover{background:#e9f8ef}

/* attendance */
.att-gate{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(135deg,var(--brand-50),#fff 55%,var(--accent-50))}
.att-card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 20px 60px rgba(0,40,80,.12);padding:32px;width:100%;max-width:640px;text-align:center}
.att-logo{height:46px;margin-bottom:14px}
.att-card h1{font-size:26px;margin:0 0 4px}
.att-card h3{margin:22px 0 12px;font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.att-hours{margin-top:14px;display:inline-block;background:var(--brand-50);color:var(--brand);border-radius:10px;padding:8px 14px;font-size:14px}
.att-main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.att-main.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.att-big,.att-opt{display:flex;flex-direction:column;align-items:center;gap:6px;border:2px solid var(--border);background:#fff;border-radius:14px;padding:18px 12px;cursor:pointer;font:inherit;color:var(--text);transition:.15s}
.att-big svg.ic{width:26px;height:26px}
.att-big b,.att-opt b{font-size:17px}
.att-big span,.att-opt span{font-size:12px;color:var(--muted);line-height:1.35}
.att-big em{color:var(--danger);font-style:normal;font-weight:600}
.att-big.present{border-color:var(--success);color:var(--success)}
.att-big.present:hover{background:var(--success);color:#fff}.att-big.present:hover span,.att-big.present:hover em{color:#fff}
.att-big.half{border-color:var(--brand);color:var(--brand)}
.att-big.half:hover,.att-big.half.on{background:var(--brand-50)}
.att-big.leave{opacity:.55;cursor:not-allowed}
.att-opt:hover{border-color:var(--brand);background:var(--brand-50)}
.att-halves{margin-top:14px;padding:14px;border:1px dashed var(--brand);border-radius:14px}
.att-foot{margin-top:18px;display:flex;justify-content:center;gap:8px}
.att-gate button:disabled{opacity:.6;cursor:default}
@media (max-width:560px){.att-main{grid-template-columns:1fr}.att-card{padding:22px 16px}}
.att-pill{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;background:var(--bg,#f1f4f8);color:var(--muted);white-space:nowrap}
.att-pill.success{background:var(--success-50);color:var(--success)}
.att-pill.brand{background:var(--brand-50);color:var(--brand)}
.att-pill.accent{background:var(--accent-50);color:var(--accent)}
.att-pill.danger{background:#fdecec;color:var(--danger)}
.att-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b8c0cc;margin-right:5px;vertical-align:middle}
.att-dot.ok{background:var(--success)}.att-dot.bad{background:var(--danger)}
.att-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}
.att-tiles.big{grid-template-columns:repeat(6,minmax(0,1fr))}
.att-tiles>div{background:#f6f8fb;border:1px solid var(--border);border-radius:10px;padding:8px;text-align:center}
.att-tiles.big>div{background:#fff;padding:12px}
.att-tiles b{display:block;font-size:20px}.att-tiles span{font-size:11px;color:var(--muted)}
.att-tiles .bad b{color:var(--danger)}
@media (max-width:700px){.att-tiles,.att-tiles.big{grid-template-columns:repeat(3,minmax(0,1fr))}}
.att-line{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--border)}
.att-line:first-of-type{border-top:0}

/* keyboard shortcuts */
kbd{display:inline-block;min-width:22px;padding:2px 6px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;background:var(--surface-2);font:600 12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text);text-align:center}
.kplus{margin:0 3px;color:var(--muted);font-size:11px}
.kb-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px}
.kb-sec{break-inside:avoid;margin-bottom:10px}
.kb-sec .sec-t{margin:4px 0 6px}
.kb-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--border);font-size:13.5px}
.kb-keys{white-space:nowrap}
@media (max-width:720px){.kb-help{grid-template-columns:1fr}.kb-btn{display:none}}
.kb-focus{outline:2px solid var(--brand)!important;outline-offset:-2px;background:var(--brand-50)!important}
tr.kb-focus td{background:var(--brand-50)!important}

/* daily quote */
#content:has(.dq){overflow-x:hidden}
.dq{margin:0 0 0 auto;max-width:430px;text-align:left;position:relative;padding:12px 18px 11px 46px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 24px rgba(0,50,90,.07);overflow:hidden}
.dq::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--brand),var(--accent))}
.dq::before{content:"\201C";position:absolute;left:14px;top:6px;font:italic 400 44px/1 Georgia,"Times New Roman",serif;color:var(--accent);opacity:.45}
.dq blockquote{margin:0;font:italic 400 16px/1.45 Georgia,"Iowan Old Style","Palatino Linotype","Times New Roman",serif;color:var(--text-2);letter-spacing:.005em;text-wrap:balance}
.dq blockquote b{font-style:normal;font-weight:650;font-family:inherit;color:var(--brand)}
.dq figcaption{margin-top:6px;font-size:10.5px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.dq figcaption::before{content:"";width:18px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,var(--brand),var(--accent))}
.dq.in{animation:dqSlide 1.1s cubic-bezier(.16,1,.3,1) .25s both}
.dq.in blockquote,.dq.in figcaption{animation:dqFade .7s ease 1s both}
@keyframes dqSlide{from{transform:translateX(110vw)}to{transform:none}}
@keyframes dqFade{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.dq.in,.dq.in blockquote,.dq.in figcaption{animation:none}}
@media (max-width:760px){.dq{margin:4px 0 0;max-width:none;width:100%}}

/* google drive */
.hold-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:650;color:#7a4b00;background:#fff3e0;border:1px solid #ffd9a8;border-radius:999px;padding:1px 8px;white-space:nowrap}
.hold-chip svg.ic{width:12px;height:12px}
.hold-note{display:flex;gap:10px;align-items:flex-start;background:#fff7ec;border:1px solid #ffd9a8;color:#6b4200;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.stock-big{display:flex;align-items:center;gap:12px}
.stock-big b{font-size:30px;line-height:1;color:var(--brand);min-width:36px}
.stock-big span{font-size:13px;color:var(--muted);line-height:1.35}
.stock-big.hold b{color:var(--accent)}.stock-big em{color:var(--accent);font-style:normal;font-weight:650}
.dv-sub{padding:0 16px 12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip-f{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--text-2)}
.chip-f b{margin-left:3px;color:var(--muted)}
.chip-f.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip-f.on b{color:#fff}
.dv-tbl .dv-name{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}
.dv-tbl tr.dv-nc{opacity:.6}
.dv-err{display:flex;gap:8px;align-items:flex-start;background:var(--danger-50);color:var(--danger);border-radius:10px;padding:9px 12px;font-size:13px}
.dv-steps{margin:0;padding-left:20px;display:grid;gap:6px;font-size:13.5px}
.kv2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kv2>div{display:grid;gap:2px;min-width:0}.kv2 code{word-break:break-all}
@media (max-width:760px){.kv2{grid-template-columns:1fr}}
.spinner.sm{width:14px;height:14px;border-width:2px;display:inline-block;vertical-align:middle;margin:0}

/* review workflow */
.wp-rest{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);padding:3px 0 3px 64px;border-left:2px dotted var(--border);margin-left:30px}
.wp-rest svg.ic{width:12px;height:12px}
.sm-list{display:grid;gap:6px;max-height:300px;overflow:auto}
.sm-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;cursor:pointer}
.sm-item:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.sm-item span.grow{display:grid;min-width:0}.sm-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-empty{display:flex;gap:12px;align-items:flex-start;background:var(--accent-50);border-radius:12px;padding:12px 14px}
.sm-empty svg.ic{width:22px;height:22px;color:var(--accent)}
.rv-box{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:14px;display:grid;gap:10px;background:var(--surface-2)}
.rv-box.internal{border-color:#c9b6fb;background:#f7f3ff}.rv-box.client{border-color:#ffd2a3;background:#fff7ee}.rv-box.sched{border-color:#9fe1df;background:#effbfb}
.rv-box.back{border-color:#ffd2a3;background:#fff7ee}.rv-box.done{border-color:#bfe8cc;background:#f1fbf4}
.rv-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rv-btns{display:flex;flex-wrap:wrap;gap:6px}
.btn.rv-success{background:var(--success);color:#fff;border-color:var(--success)}
.btn.rv-accent{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.rv-brand{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.rv-danger{background:#fff;color:var(--danger);border-color:var(--danger)}
.rv-files{display:flex;flex-wrap:wrap;gap:6px}
.rv-file{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:4px 9px;font-size:12.5px;color:var(--text);max-width:100%}
.rv-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.rv-hist{display:grid;gap:8px;border-top:1px dashed var(--border);padding-top:8px}
.rv-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:650;color:#9a4b00;background:#fff1e0;border-radius:6px;padding:2px 7px;margin:-2px 0 6px}
.rv-tag svg.ic{width:12px;height:12px}
.stock-tbl td{vertical-align:top}
.stock-n{font-size:18px;color:var(--brand)}.stock-n.hi{color:var(--accent)}
.cats{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.cat-chip{font-size:11px;background:var(--surface-3);border-radius:6px;padding:1px 7px;color:var(--text-2);white-space:nowrap}
.cat-chip b{color:var(--text)}
.sm-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sm-mode{display:grid;justify-items:start;gap:2px;text-align:left;border:2px solid var(--border);background:var(--surface);border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--text)}
.sm-mode svg.ic{width:20px;height:20px;color:var(--muted);margin-bottom:4px}
.sm-mode b{font-size:15px}.sm-mode span{font-size:12.5px;color:var(--muted)}
.sm-mode.on{border-color:var(--brand);background:var(--brand-50)}.sm-mode.on svg.ic{color:var(--brand)}
.sm-off{display:flex;gap:12px;align-items:flex-start;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.sm-off svg.ic{width:22px;height:22px;color:var(--brand);flex:none}
.sm-off.pend{background:#fff7ee;border-color:#ffd2a3}.sm-off.pend svg.ic{color:var(--accent)}
.sm-loading{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;padding:14px 2px}
@media (max-width:520px){.sm-modes{grid-template-columns:1fr}}
.att-main.four{grid-template-columns:repeat(2,minmax(0,1fr))}
.att-big.full{border-color:var(--accent);color:var(--accent)}.att-big.full:hover{background:var(--accent-50)}
.ae-list{display:grid;gap:6px}
.ae-opt{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:8px 12px;cursor:pointer;font-size:14px}
.ae-opt:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.seg.sm{margin-left:4px}
.seg button{border:0;background:transparent;padding:4px 10px;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer}
.seg button.on{background:var(--brand);color:#fff}

/* drag-select + context menu */
.marquee{position:fixed;z-index:80;border:1.5px solid var(--brand);background:rgba(0,93,149,.08);border-radius:4px;pointer-events:none}
body.noselect{user-select:none;-webkit-user-select:none}
.ctx-menu{position:fixed;z-index:90;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px rgba(10,30,60,.18);padding:6px;font-size:13.5px}
.ctx-menu button{display:flex;align-items:center;gap:9px;width:100%;border:0;background:none;font:inherit;color:var(--text);padding:7px 10px;border-radius:8px;cursor:pointer;text-align:left}
.ctx-menu button:hover{background:var(--surface-3)}
.ctx-menu button svg.ic{width:15px;height:15px;color:var(--muted)}
.ctx-menu button.danger{color:var(--danger)}.ctx-menu button.danger svg.ic{color:var(--danger)}
.ctx-h{font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:5px 10px 6px}
.ctx-sep{height:1px;background:var(--border);margin:5px 4px}
.ctx-sub{position:relative}
.ctx-arrow{margin-left:auto;color:var(--muted)}
.ctx-list{display:none;position:absolute;left:100%;top:-6px;min-width:190px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px rgba(10,30,60,.18);padding:6px}
.ctx-menu.flip .ctx-list{left:auto;right:100%}
.ctx-sub:hover .ctx-list{display:block}
.ctx-list .d{width:9px;height:9px;border-radius:50%;flex:none}
.wl-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) auto auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}
.wl-row:first-of-type{border-top:0}
.wl-row>div:nth-child(2){position:relative}
.wl-bar{display:flex}.wl-bar i{display:block;height:100%}
.wl-cap{position:absolute;top:-3px;width:2px;height:14px;background:var(--text);opacity:.45;border-radius:2px}
.wl-alert{display:flex;gap:10px;align-items:flex-start;background:var(--danger-50);color:#7f1d1d;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:8px}
.wl-alert svg.ic{flex:none;color:var(--danger)}
@media (max-width:700px){.wl-row{grid-template-columns:1fr auto}.wl-row>div:nth-child(2){grid-column:1/-1;order:3}}

/* work phases timeline */
.ph-chip{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:5px;padding:1px 6px;margin:0 3px;vertical-align:middle;white-space:nowrap}
.ph-chip.brand{background:var(--brand-50);color:var(--brand)}.ph-chip.accent{background:var(--accent-50);color:var(--accent)}.ph-chip.danger{background:var(--danger-50);color:var(--danger)}
.tl{border-top:1px dashed var(--border);padding-top:8px;display:grid;gap:2px}
.tl-sum{display:flex;flex-wrap:wrap;gap:12px;font-size:12.5px;margin-bottom:4px}
.tl-i{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;padding:5px 0 5px 18px;border-left:2px solid var(--border);margin-left:5px}
.tl-i svg.ic{width:14px;height:14px}
.tl-dot{position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--muted);border:2px solid var(--surface)}
.tl-dot.brand{background:var(--brand)}.tl-dot.accent{background:var(--accent)}.tl-dot.danger{background:var(--danger)}.tl-dot.ok{background:var(--success)}
.tl-i.ev b{font-weight:650}.tl-i.live{background:linear-gradient(90deg,var(--brand-50),transparent);border-radius:0 8px 8px 0}
.tl-note{flex-basis:100%;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 9px;margin-top:2px}
.tl-i .btn.icon.sm{width:22px;height:22px}

/* capacity check + moves */
.cc-box{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface-2);display:grid;gap:6px}
.cc-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px}
.cc-pct{margin-left:auto;font-weight:700;border-radius:6px;padding:1px 8px}
.cc-row.ok .cc-pct{background:var(--success-50);color:var(--success)}.cc-row.warn .cc-pct{background:var(--accent-50);color:var(--accent)}.cc-row.bad .cc-pct{background:var(--danger-50);color:var(--danger)}
.cc-tip{flex-basis:100%;color:var(--text-2);font-size:12px;padding-left:28px}
.cc-row.bad .cc-tip{color:var(--danger)}
.mv-list{display:grid;gap:6px;max-height:380px;overflow:auto;margin:6px 0}
.mv-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:8px 12px;cursor:pointer}
.mv-row:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.wl-alert .btn{flex:none}
.ga-list{display:grid;gap:4px;max-height:420px;overflow:auto}
.ga-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:6px 10px;cursor:pointer}
.ga-row.done{opacity:.6}.ga-row:has(input:checked){border-color:var(--brand);background:var(--brand-50);opacity:1}
.ga-st{min-width:40px;text-align:right}
.tm-list a{padding:5px 0}
/* occasions */
.oc-f button{font-size:12px;padding:4px 9px}
.oc-sugg{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-bottom:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}
.oc-sugg span{flex:1;display:flex;align-items:center;gap:8px}
.oc-list{padding:4px 0}
.oc-day{display:flex;gap:14px;padding:10px 16px;border-bottom:1px solid var(--border)}
.oc-day:last-child{border-bottom:0}
.oc-day.past{opacity:.55}
.oc-date{width:44px;flex:none;text-align:center;line-height:1.1;padding-top:4px}
.oc-date b{display:block;font-size:20px}
.oc-date span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.oc-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;margin:2px 0}
.oc-row.on{background:color-mix(in srgb,var(--success) 8%,transparent)}
.oc-name{font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.oc-kind{font-size:10.5px;padding:0 7px;font-weight:600}
.oc-who{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oc-made{width:58px;text-align:right;color:var(--success);font-weight:600}
.oc-inds{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chk-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:99px;padding:4px 10px;font-size:12.5px;cursor:pointer;background:var(--surface)}
.chk-chip:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.switch{position:relative;display:inline-block;width:36px;height:20px;flex:none;cursor:pointer}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:var(--border);border-radius:99px;transition:.2s}
.switch span:before{content:'';position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked+span{background:var(--success)}
.switch input:checked+span:before{transform:translateX(16px)}
.switch input:disabled+span{opacity:.5;cursor:not-allowed}
.note-bar{padding:8px 12px;border-radius:8px;background:color-mix(in srgb,#f59e0b 12%,var(--surface));color:#92400e}
.oc-chip{display:block;font-size:10.5px;line-height:1.35;padding:1px 6px;margin:0 0 3px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--oc);background:color-mix(in srgb,var(--oc) 11%,transparent);text-decoration:none;font-weight:600}
.oc-chip.on{background:var(--oc);color:#fff}
.oc-comp{display:inline-block;font-size:10px;font-weight:700;color:#b45309;background:#fef3c7;border-radius:4px;padding:0 5px;vertical-align:1px}
/* v2.4 */
.k-today{margin-left:8px;height:24px;padding:0 8px;font-size:11.5px;gap:4px}
.k-today.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.k-at{color:var(--brand)!important;font-weight:700}
.wp-part{display:inline-block;font-size:10.5px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:4px;padding:0 5px;margin-left:4px}
.ph-chip.fest{background:#fef3c7;color:#b45309}
.yn.locked{opacity:.85;pointer-events:none}
.yn.locked label{cursor:default}
.ck-pend{display:grid;gap:4px;margin-top:6px;padding:6px 8px;border-radius:8px;background:color-mix(in srgb,var(--danger) 6%,transparent)}
.ck-pend .row{gap:8px}
.ws-up{height:26px;padding:0 8px;font-size:12px;gap:4px}
.ws-dv.ok{background:var(--success-50);color:var(--success);display:inline-flex;align-items:center;gap:4px;text-decoration:none}
.ws-dv svg{width:13px;height:13px}
.ty-tbl td{padding:5px 6px}
.ma-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}
.ma-tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.ma-tile b{font-size:22px}.ma-tile b small{font-size:12px;font-weight:500;color:var(--muted)}
.ma-tile span{font-size:12px;color:var(--muted)}
.ma-tile.ok b{color:var(--success)}.ma-tile.half b{color:#7c3aed}.ma-tile.lv b{color:#0f766e}.ma-tile.ab b{color:var(--danger)}
.ma-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.ma-h{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;padding:0 4px}
.ma-day{min-height:78px;border:1px solid var(--border);border-radius:10px;padding:6px 8px;background:var(--surface);display:flex;flex-direction:column;gap:2px;font-size:12px}
.ma-day.out{border:0;background:none}
.ma-day[data-act]{cursor:pointer}.ma-day[data-act]:hover{border-color:var(--brand)}
.ma-day.today{box-shadow:0 0 0 2px var(--brand) inset}
.ma-dn{font-weight:700;font-size:13px}
.ma-st{font-weight:600}.ma-t{font-variant-numeric:tabular-nums;color:var(--text-2)}
.ma-late{color:var(--danger);font-weight:600;font-size:11px}
.ma-day.ok{background:color-mix(in srgb,var(--success) 7%,var(--surface))}.ma-day.ok .ma-st{color:var(--success)}
.ma-day.half{background:color-mix(in srgb,#7c3aed 7%,var(--surface))}.ma-day.half .ma-st{color:#7c3aed}
.ma-day.lv{background:color-mix(in srgb,#0f766e 8%,var(--surface))}.ma-day.lv .ma-st{color:#0f766e}
.ma-day.ab{background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.ma-day.ab .ma-st{color:var(--danger)}
.ma-day.off{opacity:.5}
@media(max-width:800px){.ma-tiles{grid-template-columns:repeat(3,1fr)}.ma-day{min-height:60px;padding:4px}}
.wp-time{white-space:nowrap;min-width:74px}
.col-k .kh{white-space:nowrap}

/* ---------- collapsible sidebar (v2.5) ---------- */
.logo-full{transition:opacity .35s cubic-bezier(.32,.72,0,1),transform .55s cubic-bezier(.32,.72,0,1);transform-origin:left center}
img.dk{display:none!important}
:root[data-theme="dark"] img.lt{display:none!important}
:root[data-theme="dark"] img.dk{display:inline-block!important}
:root[data-theme="dark"] .login-form img.dk{display:inline-block!important}
.logo-mark{position:absolute;left:4px;top:50%;width:30px!important;height:30px;margin-top:-15px;opacity:0;transform:scale(.6) rotate(-20deg);transition:opacity .35s cubic-bezier(.32,.72,0,1),transform .55s cubic-bezier(.32,.72,0,1);pointer-events:none}
.side-toggle{margin-left:auto;width:30px;height:30px;border-radius:8px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none;transition:background .2s,color .2s,transform .55s cubic-bezier(.32,.72,0,1)}
.side-toggle:hover{background:var(--surface-3);color:var(--text)}
.side-toggle svg{width:18px;height:18px}
.nav a{position:relative;white-space:nowrap;transition:background .2s,color .2s,padding .55s cubic-bezier(.32,.72,0,1)}
.nav a .lbl{transition:opacity .3s cubic-bezier(.32,.72,0,1),transform .5s cubic-bezier(.32,.72,0,1);display:inline-block}
.nav a .count{transition:all .4s cubic-bezier(.32,.72,0,1)}
.nav-sec{white-space:nowrap;transition:opacity .3s,max-height .5s cubic-bezier(.32,.72,0,1),padding .5s cubic-bezier(.32,.72,0,1);max-height:40px;position:relative}
.side-foot{transition:padding .5s cubic-bezier(.32,.72,0,1)}
.side-foot .who{transition:opacity .3s}
.shell.collapsed{--sidebar:72px}
.shell.collapsed .logo-full{opacity:0;transform:scale(.7) translateX(-10px);pointer-events:none}
.shell.collapsed .logo-mark{opacity:1;transform:none;pointer-events:auto}
.shell.collapsed .sidebar .brand{padding:18px 0 12px 16px}
.shell.collapsed .side-toggle{position:absolute;left:21px;top:62px;margin:0}
.shell.collapsed .nav{padding-top:40px}
.shell.collapsed .nav a{padding:8px 0 8px 17px}
.shell.collapsed .nav a .lbl{opacity:0;transform:translateX(-8px)}
.shell.collapsed .nav a .count{position:absolute;left:36px;top:2px;margin:0;padding:0 5px;font-size:10px;min-width:16px;text-align:center}
.shell.collapsed .nav-sec{opacity:0;max-height:9px;padding:4px 10px}
.shell.collapsed .nav-sec:after{content:"";position:absolute;left:14px;right:14px;top:4px;border-top:1px solid var(--border);opacity:1}
.shell.collapsed .nav .dot{margin:0 5.5px}
.shell.collapsed .side-foot{flex-direction:column;padding:10px 0;gap:6px}
.shell.collapsed .side-foot .who{display:none}
.nav-tip{position:fixed;z-index:200;transform:translateY(-50%);background:var(--text);color:var(--surface);font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:8px;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-lg);animation:tipIn .18s cubic-bezier(.32,.72,0,1)}
@keyframes tipIn{from{opacity:0;transform:translate(-4px,-50%)}to{opacity:1;transform:translateY(-50%)}}
@media(max-width:900px){.shell.collapsed{--sidebar:260px}.shell.collapsed .logo-full{opacity:1;transform:none}.shell.collapsed .logo-mark{opacity:0}.shell.collapsed .nav a .lbl,.shell.collapsed .nav-sec{opacity:1;transform:none}.side-toggle{display:none}.sidebar{width:260px}}
@media(prefers-reduced-motion:reduce){.sidebar,.nav a,.nav a .lbl,.logo-full,.logo-mark,.nav-sec{transition:none!important}}

/* ---------- dark mode (v2.5) ---------- */
html.theme-fade *,html.theme-fade *:before,html.theme-fade *:after{transition:background-color .35s ease,border-color .35s ease,color .35s ease!important}
:root[data-theme="dark"] .toast{background:#e7ecf4;color:#0c121c}
:root[data-theme="dark"] .btn.wa{color:#4ade80;border-color:#1f5a37}:root[data-theme="dark"] .btn.wa:hover{background:#15301f}
:root[data-theme="dark"] .att-card,:root[data-theme="dark"] .att-big,:root[data-theme="dark"] .att-opt,:root[data-theme="dark"] .att-tiles.big>div{background:var(--surface)}
:root[data-theme="dark"] .att-pill.danger{background:var(--danger-50)}
:root[data-theme="dark"] .att-tiles>div{background:var(--surface-2)}
:root[data-theme="dark"] .hold-chip{color:#ffc27a;background:#3a2612;border-color:#6b4210}
:root[data-theme="dark"] .hold-note{background:#2d1f0f;border-color:#6b4210;color:#ffc27a}
:root[data-theme="dark"] .rv-box.internal{border-color:#4c3a86;background:#1f1a33}
:root[data-theme="dark"] .rv-box.client,:root[data-theme="dark"] .rv-box.back,:root[data-theme="dark"] .sm-off.pend{border-color:#6b4210;background:#2a1e10}
:root[data-theme="dark"] .rv-box.sched{border-color:#1f5e5c;background:#102827}
:root[data-theme="dark"] .rv-box.done{border-color:#1f5a37;background:#11271a}
:root[data-theme="dark"] .btn.rv-danger{background:transparent}
:root[data-theme="dark"] .rv-tag{color:#ffc27a;background:#3a2612}
:root[data-theme="dark"] .oc-comp,:root[data-theme="dark"] .ph-chip.fest{background:#3a2a0c;color:#fbbf24}
:root[data-theme="dark"] .note-bar{color:#fcd34d}
:root[data-theme="dark"] .switch span:before{background:#e7ecf4}
:root[data-theme="dark"] img.logo-box,:root[data-theme="dark"] .logo-box img{background:#fff}
.confetti{position:fixed;width:0;height:0;z-index:300;pointer-events:none}
.confetti i{position:absolute;left:0;top:0;display:block;will-change:transform,opacity}
.confetti b{position:absolute;left:0;top:0;width:70px;height:70px;border-radius:50%;border:2px solid var(--success);box-shadow:0 0 18px color-mix(in srgb,var(--success) 50%,transparent)}
.pf-prefs{display:grid;gap:10px;margin-top:4px;padding-top:12px;border-top:1px solid var(--border)}
.danger-card{border-color:color-mix(in srgb,var(--danger) 30%,var(--border))}
.att-name{color:var(--text)}.att-name:hover b{color:var(--brand)}
/* employee of the month */
.eom-win{display:flex;align-items:center;gap:16px;padding:20px 22px;margin-bottom:14px;position:relative;overflow:hidden;background:linear-gradient(120deg,color-mix(in srgb,#facc15 16%,var(--surface)),var(--surface) 60%);border-color:color-mix(in srgb,#eab308 40%,var(--border))}
.eom-win .avatar{width:56px;height:56px;font-size:22px}
.eom-crown{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#fde047,#f59e0b);color:#7c2d12;box-shadow:0 8px 20px rgba(245,158,11,.35);flex:none}
.eom-crown svg{width:28px;height:28px}
.eom-name{font-size:24px;font-weight:750;letter-spacing:-.02em}
.eom-score{text-align:right}.eom-score b{font-size:40px;font-weight:800;color:#b45309;line-height:1}.eom-score span{display:block;font-size:12px;color:var(--muted)}
:root[data-theme="dark"] .eom-score b{color:#fbbf24}
.eom-mini{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:5px 12px 5px 6px}
.eom-tbl td{vertical-align:middle}
.eom-tbl td .eom-bar{display:inline-block;width:54px;height:6px;border-radius:9px;background:var(--surface-3);margin-right:6px;vertical-align:middle;overflow:hidden}
.eom-bar i{display:block;height:100%;background:var(--brand);border-radius:9px}
.eom-off{opacity:.55}
.eom-how{margin-top:14px}
.eom-params{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.eom-params>div{display:grid;gap:2px;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}
@media(max-width:900px){.eom-params{grid-template-columns:1fr}.eom-win{flex-wrap:wrap}}
.att-tabs{vertical-align:middle;margin-left:10px}
.att-tabs a{padding:3px 12px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.att-tabs a.on{background:var(--surface);color:var(--brand);box-shadow:var(--shadow)}
.eom-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
.eom-grow .card-b{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:center}
.eom-grow .eg-parts,.eom-grow .eg-tip{margin-top:0}
.side-foot .who .small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1100px){.eom-grow .card-b{grid-template-columns:1fr}}
.eg-top{display:flex;gap:16px;align-items:flex-end}
.eg-big{font-size:38px;font-weight:800;letter-spacing:-.02em;line-height:1.05}.eg-big small{font-size:14px;color:var(--muted);font-weight:600}
.eg-bars{flex:1;display:flex;gap:6px;align-items:flex-end;height:110px}
.eg-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;cursor:pointer;gap:3px}
.eg-col i{display:block;width:100%;max-width:26px;border-radius:6px 6px 3px 3px;background:color-mix(in srgb,var(--brand) 35%,var(--surface-3));transition:height .6s cubic-bezier(.32,.72,0,1)}
.eg-col.on i{background:linear-gradient(180deg,var(--accent),var(--brand))}
.eg-v{font-size:10.5px;font-weight:700;color:var(--text-2)}.eg-m{font-size:10.5px;color:var(--muted)}
.eg-parts{display:grid;gap:6px;margin-top:12px}
.eg-parts>div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.eg-parts .eom-bar{display:inline-block;width:90px;height:6px;border-radius:9px;background:var(--surface-3);margin-right:6px;vertical-align:middle;overflow:hidden}
.eg-tip{display:flex;gap:10px;margin-top:12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}
.eg-tip svg{color:var(--accent);flex:none;margin-top:2px}
.eom-me td{background:color-mix(in srgb,var(--brand) 6%,transparent)}
.logo-box.has-img{padding:0;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(16,24,40,.08)}
.logo-box.has-img img{width:100%;height:100%;object-fit:contain;display:block}
.logo-pick{display:flex;gap:14px;align-items:center;margin-bottom:12px;padding:10px 12px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface-2)}
.logo-pick label.btn{cursor:pointer}
.ph-chip.rv{background:#efe9fe;color:#7c3aed}.ph-chip.ca{background:#fff1e0;color:#c2410c}
:root[data-theme="dark"] .ph-chip.rv{background:#2a2145;color:#c4b5fd}:root[data-theme="dark"] .ph-chip.ca{background:#3a2612;color:#fdba74}
