:root{--ink:#10162e;--ink-soft:#2a3251;--gold:#a16207;--gold-bright:#c9a227;--paper:#f7f6f2;--surface:#fff;--muted:#6b7280;--line:#e7e5df;--green:#16a34a;--red:#dc2626;--font-display:"Space Grotesk",sans-serif;--font-body:"Inter",system-ui,sans-serif;--radius:12px;--radius-lg:18px;--shadow:0 6px 24px #10162e14;--shadow-lg:0 18px 50px #10162e24}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.025em;line-height:1.15}a{color:var(--gold);cursor:pointer;text-decoration:none}svg{stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}input,select,textarea,button{font-family:inherit}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:14px;font-weight:600;transition:transform .16s,box-shadow .16s,background .16s,border-color .16s;display:inline-flex}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #a1620766}.btn svg{fill:none;stroke:currentColor;width:17px;height:17px}.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{background:#8a5406;transform:translateY(-1px)}.btn-outline{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-outline:hover{border-color:var(--gold);color:var(--gold)}.btn-danger{background:var(--surface);color:var(--red);border-color:#dc26264d}.btn-danger:hover{background:#dc26260f}.btn-sm{min-height:36px;padding:0 13px;font-size:13px}.btn-icon{background:var(--surface);border-color:var(--line);width:34px;min-height:34px;color:var(--muted);justify-content:center;padding:0}.btn-icon:hover{color:var(--ink);border-color:#d6d3ca}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow);padding:34px}.login-card img{height:44px;margin:0 auto 20px;display:block}.login-card h1{text-align:center;margin-bottom:4px;font-size:22px}.login-card .sub{color:var(--muted);text-align:center;margin-bottom:24px;font-size:13.5px}.field{margin-bottom:14px}.field label{margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:44px;padding:10px 13px;font-size:14px}.field textarea{resize:vertical;min-height:88px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #a1620724}.g-btn{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;gap:10px;width:100%;min-height:46px;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.g-btn:hover{border-color:#cfccc3}.divider{color:var(--muted);align-items:center;gap:12px;margin:2px 0 16px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}#app{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--ink);color:#fff;flex-direction:column;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side-logo{cursor:pointer;width:auto;height:38px;margin:6px 8px 14px;display:block}.side-role{text-transform:uppercase;letter-spacing:.07em;color:#ffffff6b;padding:0 12px 10px;font-size:11px}.nav-item{color:#ffffffb8;cursor:pointer;border-left:3px solid #0000;border-radius:10px;align-items:center;gap:12px;margin-bottom:2px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .14s,color .14s;display:flex}.nav-item svg{fill:none;stroke:currentColor;flex:none;width:19px;height:19px}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;border-left-color:var(--gold-bright);background:#c9a22724}.nav-item.active svg{stroke:var(--gold-bright)}.nav-item .soon{color:var(--gold-bright);background:#c9a22729;border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:600}.nav-badge{color:#10162e;background:var(--gold-bright);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;display:inline-flex}.side-bottom{border-top:1px solid #ffffff14;margin-top:auto;padding-top:12px}.logout{color:#ffffffa8;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.logout:hover{color:#fff;background:#ffffff0f}.logout svg{fill:none;stroke:currentColor;width:17px;height:17px}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;justify-content:space-between;align-items:center;height:66px;padding:0 26px;display:flex;position:sticky;top:0}.gsearch{background:var(--paper);border:1px solid var(--line);width:320px;max-width:36vw;height:40px;color:var(--muted);border-radius:999px;align-items:center;gap:10px;padding:0 16px;display:flex}.gsearch svg{fill:none;stroke:currentColor;width:17px;height:17px}.gsearch input{width:100%;color:var(--ink);background:0 0;border:none;outline:none;font-size:14px}.top-right{align-items:center;gap:14px;display:flex}.role-select{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);height:40px;color:var(--ink);cursor:pointer;padding:0 12px;font-size:13.5px;font-weight:600}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:40px;height:40px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn svg{fill:none;stroke:currentColor;width:19px;height:19px}.icon-btn .dot{background:var(--red);border:1.5px solid var(--surface);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:9px}.avatar{background:var(--ink-soft);color:#fff;width:38px;height:38px;font-size:13px;font-weight:600;font-family:var(--font-display);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex}.content{padding:28px 26px 60px;overflow:auto}.page-head{margin-bottom:22px}.page-head h1{font-size:25px;font-weight:700}.page-head p{color:var(--muted);margin-top:3px;font-size:14px}.ph-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.stat-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}@media (max-width:1000px){.stat-row{grid-template-columns:repeat(2,1fr)!important}}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px}.stat-card .sc-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sc-ico{width:38px;height:38px;color:var(--gold);background:#c9a22724;border-radius:10px;justify-content:center;align-items:center;display:flex}.sc-ico svg{fill:none;stroke:currentColor;width:19px;height:19px}.sc-delta{color:var(--green);font-size:12px;font-weight:600}.sc-delta.down{color:var(--red)}.sc-num{font-family:var(--font-display);font-size:28px;font-weight:700}.sc-label{color:var(--muted);margin-top:2px;font-size:13px}.col2{grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:16px;display:grid}@media (max-width:900px){.col2{grid-template-columns:1fr}}.panel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px}.panel-card h3{justify-content:space-between;align-items:center;margin-bottom:14px;font-size:15px;font-weight:600;display:flex}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.list-row:last-child{border-bottom:none}.mini-av{background:var(--paper);width:34px;height:34px;color:var(--ink);font-size:12px;font-weight:600;font-family:var(--font-display);border:1px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.lr-name{font-size:14px;font-weight:600}.lr-sub{color:var(--muted);font-size:12.5px}.lr-right{color:var(--muted);text-align:right;margin-left:auto;font-size:12.5px}.badge{border:1px solid var(--line);color:var(--muted);background:var(--paper);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.gold{color:var(--gold);background:#a1620714;border-color:#a162072e}.st{white-space:nowrap;align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:inline-flex}.st .d{border-radius:50%;flex:none;width:8px;height:8px}.st.online{color:var(--green)}.st.online .d{background:var(--green)}.st.offline{color:#8a9099}.st.offline .d{background:#9aa0ab}.st.break{color:var(--gold)}.st.break .d{background:var(--gold-bright)}.st.leave{color:var(--ink);background:#a1620714;border:1px solid #a1620733;border-radius:999px;padding:3px 10px}.st.leave .d{background:var(--gold)}.tbl-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.tbl-search{background:var(--surface);border:1px solid var(--line);width:280px;max-width:60vw;height:40px;color:var(--muted);border-radius:999px;align-items:center;gap:9px;padding:0 14px;display:flex}.tbl-search svg{fill:none;stroke:currentColor;width:16px;height:16px}.tbl-search input{width:100%;color:var(--ink);background:0 0;border:none;outline:none;font-size:14px}.tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}@media (max-width:820px){.tbl-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.tbl-wrap table{min-width:620px}.tbl-toolbar{flex-wrap:wrap;gap:8px}.pager{flex-wrap:wrap;gap:8px 12px}table.dt{min-width:0;display:block}table.dt thead{display:none}table.dt tbody{display:block}table.dt tr{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:10px;display:block}table.dt tr:last-child td{border-bottom:1px solid var(--line)}table.dt tr td:last-child{border-bottom:none}table.dt td{text-align:right;justify-content:space-between;align-items:center;gap:14px;padding:9px 13px;display:flex}table.dt td:before{content:attr(data-label);color:var(--ink);text-align:left;text-transform:uppercase;letter-spacing:.03em;flex:0 0 42%;font-size:11px;font-weight:600}}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:12px 16px;font-size:11.5px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px;font-size:14px}tr:last-child td{border-bottom:none}.cell-user{align-items:center;gap:11px;display:flex}.row-actions{justify-content:flex-end;gap:8px;display:flex}.pager{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:13px;display:flex}.pager .per{align-items:center;gap:8px;display:flex}.pager select{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--ink);border-radius:8px;padding:0 8px;font-size:13px}.pager .pages{align-items:center;gap:6px;display:flex}.pg-btn{border:1px solid var(--line);background:var(--surface);min-width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:8px;font-size:13px;font-weight:600}.pg-btn:disabled{opacity:.4;cursor:default}.pg-btn.active{background:var(--gold);color:#fff;border-color:var(--gold)}.pulsewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);align-items:center;gap:20px;margin-bottom:16px;padding:15px 20px;display:flex;overflow:hidden}.pl-label .t{font-family:var(--font-display);font-size:14px;font-weight:600}.pl-label .s{color:var(--muted);font-size:12px}.pulse-svg{flex:1;height:52px}.pulse-svg svg{width:100%;height:100%;display:block}.pl-base{fill:none;stroke:var(--gold);stroke-width:2px;opacity:.18}.pl-spark{fill:none;stroke:var(--gold);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:90 1520;stroke-dashoffset:1610px;filter:drop-shadow(0 0 5px #a1620780);animation:3s linear infinite ecg}@keyframes ecg{to{stroke-dashoffset:0}}.clock-card{background:var(--ink);color:#fff;border-radius:var(--radius-lg);margin-bottom:18px;padding:26px;position:relative;overflow:hidden}.clock-card:after{content:"";background:radial-gradient(560px 280px at 88% 0,#c9a22733,#0000 60%);position:absolute;inset:0}.clock-in{z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px;display:flex;position:relative}.clock-time{font-family:var(--font-display);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:46px;font-weight:700}.clock-meta{color:#ffffffb8;margin-top:4px;font-size:13px}.clock-state{background:#ffffff1a;border-radius:999px;align-items:center;gap:8px;margin-top:10px;padding:4px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.clock-state .d{border-radius:50%;width:8px;height:8px}.clock-btns{z-index:2;flex-wrap:wrap;gap:10px;display:flex;position:relative}.signin-pulse{z-index:2;height:40px;margin-top:16px;position:relative}.signin-pulse svg{width:100%;height:100%;display:block}.sp-base{fill:none;stroke:var(--gold-bright);stroke-width:2px;opacity:.28}.sp-spark{fill:none;stroke:var(--gold-bright);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:80 1520;stroke-dashoffset:1600px;filter:drop-shadow(0 0 6px #c9a227b3);animation:2.6s linear infinite ecg}.balances{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;display:grid}@media (max-width:700px){.balances{grid-template-columns:repeat(2,1fr)}}.bal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px}.bal .n{font-family:var(--font-display);font-size:22px;font-weight:700}.bal .l{color:var(--muted);margin-top:2px;font-size:12px}.proj-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (max-width:900px){.proj-grid{grid-template-columns:1fr}}.proj-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;padding:20px;transition:transform .18s,box-shadow .18s,border-color .18s}.proj-card:hover{box-shadow:var(--shadow-lg);border-color:#dcd9d0;transform:translateY(-3px)}.proj-card h3{margin-bottom:6px;font-size:17px}.proj-card p{color:var(--muted);margin-bottom:14px;font-size:13px}.proj-meta{color:var(--muted);justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.kanban{grid-template-columns:repeat(4,1fr);align-items:start;gap:14px;display:grid}@media (max-width:1000px){.kanban{grid-template-columns:repeat(2,1fr)}}.kcol{border:1px solid var(--line);border-radius:var(--radius-lg);background:#10162e08;padding:12px}.kcol-head{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.kcol-head .cnt{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px}.kcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:9px;padding:12px}.klabel{color:var(--gold);background:#a162071a;border-radius:6px;margin-bottom:7px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-block}.kcard p{margin-bottom:9px;font-size:13px;font-weight:500}.kfoot{color:var(--muted);justify-content:space-between;align-items:center;font-size:11.5px;display:flex}.kmini{background:var(--ink-soft);color:#fff;width:24px;height:24px;font-size:10px;font-weight:600;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;display:flex}.chat{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:280px 1fr;gap:0;height:calc(100vh - 200px);min-height:460px;display:grid;overflow:hidden}.chat-back{display:none}@media (max-width:820px){.chat{grid-template-columns:1fr}.chat .conv,.chat.show-conv .chat-side{display:none}.chat.show-conv .conv{display:flex}.chat-back{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:32px;height:32px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;margin-right:2px;padding:0;font-size:24px;line-height:1;display:inline-flex}}.chat-side{border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.chat-search{border-bottom:1px solid var(--line);padding:12px}.chat-search input{border:1px solid var(--line);border-radius:999px;outline:none;width:100%;height:38px;padding:0 14px;font-size:13.5px}.chat-list{flex:1;overflow-y:auto}.chat-c{cursor:pointer;border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:11px 14px;display:flex}.chat-c:hover{background:var(--paper)}.chat-c.active{background:#a162070f}.chat-c .nm{font-size:13.5px;font-weight:600}.chat-c .stx{font-size:11.5px}.conv{flex-direction:column;min-height:0;display:flex}.conv-head{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:14px 18px;display:flex}.conv-body{background:var(--paper);flex-direction:column;flex:1;gap:10px;padding:18px;display:flex;overflow-y:auto}.bubble{border-radius:14px;max-width:70%;padding:10px 14px;font-size:13.5px;line-height:1.45}.bubble.them{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}.bubble.me{background:var(--gold);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble .mention{background:#ffffff40;border-radius:4px;padding:0 3px;font-weight:600}.bubble.them .mention{color:var(--gold);background:#a162071f}.bubble-row{align-self:flex-start;align-items:flex-end;gap:8px;max-width:85%;display:flex}.bubble-row .bubble.them{align-self:auto;max-width:100%}.conv-input{border-top:1px solid var(--line);gap:10px;padding:12px;display:flex}.conv-input input{border:1px solid var(--line);border-radius:999px;outline:none;flex:1;height:44px;padding:0 16px;font-size:14px}.conv-input input:focus{border-color:var(--gold)}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);max-width:640px;padding:24px}.form-card h3{margin-bottom:18px;font-size:16px}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (max-width:600px){.form-row{grid-template-columns:1fr}}.toggle{background:var(--line);cursor:pointer;border-radius:999px;flex:none;width:46px;height:26px;transition:background .18s;position:relative}.toggle.on{background:var(--gold)}.toggle .k{background:#fff;border-radius:50%;width:20px;height:20px;transition:left .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle.on .k{left:23px}.toggle-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.toggle-row:last-child{border-bottom:none}.toggle-row .tl{font-size:14px;font-weight:600}.toggle-row .ts{color:var(--muted);margin-top:2px;font-size:12.5px}.photo-row{align-items:center;gap:16px;margin-bottom:20px;display:flex}.photo{background:var(--ink-soft);color:#fff;width:72px;height:72px;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.radios{flex-wrap:wrap;gap:10px;display:flex}.radio-chip{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;padding:10px 14px;font-size:13.5px;font-weight:500;display:inline-flex}.radio-chip.sel{border-color:var(--gold);color:var(--gold);background:#a162070f}.overlay{z-index:100;background:#10162e73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-lg);max-height:90vh;padding:26px;overflow-y:auto}.modal h3{margin-bottom:4px;font-size:18px}.modal .msub{color:var(--muted);margin-bottom:18px;font-size:13px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}@media (max-width:600px){.modal{padding:18px}.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:auto;justify-content:center}}.toast{background:var(--ink);color:#fff;z-index:200;box-shadow:var(--shadow-lg);border-radius:999px;padding:12px 20px;font-size:13.5px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.upcoming{text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.up-ico{width:66px;height:66px;color:var(--gold);background:#c9a2271f;border-radius:18px;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.up-ico svg{fill:none;stroke:currentColor;width:30px;height:30px}.upcoming h2{margin-bottom:8px;font-size:22px}.upcoming p{color:var(--muted);max-width:400px;font-size:14px}.plan-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.plan-check{cursor:pointer;align-items:center;gap:8px;margin:7px 0;font-size:13px;display:flex}.plan-check input{width:auto;min-height:0}@media (max-width:860px){.plan-grid{grid-template-columns:1fr}}.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;position:relative}.plan.pop{border-color:var(--gold)}.plan .pb{background:var(--gold);color:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;position:absolute;top:-11px;left:20px}.plan h3{margin-bottom:6px;font-size:17px}.plan .pd{color:var(--muted);margin-bottom:14px;font-size:12.5px}.plan .amt{font-family:var(--font-display);font-size:30px;font-weight:700}.plan .per{color:var(--muted);font-size:12.5px}.plan .was{color:var(--muted);margin-top:2px;font-size:13px;text-decoration:line-through}@media (prefers-reduced-motion:reduce){.pl-spark,.sp-spark{animation:none}}.cbx{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink);align-items:center;gap:8px;font-size:13px;display:inline-flex}.cbx .bx{background:var(--surface);border:1.5px solid #cfccc3;border-radius:5px;flex:none;justify-content:center;align-items:center;width:19px;height:19px;transition:background .15s,border-color .15s;display:flex}.cbx.on .bx{background:var(--gold);border-color:var(--gold)}.cbx .bx svg{stroke:#fff;fill:none;stroke-width:3px;opacity:0;width:12px;height:12px}.cbx.on .bx svg{opacity:1}.cbx.locked{cursor:default}.cbx.locked .bx{background:var(--gold);border-color:var(--gold);opacity:.55}.cbx.locked .bx svg{opacity:1}.kcard{position:relative}.kcard:hover{border-color:#d3d0c7;box-shadow:0 5px 16px #10162e1a}.kcard.dragging{opacity:.4}.kcol.drop-hint{border-color:var(--gold);background:#a1620712;border-style:dashed}.kadd{width:100%;color:var(--muted);border-style:dashed;justify-content:center}.kebab{display:inline-flex;position:relative}.kebab-btn{cursor:pointer;width:26px;height:26px;color:var(--muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.kebab-btn:hover{background:var(--paper);color:var(--ink)}.kebab-btn svg{fill:currentColor;stroke:none;width:16px;height:16px}.kebab-menu{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:40;border-radius:10px;min-width:150px;padding:4px;position:absolute;top:32px;right:0;overflow:hidden}.kebab-item{cursor:pointer;width:100%;color:var(--ink);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:9px 12px;font-family:inherit;font-size:13px;display:flex}.kebab-item:hover{background:var(--paper)}.kebab-item.danger{color:var(--red)}.kebab-menu button{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:9px 13px;font-family:inherit;font-size:13px;display:flex}.kebab-menu button:hover{background:var(--paper)}.kebab-menu button.danger{color:var(--red)}.kebab-menu svg{fill:none;stroke:currentColor;width:15px;height:15px}.drawer-ov{z-index:100;background:#10162e6b;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);width:470px;max-width:94vw;height:100%;animation:.22s slidein;overflow-y:auto}@keyframes slidein{0%{opacity:.5;transform:translate(44px)}to{opacity:1;transform:none}}.drawer-head{border-bottom:1px solid var(--line);background:var(--surface);padding:20px 24px 16px;position:sticky;top:0}.drawer-body{padding:18px 24px 40px}.d-id{color:var(--muted);letter-spacing:.02em;font-size:12px;font-weight:600}.drawer h2{margin:6px 0 0;font-size:19px}.d-close{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;width:30px;height:30px;font-size:20px;line-height:1;position:absolute;top:18px;right:20px}.d-close:hover{background:var(--paper);color:var(--ink)}.d-field{margin-bottom:15px}.d-field label{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.d-field input,.d-field select,.d-field textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:100%;min-height:40px;padding:8px 12px;font-family:inherit;font-size:14px}.d-field input:focus,.d-field select:focus,.d-field textarea:focus{border-color:var(--gold);outline:none}.d-field textarea{resize:vertical;min-height:78px}.d-meta{border-bottom:1px solid var(--line);align-items:center;padding:11px 0;font-size:13.5px;display:flex}.d-meta .lab{width:120px;color:var(--muted);flex:none}.act{color:var(--muted);align-items:flex-start;gap:10px;padding:9px 0;font-size:12.5px;display:flex}.act .mini-av{width:26px;height:26px;font-size:10px}.act b{color:var(--ink);font-weight:600}.stpill{color:var(--ink);background:#10162e0f;border-radius:6px;align-items:center;gap:6px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.mp{position:relative}.mp-cur{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:7px 12px;font-size:13px;display:flex}.mp-cur:hover{border-color:#cfccc3}.mp-cur .caret{color:var(--muted);margin-left:auto}.mp-pop{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:60;border-radius:10px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.mp-search{border:none;border-bottom:1px solid var(--line);outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px}.mp-list{max-height:230px;overflow-y:auto}.mp-item{cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.mp-item:hover{background:var(--paper)}.mp-sec{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px 3px;font-size:11px;font-weight:600}.wchips{flex-wrap:wrap;gap:6px;display:flex}.wchip{background:var(--paper);border:1px solid var(--line);border-radius:20px;align-items:center;gap:6px;padding:3px 8px 3px 4px;font-size:12px;display:inline-flex}.wx{cursor:pointer;color:var(--muted);padding:0 2px;font-weight:700}.wx:hover{color:var(--red)}html,body{height:100%}.app-root{min-height:100vh;display:flex}.center-screen{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}a.reset{color:inherit}.soon-wrap{text-align:center;max-width:520px;margin:60px auto}.lp-nav{justify-content:space-between;align-items:center;max-width:1160px;margin:0 auto;padding:18px 24px;display:flex}.lp-nav img{height:34px}.lp-wrap{max-width:1160px;margin:0 auto;padding:0 24px}.lp-hero{text-align:center;padding:70px 0 30px}.lp-hero h1{max-width:900px;margin:0 auto 18px;font-size:clamp(34px,5vw,58px);line-height:1.05}.lp-hero p{color:var(--muted);max-width:620px;margin:0 auto 26px;font-size:18px}.lp-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.pulse-wrap{max-width:1000px;margin:44px auto 0}.pulse-wrap svg{width:100%;height:80px;display:block}.pl-base{fill:none;stroke:var(--line);stroke-width:2px}.pl-spark{fill:none;stroke:var(--gold);stroke-width:2.5px;stroke-dasharray:220;stroke-dashoffset:220px;animation:2.6s linear infinite pulse}@keyframes pulse{to{stroke-dashoffset:-1600px}}@media (prefers-reduced-motion:reduce){.pl-spark{stroke-dashoffset:0;animation:none}}.lp-strip{color:var(--muted);opacity:.8;flex-wrap:wrap;justify-content:center;gap:32px;padding:26px 0;font-weight:600;display:flex}.lp-section{padding:56px 0}.lp-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;display:grid}.lp-feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}.lp-feature .fi{width:42px;height:42px;color:var(--gold);background:#a162071a;border-radius:11px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.lp-feature h3{margin-bottom:6px;font-size:17px}.lp-feature p{color:var(--muted);font-size:14px}.lp-spot{grid-template-columns:1fr 1fr;align-items:center;gap:36px;display:grid}.lp-band{background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:44px}.lp-band h2{color:#fff}.lp-steps{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;margin-top:26px;display:grid}.lp-step .n{background:var(--gold);color:#fff;width:34px;height:34px;font-weight:700;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;margin-bottom:10px;display:flex}.lp-step p{color:#ffffffb8;font-size:14px}.price-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.price{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;position:relative}.price.pop{border-color:var(--gold);box-shadow:var(--shadow)}.price .pb{background:var(--gold);color:#fff;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700;position:absolute;top:-11px;left:26px}.price .amt{font-family:var(--font-display);margin:12px 0 2px;font-size:34px}.price .amt .per{color:var(--muted);font-size:14px;font-weight:400}.price .was{color:var(--muted);margin-bottom:14px;font-size:13px;text-decoration:line-through}.price .plan-limit{color:var(--ink);margin-bottom:10px;font-size:13.5px;font-weight:600}.pres-dot{border:2px solid var(--surface);background:#9ca3af;border-radius:50%;width:10px;height:10px;position:absolute;bottom:-1px;right:-1px}.pres-dot.online{background:#16a34a}.pres-dot.break{background:#d97706}.pres-dot.leave{background:#2563eb}.pres-dot.offline{background:#9ca3af}.mention-pop{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:40;border-radius:12px;max-height:240px;position:absolute;bottom:56px;left:12px;right:12px;overflow:hidden auto}.mention-item{cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.mention-item:hover,.mention-item.sel{background:#a1620714}.mention-item .nm{font-size:13.5px;font-weight:600}.plan .plan-limit{color:var(--ink);margin:8px 0;font-size:13px;font-weight:600}.plan .plan-feats{flex-direction:column;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.plan .plan-feats li{color:var(--muted);padding-left:20px;font-size:12.5px;line-height:1.35;position:relative}.plan .plan-feats li:before{content:"";border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);width:11px;height:6px;position:absolute;top:4px;left:0;transform:rotate(-45deg)}.price .plan-feats{flex-direction:column;gap:8px;margin:0 0 18px;padding:0;list-style:none;display:flex}.price .plan-feats li{color:var(--muted);padding-left:22px;font-size:13.5px;line-height:1.4;position:relative}.price .plan-feats li:before{content:"";border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);width:12px;height:7px;position:absolute;top:5px;left:0;transform:rotate(-45deg)}.faq{max-width:760px;margin:0 auto}.faq details{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:10px;padding:14px 18px}.faq summary{cursor:pointer;font-weight:600;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq p{color:var(--muted);margin-top:10px;font-size:14px}.lp-foot{background:var(--ink);color:#ffffffb3;margin-top:40px;padding:34px 0}.lp-foot .lp-wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.lp-foot a{color:inherit;text-decoration:none}.lp-foot a:hover{color:#fff}.legal-wrap{max-width:820px;margin:0 auto;padding:48px 24px 24px}.legal h1{margin-bottom:4px;font-size:clamp(28px,4vw,40px)}.legal .updated{color:var(--muted);margin-bottom:26px;font-size:14px}.legal .lead{color:var(--muted);margin-bottom:26px;font-size:17px;line-height:1.6}.legal h2{margin:30px 0 8px;font-size:20px}.legal p{color:var(--ink);margin:0 0 12px;font-size:15.5px;line-height:1.7}.legal ul{margin:0 0 12px;padding-left:20px}.legal li{color:var(--ink);margin-bottom:6px;font-size:15.5px;line-height:1.7}.legal a{color:var(--gold);font-weight:600}@media (max-width:760px){.lp-spot{grid-template-columns:1fr}}.set-wrap{grid-template-columns:220px 1fr;align-items:start;gap:22px;display:grid}.set-nav{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:2px;padding:8px;display:flex;position:sticky;top:82px}.set-nav button{text-align:left;cursor:pointer;color:var(--ink-soft);background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;padding:9px 12px;font-family:inherit;font-size:13.5px;font-weight:500;display:flex}.set-nav button:hover{background:var(--paper)}.set-nav button.on{color:var(--gold);background:#a162071a;font-weight:600}.set-nav button svg{fill:none;stroke:currentColor;flex:none;width:16px;height:16px}.set-panel .form-card{margin-bottom:16px}.set-panel h2{margin-bottom:4px;font-size:20px}.set-panel .set-lead{color:var(--muted);margin-bottom:16px;font-size:13.5px}.set-actions{align-items:center;gap:10px;margin-top:6px;display:flex}.hint{color:var(--muted);margin-top:6px;font-size:12px}.color-row{align-items:center;gap:12px;display:flex}.color-row input[type=color]{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;width:46px;height:38px;padding:2px}.color-swatch{border:1px solid var(--line);border-radius:6px;width:22px;height:22px}.pill-note{color:var(--gold);background:#a162071a;border-radius:20px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}@media (max-width:820px){.set-wrap{grid-template-columns:1fr}.set-nav{flex-flow:wrap;position:static}}.heat{flex-wrap:wrap;gap:5px;display:flex}.heat-cell{background:var(--line);border-radius:6px;width:26px;height:26px;position:relative}.heat-cell .tip{background:var(--ink);color:#fff;white-space:nowrap;z-index:5;border-radius:6px;padding:4px 7px;font-size:11px;display:none;position:absolute;bottom:120%;left:50%;transform:translate(-50%)}.heat-cell:hover .tip{display:block}.heat-legend{color:var(--muted);align-items:center;gap:16px;margin-top:14px;font-size:12px;display:flex}.heat-legend span{align-items:center;gap:6px;display:inline-flex}.heat-legend i{border-radius:4px;width:14px;height:14px;display:inline-block}.team-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.team-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;padding:20px;transition:border-color .14s,box-shadow .14s}.team-card:hover{border-color:var(--gold);box-shadow:var(--shadow)}.av-stack{margin:12px 0;display:flex}.av-stack .mini-av{border:2px solid var(--surface);margin-left:-8px}.av-stack .mini-av:first-child{margin-left:0}.av-more{border:2px solid var(--surface);background:var(--paper);color:var(--muted);margin-left:-8px}.bar-chart{align-items:flex-end;gap:8px;height:150px;display:flex}.bar-chart .bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bar-chart .bar .col{background:linear-gradient(180deg,var(--gold-bright),var(--gold));border-radius:5px 5px 0 0;width:100%;max-width:34px}.bar-chart .bar .bl{color:var(--muted);font-size:11px}.hbar-row{align-items:center;gap:12px;padding:9px 0;display:flex}.hbar-row .hl{flex:none;width:120px;font-size:13px}.hbar{background:var(--paper);border-radius:6px;flex:1;height:10px;overflow:hidden}.hbar .fill{background:linear-gradient(90deg,var(--gold-bright),var(--gold));border-radius:6px;height:100%}.hbar-row .hv{text-align:right;width:64px;color:var(--muted);flex:none;font-size:12px}.lv-breakdown{background:var(--paper);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;font-size:13px;display:flex}.lv-breakdown .sep{color:var(--muted)}.bal .barmini{background:var(--paper);border-radius:4px;height:6px;margin-top:9px;overflow:hidden}.bal .barmini .f{background:linear-gradient(90deg,var(--gold-bright),var(--gold));border-radius:4px;height:100%}.bal .left{color:var(--muted);margin-top:6px;font-size:11px}.bal .left b{color:var(--ink);font-weight:600}.empty{text-align:center;color:var(--muted);padding:44px 20px}.empty-ico{background:var(--paper);border:1px solid var(--line);width:52px;height:52px;color:var(--gold);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.empty-title{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:600}.empty-sub{margin-top:4px;font-size:13.5px}.kcol-empty{color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:10px;margin-bottom:8px;padding:14px 8px;font-size:12.5px}.hamburger{cursor:pointer;color:var(--ink);background:0 0;border:none;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:none}.hamburger svg{fill:none;stroke:currentColor;stroke-width:2px;width:22px;height:22px}.nav-overlay{display:none}@media (max-width:820px){#app{grid-template-columns:1fr}.sidebar{z-index:80;width:250px;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-lg);transform:translate(0)}.nav-overlay{z-index:70;background:#10162e73;position:fixed;inset:0}.hamburger{display:inline-flex}.topbar{gap:8px;padding:0 12px}.gsearch{flex:1;width:auto;max-width:none}.top-right{gap:8px}.role-select{max-width:150px}.content{padding:16px 14px 60px}.stat-row{grid-template-columns:repeat(2,1fr)}.kanban{-webkit-overflow-scrolling:touch;gap:12px;padding-bottom:6px;display:flex;overflow-x:auto}.kanban .kcol{flex:0 0 82vw;max-width:320px}.set-wrap,.chat{grid-template-columns:1fr}}@media (max-width:520px){.notif-pop{width:auto!important;max-width:none!important;position:fixed!important;top:60px!important;left:10px!important;right:10px!important}.clock-card{padding:18px}.stat-row{grid-template-columns:1fr!important}.gsearch{display:none}}.radio-chip.disabled{opacity:.45;cursor:not-allowed}a.nav-item,a.logout,a.avatar{color:inherit;text-decoration:none}.act-tabs{border-bottom:1px solid var(--line);gap:6px;margin:22px 0 14px;display:flex}.act-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:10px;padding:8px 4px;font-size:13px;font-weight:600}.act-tab.sel{color:var(--ink);border-bottom-color:var(--gold)}.cmt-box{gap:10px;margin-bottom:14px;display:flex}.log-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.prio{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.prio-high{color:var(--red);background:#dc26261a;border-color:#0000}.prio-medium{color:var(--gold);background:#a162071f;border-color:#0000}.prio-low{color:var(--green);background:#16a34a1f;border-color:#0000}.prio-none{background:var(--paper);color:var(--muted)}.tm-ov{z-index:60;background:#10162e8c;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow:auto}.tm{background:var(--surface);border-radius:18px;width:940px;max-width:100%;margin:auto;overflow:hidden;box-shadow:0 24px 60px #10162e59}.tm-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.tm-body{align-items:stretch;display:flex}.tm-main{flex:1;max-height:70vh;padding:22px;overflow:auto}.tm-side{border-left:1px solid var(--line);background:var(--paper);flex-shrink:0;width:320px;max-height:70vh;padding:20px 22px;overflow:auto}.tm-field{margin-bottom:14px}.tm-field>label{color:var(--muted);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.tm-field select,.tm-field input{width:100%}.tm-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 22px;display:flex}@media (max-width:760px){.tm-body{flex-direction:column}.tm-side{border-left:none;border-top:1px solid var(--line);width:auto;max-height:none}.tm-main{max-height:none}}.pending-banner{border:1px solid var(--gold);color:var(--ink);background:#a162071a;border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:13px;line-height:1.5}.cmt-box textarea{border:1px solid var(--line);font:inherit;border-radius:10px;padding:10px 12px}.chat-retention{text-align:center;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:999px;max-width:max-content;margin:0 auto 14px;padding:6px 12px;font-size:12px}.ptabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin:-6px 0 20px;display:flex}.ptab{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.ptab:hover{color:var(--ink)}.ptab.on{color:var(--ink);border-bottom-color:var(--gold)}.ptab:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.ptab-cnt{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.kadd-top{margin-bottom:10px}.kdue{color:var(--muted);margin:-4px 0 8px;font-size:11.5px}.kdue.late{color:var(--red);font-weight:600}.kreq{color:#b91c1c;background:#dc262614;border-radius:6px;margin:0 0 8px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-block}.tm-head{position:relative}.tm-close{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:22px;line-height:1;display:inline-flex}.tm-close:hover{background:var(--paper)}.tm-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.ro{color:var(--ink);align-items:center;min-height:36px;font-size:14px;display:flex}.ro.muted{color:var(--muted)}.lock-note{color:#4b5563;margin-top:4px;font-size:12px}.req-banner{background:#a162070f;border:1px solid #a162074d;border-radius:12px;margin-bottom:18px;padding:14px 16px;font-size:13.5px;line-height:1.5}.req-banner b{font-weight:600}.req-banner .acts{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.req-banner.rej{background:#dc26260d;border-color:#dc26264d}.req-banner.ok{background:#16a34a0f;border-color:#16a34a4d}.fld-err{color:var(--red);margin-top:6px;font-size:12px}@media (max-width:760px){.tm{overflow:visible}.tm-head{z-index:3;background:var(--surface);border-radius:18px 18px 0 0;position:sticky;top:0}}.al-who{color:var(--ink-soft);background:#a162070f;border:1px solid #a1620738;border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:13px}.al-filters{grid-template-columns:minmax(200px,2fr) repeat(3,minmax(140px,1fr));gap:10px;margin-bottom:10px;display:grid}.al-filters .field,.al-range .field{margin:0}.al-range{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:18px;display:flex}.al-range .field{min-width:150px}.al-chip{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600}.al-chip:hover{border-color:var(--ink-soft)}.al-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.al-chip:focus-visible,.al-task:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.al-summary{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-height:32px;margin-bottom:10px;font-size:13px;display:flex}.al-list{padding-top:14px;padding-bottom:14px}.al-day{color:var(--ink-soft);border-bottom:1px solid var(--line);margin:22px 0 6px;padding-bottom:6px;font-size:12px;font-weight:700}.al-list>div:first-child .al-day{margin-top:0}.al-row{border-bottom:1px solid var(--line);grid-template-columns:34px 1fr auto;align-items:start;gap:12px;padding:12px 0;display:grid}.al-text{color:var(--ink);font-size:14px;line-height:1.5}.al-text b{font-weight:600}.al-task{color:var(--gold);cursor:pointer;text-align:left;background:0 0;border:none;margin:-13px 0;padding:13px 0;font-family:inherit;font-size:13px;font-weight:600;line-height:18px;display:inline}.al-task:hover{text-decoration:underline}.al-meta .code{color:#4b5563;font-weight:600}.al-meta{color:#4b5563;margin-top:2px;font-size:12.5px}.al-detail{color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:10px;margin-top:8px;padding:8px 12px;font-size:13px}.al-when{color:#4b5563;white-space:nowrap;padding-top:2px;font-size:12.5px}.al-tag{vertical-align:1px;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.al-tag.ok{color:#166534;background:#16a34a1a}.al-tag.late{color:#b91c1c;background:#dc262614}.al-tag.wait{color:#8a5406;background:#a162071a}.al-more{justify-content:center;margin-top:16px;display:flex}.al-empty{text-align:center;color:var(--ink-soft);padding:36px 16px}@media (max-width:900px){.al-filters{grid-template-columns:1fr 1fr}}@media (max-width:560px){.al-filters{grid-template-columns:1fr}.al-row{grid-template-columns:30px 1fr}.al-when{grid-column:2;padding-top:0}.al-filters input,.al-filters select,.al-range input{font-size:16px}.al-range .field{flex:140px}}.rp-who{color:var(--ink-soft);background:#a162070f;border:1px solid #a1620738;border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:13px}.rp-ctrl{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:18px;display:flex}.rp-ctrl .field{min-width:150px;margin:0}.rp-chip{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600}.rp-chip:hover{border-color:var(--ink-soft)}.rp-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.rp-seg{border:1px solid var(--line);background:var(--surface);border-radius:12px;display:inline-flex;overflow:hidden}.rp-seg button{min-height:44px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0 16px;font-family:inherit;font-size:13.5px;font-weight:600}.rp-seg button.on{background:var(--paper);color:var(--ink);box-shadow:inset 0 -2px 0 var(--gold)}.rp-seg button+button{border-left:1px solid var(--line)}.rp-chip:focus-visible,.rp-seg button:focus-visible,.rp-row:focus-visible,.rp-th button:focus-visible,.rp-link:focus-visible,.rp-chart .hit:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.rp-kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.rp-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px}.rp-kpi .k{color:#4b5563;font-size:12.5px;font-weight:600}.rp-kpi .v{letter-spacing:-.02em;margin-top:4px;font-size:30px;font-weight:600;line-height:1.1}.rp-kpi .s{color:#4b5563;margin-top:4px;font-size:12.5px}.rp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:16px;padding:18px 20px}.rp-card h3{font-family:var(--font-body);letter-spacing:0;font-size:15px;font-weight:600}.rp-card .sub{color:#4b5563;margin-top:2px;font-size:12.5px}.rp-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.rp-legend{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:14px;font-size:12.5px;display:flex}.rp-legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.rp-chart{width:100%;position:relative}.rp-chart svg{max-width:100%;height:auto;display:block;overflow:visible}.rp-chart .grid{stroke:#eceae4;stroke-width:1px}.rp-chart .base{stroke:#c3c2b7;stroke-width:1px}.rp-chart .tick{fill:#6b6a65;font-variant-numeric:tabular-nums;font-size:11px}.rp-chart .hit{fill:#0000;outline:none}.rp-chart .col{transition:opacity .12s}.rp-chart .col.dim{opacity:.35}.rp-tip{pointer-events:none;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);z-index:5;border-radius:10px;min-width:150px;padding:8px 11px;font-size:12.5px;position:absolute}.rp-tip .t{color:var(--ink);margin-bottom:4px;font-weight:600}.rp-tip .r{color:var(--ink-soft);align-items:center;gap:8px;display:flex}.rp-tip .r b{color:var(--ink);font-variant-numeric:tabular-nums;min-width:18px}.rp-tip .r i{border-radius:1px;width:12px;height:2px;display:inline-block}.rp-scroll{margin:0 -4px;padding:0 4px;overflow-x:auto}.rp-tbl{border-collapse:collapse;width:100%;font-size:13.5px}.rp-tbl th{text-align:left;color:#4b5563;border-bottom:1px solid var(--line);white-space:nowrap;padding:0 10px 8px;font-size:12px;font-weight:600}.rp-tbl th.n,.rp-tbl td.n{text-align:right;font-variant-numeric:tabular-nums}.rp-th button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;min-height:32px;padding:0}.rp-th button[data-sort]:after{content:"";vertical-align:1px;border:4px solid #0000;margin-left:4px;display:inline-block}.rp-th button[data-sort=desc]:after{border-top-color:#4b5563;margin-top:4px}.rp-th button[data-sort=asc]:after{border-bottom-color:#4b5563;margin-bottom:4px}.rp-tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 10px}.rp-row{cursor:pointer}.rp-row:hover td{background:#fbfaf7}.rp-name{align-items:center;gap:10px;font-weight:600;display:flex}.rp-name .mini-av{width:30px;height:30px;font-size:11px}.rp-meter{align-items:center;gap:10px;min-width:150px;display:flex}.rp-meter .track{background:#dce9fa;border-radius:4px;flex:1;height:8px;overflow:hidden}.rp-meter .fill{background:#2a78d6;border-radius:4px;height:100%}.rp-meter .pct{font-variant-numeric:tabular-nums;text-align:right;min-width:38px;font-weight:600}.rp-meter.prog .track{background:#edebe5}.rp-meter.prog .fill{background:#6b7280}.rp-tbl .muted,.rp-card .muted{color:#4b5563}.rp-over{color:#b91c1c;font-weight:600}.rp-foot{color:#4b5563;margin-top:12px;font-size:12.5px;line-height:1.55}.rp-empty{text-align:center;color:var(--ink-soft);padding:30px 16px}.rp-tag{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.rp-tag.ok{color:#166534;background:#16a34a1a}.rp-tag.late{color:#b91c1c;background:#dc262614}.rp-tag.wait{color:#8a5406;background:#a162071a}.rp-tag.gray{color:#4b5563;background:#f1f0ec}.rp-ov{z-index:60;background:#10162e61;justify-content:flex-end;display:flex;position:fixed;inset:0}.rp-dr{background:var(--surface);width:min(560px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.rp-dr-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 14px;display:flex}.rp-dr-h h2{font-size:20px}.rp-dr-h .sub{color:#4b5563;margin-top:2px;font-size:13px}.rp-dr-b{padding:16px 22px 28px;overflow-y:auto}.rp-mini{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;display:grid}.rp-mini>div{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.rp-mini .k{color:#4b5563;font-size:12px;font-weight:600}.rp-mini .v{margin-top:2px;font-size:20px;font-weight:600}.rp-sec{color:var(--ink-soft);border-bottom:1px solid var(--line);margin:18px 0 6px;padding-bottom:6px;font-size:12px;font-weight:700}.rp-task{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:10px;padding:10px 0;font-size:13.5px;display:grid}.rp-task .mm{color:#4b5563;margin-top:2px;font-size:12.5px}.rp-task .rr{text-align:right}.rp-link{line-height:18px;font:inherit;color:var(--gold);cursor:pointer;text-align:left;background:0 0;border:none;margin:-13px 0;padding:13px 0;font-weight:600}.rp-link:hover{text-decoration:underline}@media (max-width:1000px){.rp-kpis{grid-template-columns:1fr 1fr}}@media (max-width:560px){.rp-kpis{gap:8px}.rp-kpi{padding:12px 14px}.rp-kpi .v{font-size:24px}.rp-ctrl .field{flex:140px}.rp-ctrl input,.rp-ctrl select{font-size:16px}.rp-seg{width:100%}.rp-seg button{flex:1}.rp-tbl .hide-sm{display:none}.rp-meter{min-width:96px}.rp-card{padding:14px}}.del-warn{color:var(--ink);background:#dc26260d;border:1px solid #dc262647;border-radius:12px;margin:14px 0 4px;padding:12px 14px;font-size:13.5px;line-height:1.5}.del-warn b{font-weight:600}.del-confirm{margin-top:14px}.del-confirm label b{font-weight:700}.del-hint{color:#4b5563;margin-top:6px;font-size:12.5px}.btn-danger.del-solid{color:#fff;background:#b91c1c;border-color:#b91c1c}.btn-danger.del-solid:hover{background:#991b1b}.btn-danger[disabled]{opacity:.45;cursor:not-allowed}@media (max-width:560px){.del-confirm input{font-size:16px}}.req-banner.gray{border-color:var(--line);background:var(--paper)}.kstack{align-items:center;display:flex}.kstack img,.kstack span{border:2px solid var(--surface);object-fit:cover;width:26px;height:26px;font-size:10px;font-weight:600;font-family:var(--font-display);background:var(--ink-soft);color:#fff;border-radius:50%;justify-content:center;align-items:center;margin-left:-8px;display:inline-flex}.kstack img:first-child,.kstack span:first-child{margin-left:0}.kstack .more{background:var(--paper);color:var(--ink);border-color:var(--surface)}.pager .pg-gap{text-align:center;min-width:20px;color:var(--muted)}.att-sec{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:14px 0 4px;padding:12px 14px}.att-sec.over,.att-drop.over,.att-cbox.over{border-color:var(--gold);background:#a162070f}.att-sec-head{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.att-none{color:#4b5563;margin-top:6px;font-size:13px}.att-drop{background:var(--paper);color:var(--ink-soft);border:1.5px dashed #d6d3ca;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;font-size:13.5px;display:flex}.att-hint{color:#4b5563;font-size:12.5px}.att-clip{border:1px solid var(--line);cursor:pointer;min-width:44px;min-height:44px;color:var(--ink-soft);background:#fff;border-radius:10px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600}.att-clip:hover{border-color:var(--ink-soft)}.att-clip:disabled{opacity:.6;cursor:default}.att-list{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.att{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:10px;min-width:0;max-width:280px;min-height:54px;padding:6px 46px 6px 6px;display:flex;position:relative}.att-thumb{cursor:zoom-in;background:0 0;border:none;border-radius:6px;flex:none;padding:0}.att-thumb img,.att-thumb-img{object-fit:cover;background:var(--paper);border-radius:6px;width:56px;height:42px;display:block}.att-ico{background:var(--paper);border:1px solid var(--line);width:42px;height:42px;color:var(--ink-soft);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:10.5px;font-weight:700;text-decoration:none;display:flex}.att-meta{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.att-nm{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:170px;font-size:13px;font-weight:600;display:block;overflow:hidden}.att-link{cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:none}.att-link:hover{text-decoration:underline}.att-sz{color:#4b5563;white-space:nowrap;text-overflow:ellipsis;max-width:170px;font-size:12px;overflow:hidden}.att-x{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:8px;width:40px;height:40px;font-size:19px;line-height:1;position:absolute;top:50%;right:3px;transform:translateY(-50%)}.att-x:hover{background:var(--paper);color:var(--ink)}.att-err{color:#b91c1c;margin-top:8px;font-size:13px}.att-cbox{border-radius:10px;flex:1;min-width:0}.att-crow{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.att-lb{z-index:150;background:#10162edb;justify-content:center;align-items:center;padding:72px 16px 24px;display:flex;position:fixed;inset:0}.att-lb img{object-fit:contain;background:#fff;border-radius:8px;max-width:100%;max-height:100%}.att-lb-bar{justify-content:flex-end;align-items:center;gap:8px;display:flex;position:absolute;top:14px;left:16px;right:16px}.att-lb-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-right:auto;font-size:14px;font-weight:600;overflow:hidden}.att-lb-btn{min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border:none;border-radius:10px;flex:none;align-items:center;padding:0 16px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}@media (max-width:760px){.att{max-width:100%}.att-nm,.att-sz{max-width:52vw}}.bell-head{border-bottom:1px solid var(--line);font-weight:600;font-family:var(--font-display);justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:6px 8px 6px 16px;display:flex}.bell-all{border:1px solid var(--line);min-height:40px;font:600 13px var(--font-body,inherit);color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;padding:0 12px;font-family:inherit}.bell-all:hover{border-color:var(--ink-soft)}.bell-list{overscroll-behavior:contain;max-height:min(60vh,460px);overflow-y:auto}.new-banner{color:var(--ink);background:#fff8e8;border:1px solid #ebd9a8;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:8px 10px 8px 14px;font-size:13.5px;display:flex}.new-banner .btn{min-height:40px}.kcard.knew{border-left:3px solid var(--gold)}.kchg{color:#8a5406;align-items:center;gap:6px;margin:2px 0 4px;font-size:12.5px;font-weight:600;display:flex}.kchg:before{content:"";background:var(--gold);border-radius:50%;flex:none;width:7px;height:7px}.new-pill{vertical-align:middle;color:#8a5406;font-size:12px;font-weight:700;font-family:var(--font-body,inherit);background:#a162071f;border-radius:999px;margin-left:8px;padding:2px 9px;display:inline-block}.tm-save{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;min-width:0;display:flex}.save-state{color:#4b5563;font-size:13.5px}.save-state.dirty{color:#8a5406;font-weight:600}.save-state.ok{color:#15803d;font-weight:600}.save-state.err{color:#b91c1c;max-width:420px;font-weight:600}.btn.btn-saved{color:#fff;background:#15803d;border-color:#15803d;align-items:center;gap:7px;display:inline-flex}.lbl-chip{text-overflow:ellipsis;white-space:nowrap;border-radius:6px;align-items:center;max-width:100%;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.35;display:inline-flex;overflow:hidden}.lbl-chip.sm{margin-bottom:7px;padding:2px 8px;font-size:11px}.lbl-dd{position:relative}.lbl-dd-btn{border:1px solid var(--line);cursor:pointer;width:100%;min-height:44px;color:var(--ink);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:15px;display:flex}.lbl-dd-btn:disabled{opacity:.6;cursor:default}.lbl-none{color:#4b5563;font-size:14px}.lbl-pop{border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:70;background:#fff;border-radius:12px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;right:0}.lbl-search{border:1px solid var(--line);border-radius:8px;width:100%;min-height:40px;margin-bottom:6px;padding:0 10px;font-family:inherit;font-size:16px}.lbl-opts{max-height:260px;overflow-y:auto}.lbl-opt{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:40px;padding:0 8px;display:flex}.lbl-opt:hover,.lbl-opt.sel{background:var(--paper)}.lbl-empty{color:#4b5563;padding:8px;font-size:13px}.lbl-manage{color:#8a5406;border-top:1px solid var(--line);margin-top:4px;padding:9px 8px 6px;font-size:13px;font-weight:600;text-decoration:none;display:block}.lbl-tab{max-width:820px}.lbl-row{border-top:1px solid var(--line);grid-template-columns:minmax(140px,1fr) auto 104px auto;align-items:center;gap:10px;padding:8px 0;display:grid}@media (max-width:900px){.lbl-row{grid-template-columns:1fr auto}.lbl-row .lbl-sw{grid-column:1/-1}}.lbl-row:first-of-type{border-top:none}.lbl-name{border:1px solid var(--line);border-radius:10px;width:100%;min-width:0;min-height:44px;padding:0 12px;font-family:inherit;font-size:16px;font-weight:600}.lbl-sw{flex-wrap:wrap;gap:0;display:flex}.lbl-sw button{cursor:pointer;border:7px solid #fff;border-radius:50%;width:40px;height:40px;padding:0;box-shadow:inset 0 0 0 1px #00000014}.lbl-sw button.on{box-shadow:0 0 0 2px var(--ink);border-width:5px}.lbl-used{color:#4b5563;min-width:100px;font-size:12.5px}.lbl-rm{border:1px solid var(--line);cursor:pointer;color:#9b2c22;background:#fff;border-radius:10px;min-height:44px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600}.lbl-add{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.lbl-add input{border:1px solid var(--line);border-radius:10px;flex:1;min-width:180px;min-height:44px;padding:0 12px;font-family:inherit;font-size:16px}.att-ask{z-index:2;color:var(--ink);border:2px solid var(--gold-bright);background:#fff;border-radius:14px;margin-top:16px;padding:14px 16px;position:relative}.att-ask h4{font-family:var(--font-display);margin:0 0 4px;font-size:17px}.att-ask-sub{color:#4b5563;margin-bottom:12px;font-size:13.5px;line-height:1.5}.att-count{font-variant-numeric:tabular-nums;color:var(--ink)}.att-ask-btns{flex-wrap:wrap;gap:10px;display:flex}.att-seg{flex-wrap:wrap;gap:6px;display:flex}.att-seg button{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:600}.att-seg button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#f2f1ec}.att-seg button:focus-visible{outline-offset:2px;outline:3px solid #a1620773}.att-note{color:#3f4652;background:#f2f1ec;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;line-height:1.5}.att-note.blue{color:#173f73;background:#e3eefb}.att-note.red{color:#7f241b;background:#fbe6e4}.badge.att-k.blue{color:#173f73;background:#e3eefb;border-color:#c9dbf3}.badge.att-k.red{color:#7f241b;background:#fbe6e4;border-color:#f2c9c4}.att-reason{color:#4b5563;font-style:italic}.att-rec{border-top:1px solid var(--line);max-height:52vh;margin-bottom:6px;overflow-y:auto}.att-day{border-bottom:1px solid var(--line);padding:12px 0}.att-day h4{font-family:var(--font-display);margin:0 0 6px;font-size:14px}.att-sess+.att-sess{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px}.att-ev{flex-wrap:wrap;align-items:baseline;gap:10px;padding:3px 0;font-size:13.5px;display:flex}.att-ev time{font-variant-numeric:tabular-nums;color:#4b5563;min-width:46px;font-size:13px}.att-sum{color:#4b5563;margin-top:6px;padding-left:56px;font-size:13px}.sw-card{max-width:420px}.sw-btns{flex-direction:column;gap:10px;display:flex}.sw-btns .btn{justify-content:center;width:100%}@media (max-width:760px){#att-why,#att-end-r,#late-grace,#hrs-s,#hrs-e,.field input[type=datetime-local]{font-size:16px}.att-sum{padding-left:0}}.att-hours{z-index:2;color:#ffffffdb;border-top:1px solid #ffffff24;flex-wrap:wrap;gap:6px 20px;margin-top:16px;padding-top:14px;font-size:13.5px;display:flex;position:relative}.att-hours b{color:#fff;font-weight:600}.att-htag{color:#f1d98a;background:#c9a22733;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.att-mh{border-collapse:collapse;width:100%;font-size:14px}.att-mh td{border-top:1px solid var(--line);vertical-align:top;padding:10px 0}.att-mh td:first-child{color:#4b5563;width:42%}.att-mh b{font-weight:600}.bf{background:var(--surface);border:1px solid var(--line);border-radius:18px;margin-bottom:12px;position:relative;box-shadow:0 1px #10162e08,0 10px 30px -18px #10162e40}.bf-top{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 12px 10px;display:flex}.bf-search{background:#f2f0ea;border:1px solid #0000;border-radius:12px;flex:220px;align-items:center;gap:10px;min-width:200px;min-height:44px;padding:0 10px 0 12px;transition:border-color .15s,background .15s;display:flex}.bf-search:focus-within{background:#fff;border-color:#d9d5cb;box-shadow:0 0 0 3px #a1620724}.bf-search svg{stroke:#6b7280;fill:none;stroke-width:2px;flex:none;width:17px;height:17px}.bf-search input{min-width:0;min-height:42px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:14.5px}.bf-kbd{color:#4b5563;background:#fff;border:1px solid #d9d5cb;border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:600}.bf-x{cursor:pointer;color:#4b5563;background:0 0;border:0;border-radius:50%;width:32px;height:32px;font-size:18px}.bf-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bf-vsep{background:var(--line);width:1px;height:28px}.bf-dd{position:relative}.bf-pill{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border-radius:12px;align-items:center;gap:8px;padding:0 11px;font-family:inherit;font-size:13.5px;font-weight:600;transition:border-color .15s,box-shadow .15s,background .15s;display:inline-flex}.bf-pill:hover{border-color:#d9d5cb;box-shadow:0 2px 8px -4px #10162e40}.bf-pill:focus-visible,.bf-qc:focus-visible,.bf-fld button:focus-visible,.bf-pre button:focus-visible{outline:none;box-shadow:0 0 0 3px #a1620766}.bf-ic{color:#4b5563;display:inline-flex}.bf-ic svg,.bf-cv svg{stroke:currentColor;fill:none;stroke-width:2px;width:16px;height:16px}.bf-cv{color:#6b7280;display:inline-flex}.bf-cv svg{width:14px;height:14px}.bf-val{font-weight:500}.bf-pill.on{background:var(--ink);border-color:var(--ink);color:#fff}.bf-pill.on .bf-ic,.bf-pill.on .bf-cv,.bf-pill.on .bf-val{color:#c9cfe3}.bf-pill.on .bf-val b{color:#fff;font-weight:600}.bf-pill.bf-date{background:#fffbf0;border-color:#e7d6a8}.bf-pill.bf-date .bf-ic{color:var(--gold)}.bf-pill.bf-date.on{color:#5b3a04;background:#fff3d6;border-color:#e2b55a}.bf-pill.bf-date.on .bf-ic{color:var(--gold)}.bf-pill.bf-date.on .bf-cv,.bf-pill.bf-date.on .bf-val{color:#7a4a05}.bf-pill.bf-date.on .bf-val b{color:#5b3a04}.bf-pop{border:1px solid var(--line);z-index:30;background:#fff;border-radius:16px;min-width:260px;max-height:340px;padding:8px;animation:.16s ease-out bfIn;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto;box-shadow:0 24px 60px -20px #10162e59,0 2px 6px #10162e0f}@keyframes bfIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.bf-opt{cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:44px;padding:0 8px;font-size:14px;display:flex}.bf-opt:hover{background:var(--paper)}.bf-opt input{width:18px;height:18px;accent-color:var(--ink);flex:none}.bf-av{color:#3f4652;object-fit:cover;background:#eceae3;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:10.5px;font-weight:700;display:inline-flex}.bf-sep{background:var(--line);height:1px;margin:4px 0}.bf-dp{grid-template-columns:200px 1fr;width:580px;max-height:none;padding:0;display:grid;overflow:visible}.bf-dp-l{border-right:1px solid var(--line);background:#fbfaf7;border-radius:16px 0 0 16px;padding:14px}.bf-dp-r{padding:14px 16px}.bf-h{letter-spacing:.05em;text-transform:uppercase;color:#4b5563;margin-bottom:8px;font-size:12px;font-weight:700}.bf-fld{flex-direction:column;gap:4px;display:flex}.bf-fld button{min-height:48px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:flex-start;padding:4px 12px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.bf-fld button small{color:#4b5563;font-size:12px;font-weight:500}.bf-fld button:hover{background:#f2f0ea}.bf-fld button[aria-pressed=true]{background:#fff;border-color:#d9d5cb;box-shadow:0 1px 3px #10162e14}.bf-pre{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;display:grid}.bf-pre button{border:1px solid var(--line);cursor:pointer;text-align:left;min-height:48px;color:var(--ink);background:#fff;border-radius:10px;flex-direction:column;justify-content:center;padding:4px 12px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.bf-pre button span{color:#4b5563;font-size:11.5px;font-weight:500}.bf-pre button[aria-pressed=true]{background:#fff8e6;border-color:#e2b55a;box-shadow:inset 0 0 0 1px #e2b55a}.bf-cust{gap:8px;margin-bottom:12px;display:flex}.bf-cust label{color:#4b5563;flex:1;font-size:12px;font-weight:600}.bf-cust input{border:1px solid #d9d5cb;border-radius:10px;width:100%;min-height:44px;margin-top:4px;padding:0 10px;font-family:inherit;font-size:14px;display:block}.bf-rule{color:#4b5563;background:#f2f0ea;border-radius:12px;margin-bottom:12px;padding:10px 12px;font-size:13px;line-height:1.45}.bf-rule b{color:var(--ink);margin-bottom:2px;font-size:13.5px;display:block}.bf-dp-f{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.bf-done{background:var(--ink);color:#fff;min-height:44px}.bf-bot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 12px;display:flex}.bf-qlab{color:#4b5563;margin-right:2px;font-size:12px;font-weight:600}.bf-quick{flex-wrap:wrap;gap:6px;display:flex}.bf-qc{min-height:36px;color:var(--ink);cursor:pointer;background:#f2f0ea;border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.bf-qc:hover{background:#ece9e1}.bf-qn{color:#4b5563;background:#fff;border-radius:999px;padding:0 7px;font-size:11.5px;font-weight:700;line-height:20px}.bf-qc[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#fff}.bf-qc[aria-pressed=true] .bf-qn{background:var(--ink);color:#fff}.bf-dot{border-radius:50%;width:7px;height:7px}.bf-res{color:#4b5563;align-items:center;gap:12px;margin-left:auto;font-size:13px;display:flex}.bf-res b{color:var(--ink);font-family:var(--font-display);font-size:14px}.bf-clear{color:#8a5406;cursor:pointer;background:0 0;border:none;min-height:36px;padding:0 6px;font-family:inherit;font-size:13px;font-weight:600}.bf-clear:hover{text-decoration:underline}.bf-carry{border-top:1px solid var(--line);background:#f8fafc;border-radius:0 0 18px 18px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;font-weight:500;display:flex}.bf-mark{color:inherit;background:#fbf1dc;border-radius:3px;padding:0 1px}.kfrom{color:#334155;white-space:nowrap;background:#e2e8f0;border-radius:6px;margin-right:6px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.kfrom.long{color:#7a4a05;background:#fdf1d8}.kcard.kcarried{border-left:3px solid #94a3b8}.kcard.kcarried.kblocked{border-left-color:#b91c1c}@media (max-width:760px){.bf-top{flex-direction:column;align-items:stretch}.bf-search{flex:none;min-width:0}.bf-bot{align-items:stretch}.bf-quick{scrollbar-width:none;flex-wrap:nowrap;flex:100%;min-width:0;overflow-x:auto}.bf-quick::-webkit-scrollbar{display:none}.bf-qc{flex:none}.bf-qlab{display:none}.bf-pills{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.bf-pills::-webkit-scrollbar{display:none}.bf-vsep{flex:0 0 1px}.bf-search input,.bf-cust input{font-size:16px}.bf-pop{min-width:0;max-height:70vh;position:fixed;inset:auto 16px 16px}.bf-dp{grid-template-columns:1fr;width:auto;max-height:80vh;overflow-y:auto}.bf-dp-l{border-right:0;border-bottom:1px solid var(--line);border-radius:16px 16px 0 0}.bf-fld{flex-flow:wrap}.bf-res{width:100%;margin-left:0}}@media (min-width:761px){.kanban{grid-template-columns:none;grid-auto-columns:minmax(240px,1fr);grid-auto-flow:column;padding-bottom:6px;overflow-x:auto}}.kcard.kblocked{border-left:4px solid #b91c1c}.kcard.kcanceled{opacity:.85}.kcard.kcanceled p{color:#4b5563;text-decoration:line-through}.kwhy{border-radius:8px;margin:6px 0 4px;padding:6px 8px;font-size:12.5px;line-height:1.4}.kwhy.blocked{color:#7f241b;background:#fbe6e4}.kwhy.canceled{color:#3f4652;background:#ecedef}.sr-banner{border-radius:12px;margin-bottom:12px;padding:12px 14px;font-size:14px;line-height:1.5}.sr-banner.blocked{color:#5f1a14;background:#fbe6e4;border:1px solid #f2c9c4}.sr-banner.canceled{color:#2a3038;background:#ecedef;border:1px solid #d9dbdf}.sr-meta{margin-top:4px;font-size:12.5px}@media (max-width:760px){#sr-why{font-size:16px}}.wt-box{border:1px solid var(--line);background:#fbfaf7;border-radius:14px;margin-bottom:14px;padding:14px 16px}.wt-box h4{font-family:var(--font-display);align-items:center;gap:8px;margin:0 0 8px;font-size:14px;display:flex}.wt-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.wt-grid div{color:#4b5563;font-size:12.5px}.wt-grid b{color:var(--ink);margin-top:2px;font-size:14.5px;font-weight:600;display:block}.wt-note{color:#4b5563;margin-top:10px;font-size:12.5px}@media (max-width:700px){.wt-grid{grid-template-columns:1fr 1fr}}.rl-bar{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.rl-chip{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--ink);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 14px;font-size:14px;font-weight:600;display:flex}.rl-chip:hover{border-color:#d6d3ca}.rl-chip.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#f2f1ec}.rl-chip:focus-visible{outline:none;box-shadow:0 0 0 3px #a1620766}.rl-sub{color:#4b5563;font-size:12px;font-weight:500}.rl-tag{vertical-align:1px;margin-left:8px;font-size:11px}.rl-head{margin-bottom:16px}.rl-grid{grid-template-columns:1.4fr 1fr;gap:14px;display:grid}.rl-row{gap:8px;display:flex}.rl-row input{flex:1;min-width:0}.rl-del{color:#b42318;border-color:#f1c4bf}@media (max-width:700px){.rl-grid{grid-template-columns:1fr}.rl-row{flex-wrap:wrap}.rl-head input,.rl-head select,#rl-new{font-size:16px}}.att-rec-pager{margin-top:10px}.emp-hours{margin-top:18px}.wi-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.wi-count{font-family:var(--font-body);color:#4b5563;letter-spacing:0;font-size:12.5px;font-weight:500}.st.invited{color:#7a4a05;background:#fff8e6;border:1px dashed #d9a441;border-radius:999px;padding:3px 10px}.wi-more{justify-content:center;width:100%;margin-top:10px}.pa-tag{border-radius:999px;align-items:center;gap:6px;margin:0 0 8px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.pa-tag svg{fill:none;stroke:currentColor;width:12px;height:12px}.pa-tag.all{color:#14532d;background:#e2f3e8}.pa-tag.priv{color:#2a3038;background:#ecedef}.pa-box{border:1px solid var(--line);background:#fbfaf7;border-radius:14px;margin-bottom:14px;padding:14px}.pa-label{margin:0 0 6px;font-size:12.5px;font-weight:600;display:block}.pa-opts{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.pa-opt{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;min-width:190px;min-height:56px;color:var(--ink);border-radius:12px;flex:1;padding:9px 12px}.pa-opt b{font-size:14px;display:block}.pa-opt span{color:#4b5563;font-size:12.5px}.pa-opt[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#f2f1ec}.pa-opt:focus-visible{outline:none;box-shadow:0 0 0 3px #a1620766}.pa-teams{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.pa-chk{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:44px;padding:0 10px;font-size:14px;font-weight:500;display:flex}.pa-chk input{width:20px;height:20px;accent-color:var(--ink);flex:none}.pa-chk small{color:#4b5563;margin-left:auto;font-size:12.5px}.pa-search{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:44px;padding:10px 13px;font-size:14px}.pa-sugg{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-top:4px;overflow:hidden}.pa-sugg button{text-align:left;border:0;border-bottom:1px solid var(--line);background:var(--surface);cursor:pointer;width:100%;min-height:44px;color:var(--ink);padding:0 12px;font-size:14px;display:block}.pa-sugg button:last-child{border-bottom:0}.pa-sugg button:hover{background:#f2f1ec}.pa-sugg button span{color:#4b5563;margin-left:6px;font-size:12.5px}.pa-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.pa-chip{background:#ecedef;border-radius:999px;align-items:center;gap:4px;min-height:36px;padding:0 4px 0 12px;font-size:13.5px;font-weight:600;display:inline-flex}.pa-chip button{cursor:pointer;color:#3f4652;background:0 0;border:0;border-radius:50%;width:32px;height:32px;font-size:17px}.pa-sum{color:#4b5563;margin-top:10px;font-size:13px}.pa-sum b{color:var(--ink)}.pa-warn{color:#7f241b;background:#fbe6e4;border-radius:10px;margin-top:8px;padding:8px 10px;font-size:13px}@media (max-width:640px){.pa-teams{grid-template-columns:1fr}.pa-search{font-size:16px}}.mh-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mh-head>:first-child{flex:320px}.mh-mon{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:4px;margin-bottom:16px;padding:4px;display:flex}.mh-mon button{cursor:pointer;width:44px;height:40px;color:var(--ink);background:0 0;border:0;border-radius:9px;font-family:inherit;font-size:20px}.mh-mon button:hover:not(:disabled){background:#f2f0ea}.mh-mon button:disabled{opacity:.35;cursor:default}.mh-mon button:focus-visible{outline:none;box-shadow:0 0 0 3px #a1620766}.mh-mon b{font-family:var(--font-display);text-align:center;min-width:150px;font-size:15px}.mh-tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.mh-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.mh-tile .n{font-family:var(--font-display);font-size:24px;font-weight:700;line-height:1.2}.mh-tile .l{color:#4b5563;margin-top:2px;font-size:12.5px}.mh-tile.good .n{color:#14532d}.mh-tile.warn .n{color:#b42318}.mh-tile.task{background:#f5f9ff;border-color:#c7d7ee}.mh-tile.task .n{color:#173f73}.mh-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.mh-main,.mh-side{flex-direction:column;gap:16px;min-width:0;display:flex}.mh-main .wt-box{margin-bottom:0}.mh-card h3{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.mh-card h3 small{font-family:var(--font-body);color:#4b5563;font-size:12.5px;font-weight:500}.mh-card .att-rec{border-top:0;max-height:none}.mh-row{border-top:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:9px 0;font-size:13.5px;text-decoration:none;display:flex}.mh-row:hover:not(.static){background:#fbfaf7}.mh-row small{color:#4b5563;font-size:12px;display:block}.mh-row>small{white-space:nowrap}.mh-more{color:#8a5406;cursor:pointer;background:0 0;border:0;min-height:40px;padding:0;font-family:inherit;font-size:13px;font-weight:600}.mh-note{color:#4b5563;margin-top:10px;font-size:12.5px}.mh-lv{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px;display:grid}.mh-lv>div{border:1px solid var(--line);color:#4b5563;border-radius:12px;padding:10px 12px;font-size:12.5px}.mh-lv b{font-family:var(--font-display);color:var(--ink);font-size:20px;display:block}.mh-bar{background:#efede7;border-radius:999px;height:8px;margin-top:6px;overflow:hidden}.mh-bar i{background:var(--gold);border-radius:999px;height:100%;display:block}.bal.mh-taskbal{background:#f5f9ff;border-color:#c7d7ee}.bal.mh-taskbal .n{color:#173f73}@media (max-width:1200px){.mh-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1000px){.mh-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.mh-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.mh-mon{justify-content:space-between;width:100%}}.badge.mh-ok{color:#14532d;background:#e2f3e8;border-color:#bfe3cb}.ktabs,.sw-short,.nb-short{display:none}@media (max-width:760px){.content:has(.ktabs){overflow:visible}.page-head.ph-row{flex-wrap:nowrap;align-items:center;gap:10px;margin-bottom:12px}.page-head.ph-row>div{min-width:0}.page-head.ph-row h1{white-space:nowrap;text-overflow:ellipsis;font-size:22px;overflow:hidden}.page-head .ph-hint{display:none}.page-head.ph-row .btn{flex:none;min-height:44px}.sw-long,.nb-long{display:none}.sw-short,.nb-short{display:inline}.new-banner{flex-wrap:nowrap;margin-bottom:12px;padding:6px 6px 6px 12px}.new-banner>span{flex:1;min-width:0}.new-banner .btn{flex:none}.bf,.bf-top,.bf-bot{min-width:0}.bf-pills{flex-wrap:wrap;padding-bottom:0;overflow:visible}.bf-pills .bf-dd:first-child{flex:100%}.bf-pills .bf-dd:first-child .bf-pill{justify-content:flex-start;width:100%}.bf-pills .bf-dd:first-child .bf-pill .bf-cv{margin-left:auto}.bf-vsep{display:none}.bf-quick{flex-wrap:wrap;overflow:visible}.ktabs{scrollbar-width:none;z-index:15;background:var(--paper);border-bottom:1px solid var(--line);gap:2px;margin:4px -14px 0;padding:6px 14px 0;display:flex;position:sticky;top:66px;overflow-x:auto}.ktabs::-webkit-scrollbar{display:none}.ktab{min-height:44px;font:600 14px var(--font-body);color:#4b5563;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.ktab-n{color:#374151;text-align:center;background:#eceae3;border-radius:999px;min-width:22px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px}.ktab.on{color:var(--ink);border-bottom-color:var(--ink)}.ktab.on .ktab-n{background:var(--ink);color:#fff}.ktab:focus-visible{border-radius:8px 8px 0 0;outline:none;box-shadow:inset 0 0 0 3px #a1620766}.kanban{scroll-snap-type:x mandatory;scrollbar-width:none;align-items:flex-start;gap:0;margin:0 -14px;padding-bottom:0;display:flex;overflow-x:auto}.kanban::-webkit-scrollbar{display:none}.kanban .kcol{scroll-snap-align:start;background:0 0;border:0;border-radius:0;flex:0 0 100%;max-width:none;padding:12px 14px 0}.kanban .kcol-head{display:none}}
