:root{--navy:#1b3a6b;--blue:#0073ea;--bh:#0060c0;--bl:#e6f2ff;--bm:#c8e0ff;--sb:#1f2d3d;--sh:#2c3e52;--st:#b0bec5;--bg:#f5f6f8;--sf:#fff;--bd:#e0e4ec;--bdl:#f0f2f5;--tp:#1f2d3d;--ts:#4e5d70;--tm:#6b7a8d;--ok:#00c875;--ok-b:#e6faf2;--wn:#faa732;--wn-b:#fff5e0;--dn:#e2445c;--dn-b:#ffeef1;--if:#579bfc;--if-b:#e6f2ff;--s1:0 1px 3px #00000014;--s2:0 4px 12px #0000001a;--s3:0 8px 32px #0000001f;--s4:0 16px 48px #00000029;--r4:4px;--r6:6px;--r8:8px;--r12:12px;--r16:16px;--rf:9999px;--sw:220px;--th:56px;--fn:"Inter",-apple-system,sans-serif;--jp:#faa732;--jp-b:#fff5e0;--ja:#579bfc;--ja-b:#e6f2ff;--jc:#7e3af2;--jc-b:#f3eeff;--ji:#ff7575;--ji-b:#ffe9e9;--jr:#ff6b2b;--jr-b:#fff0e9;--jd:#00c875;--jd-b:#e6faf2;--jv:#6b7a8d;--jv-b:#f0f2f5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--fn);background:var(--bg);color:var(--tp);height:100vh;font-size:14px;line-height:1.5;overflow:hidden}.app{height:100vh;display:flex;overflow:hidden}.sbar{width:var(--sw);background:var(--sb);flex-direction:column;flex-shrink:0;height:100vh;display:flex}.sb-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:16px;display:flex}.sb-logo{background:var(--blue);border-radius:var(--r6);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:800;display:flex}.sb-nm{color:#fff;font-size:13px;font-weight:700;line-height:1.2}.sb-sub{color:var(--st);font-size:10px}.sb-nav{flex:1;padding:8px;overflow-y:auto}.sb-nav::-webkit-scrollbar{width:0}.sb-sec{text-transform:uppercase;letter-spacing:.08em;color:#b0bec580;padding:12px 8px 4px;font-size:10px;font-weight:600}.si{border-radius:var(--r6);color:var(--st);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;margin-bottom:1px;padding:8px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.si:hover,.si:focus,.si:visited,.si:active{text-decoration:none}.si:hover{background:var(--sh);color:#fff}.si.on,.si.on:visited,.si.on:hover{background:var(--blue);color:#fff}.si:visited{color:var(--st)}.si.on:visited{color:#fff}.si svg{flex-shrink:0;width:15px;height:15px}.si-ct{color:#fff;border-radius:var(--rf);background:#ffffff26;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.si.on .si-ct{background:#ffffff40}.sb-usr{border-top:1px solid #ffffff14;flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex}.sb-un{color:#fff;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.sb-ur{color:var(--st);font-size:10px}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.tbar{height:var(--th);background:var(--sf);border-bottom:1px solid var(--bd);box-shadow:var(--s1);flex-shrink:0;grid-template-columns:minmax(120px,1fr) minmax(220px,420px) minmax(280px,1.2fr);align-items:center;gap:16px;padding:0 20px;display:grid}.tb-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:17px;font-weight:700;overflow:hidden}.tb-srch-wrap{justify-self:center;width:100%;max-width:420px;transition:max-width .2s;position:relative}.tb-srch-wrap.tb-srch-open{max-width:520px}.tb-srch{width:100%;position:relative}.tb-srch input{border-radius:var(--rf);border:1.5px solid var(--bd);background:var(--bg);width:100%;height:34px;font-size:13px;font-family:var(--fn);color:var(--tp);padding:0 64px 0 34px;transition:border-color .15s,background .15s,box-shadow .15s}.tb-srch input:focus{border-color:var(--blue);background:#fff;outline:none;box-shadow:0 0 0 3px #0073ea1f}.tb-srch svg{color:var(--tm);pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.tb-kbd{color:var(--tm);background:var(--sf);border:1px solid var(--bd);pointer-events:none;border-radius:4px;padding:2px 5px;font-family:inherit;font-size:10px;font-weight:600;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.tb-srch-menu{border:1.5px solid var(--bd);border-radius:var(--r8);box-shadow:var(--s3);z-index:50;background:#fff;max-height:340px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.tb-srch-empty{color:var(--tm);padding:12px 14px;font-size:12px}.tb-srch-item{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--bdl);background:0 0;flex-direction:column;gap:2px;width:100%;padding:10px 14px;font-family:inherit;display:flex}.tb-srch-item:last-child{border-bottom:none}.tb-srch-item:hover,.tb-srch-item.on{background:var(--bl)}.tb-srch-job{color:var(--tp);font-size:13px;font-weight:700}.tb-srch-sub{color:var(--ts);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.tb-right{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.tb-status{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.tb-pill{border-radius:var(--rf);border:1px solid var(--bd);background:var(--bg);color:var(--ts);white-space:nowrap;align-items:center;gap:6px;max-width:100%;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.tb-pill-dot{background:var(--tm);border-radius:50%;flex-shrink:0;width:7px;height:7px}.tb-pill-ok{color:var(--tp);background:var(--ok-b);border-color:#c8ebd9}.tb-pill-ok .tb-pill-dot{background:var(--ok);box-shadow:0 0 0 2px #00c87533}.tb-pill-off .tb-pill-dot{background:var(--dn)}.tb-pill-label{text-overflow:ellipsis;overflow:hidden}.tb-av{background:var(--navy);color:#fff;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.tb-bell{border:1.5px solid var(--bd);border-radius:var(--r6);cursor:pointer;width:32px;height:32px;color:var(--ts);font:inherit;background:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.tb-bell.on,.tb-bell:hover{border-color:var(--bm);color:var(--blue);background:var(--bl)}.tb-bell-count{border-radius:var(--rf);background:var(--dn);color:#fff;border:2px solid #fff;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-5px;right:-5px}.tb-notif{flex-shrink:0;position:relative}.tb-notif-menu{border:1.5px solid var(--bd);border-radius:var(--r12);width:min(380px,100vw - 32px);box-shadow:var(--s3);z-index:60;background:#fff;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.tb-notif-head{border-bottom:1px solid var(--bd);justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;font-weight:700;display:flex}.tb-notif-badge{color:var(--dn);background:var(--dn-b);border-radius:var(--rf);padding:2px 8px;font-size:11px;font-weight:600}.tb-notif-list{max-height:360px;overflow-y:auto}.tb-notif-empty{text-align:center;color:var(--tm);padding:24px 14px;font-size:13px}.tb-notif-item{text-align:left;border:none;border-bottom:1px solid var(--bdl);cursor:pointer;background:0 0;gap:10px;width:100%;padding:12px 14px;font-family:inherit;display:flex}.tb-notif-item:hover{background:var(--bg)}.tb-notif-item.unread{background:var(--bl)}.tb-notif-item.unread:hover{background:#dceeff}.notif-ico{border-radius:var(--r8);background:var(--bg);width:32px;height:32px;color:var(--ts);flex-shrink:0;justify-content:center;align-items:center;display:flex}.notif-ico svg{width:15px;height:15px}.notif-ico.kind-job_created{background:var(--if-b);color:var(--blue)}.notif-ico.kind-job_status_changed{background:var(--wn-b);color:var(--wn)}.notif-ico.kind-xero_invoice_status{background:var(--ok-b);color:var(--ok)}.notif-ico.kind-time_log_created{background:var(--bl);color:var(--blue)}.notif-ico.kind-expense_added{background:var(--jp-b);color:var(--jp)}.notif-ico.kind-invoice_pushed{background:var(--jc-b);color:var(--jc)}.tb-notif-text{flex:1;min-width:0}.tb-notif-title{color:var(--tp);font-size:13px;font-weight:600;line-height:1.35}.tb-notif-body{color:var(--ts);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.tb-notif-meta{color:var(--tm);gap:6px;margin-top:4px;font-size:11px;display:flex}.tb-notif-more{border:none;border-top:1px solid var(--bd);background:var(--bg);width:100%;color:var(--blue);cursor:pointer;padding:12px;font-family:inherit;font-size:13px;font-weight:600;display:block}.tb-notif-more:hover{background:var(--bl)}.notif-page-list{flex-direction:column;gap:8px;display:flex}.notif-page-item{text-align:left;border:1px solid var(--bd);border-radius:var(--r12);background:var(--sf);cursor:pointer;width:100%;box-shadow:var(--s1);gap:12px;padding:14px 16px;font-family:inherit;display:flex}.notif-page-item:hover{border-color:var(--bm);background:var(--bl)}.notif-page-item.unread{border-color:var(--bm);background:#f3f8ff}.notif-page-body{flex:1;min-width:0}.notif-page-top{justify-content:space-between;gap:12px;margin-bottom:4px;display:flex}.notif-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--ts);font-size:11px;font-weight:700}.notif-when{color:var(--tm);flex-shrink:0;font-size:11px}.notif-title{color:var(--tp);font-size:14px;font-weight:600}.notif-body{color:var(--ts);margin-top:4px;font-size:13px;line-height:1.4}.notif-page{width:100%;max-width:none}.notif-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.notif-filters{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.notif-filters .sfp{border-color:var(--bd);background:var(--sf);color:var(--ts)}.notif-filters .sfp.on{background:var(--bl);border-color:var(--blue);color:var(--blue)}.notif-filter-count{opacity:.75;margin-left:6px;font-size:10px;font-weight:700}.notif-search{flex-shrink:0;width:min(320px,100%);position:relative}.notif-search svg{width:14px;height:14px;color:var(--tm);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.notif-search .inp{height:36px;padding-left:34px}.notif-table-card{overflow:hidden}.notif-table-card .tw{box-shadow:none;border:none;border-radius:0;margin:0}.notif-table td{vertical-align:middle}.notif-table .notif-title{font-size:13px;font-weight:600}.notif-table .notif-body{max-width:640px;margin-top:2px;font-size:12px}.notif-row-unread{background:#f5f9ff}.notif-row-unread:hover td{background:#ebf3ff}.notif-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}@media (width<=900px){.notif-table th:nth-child(4),.notif-table td:nth-child(4){display:none}}.tb-dot{background:var(--dn);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:4px}@media (width<=1100px){.tbar{grid-template-columns:minmax(80px,.7fr) minmax(180px,1fr) minmax(200px,1.1fr);gap:10px;padding:0 12px}.tb-pill-label{display:none}.tb-pill{padding:6px}.tb-kbd{display:none}}.ct{flex:1;overflow:hidden auto}.ct-fill{flex-direction:column;display:flex;overflow:hidden}.ct-fill>.sc.on{flex:1;min-height:0}.sc{flex-direction:column;min-height:100%;display:none}.sc.on{display:flex}.ph{background:var(--sf);border-bottom:1px solid var(--bd);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:20px 24px;display:flex}.ph-l{align-items:center;gap:12px;display:flex}.ph-t{font-size:20px;font-weight:700}.ph-s{color:var(--ts);margin-top:2px;font-size:12px}.ph-r{flex-shrink:0;align-items:center;gap:8px;display:flex}.bc{color:var(--tm);align-items:center;gap:6px;margin-bottom:4px;font-size:12px;display:flex}.bc a{color:var(--blue);cursor:pointer}.pad{padding:24px}.stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.dash-countdowns{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.dash-countdown{border:1px solid var(--bd);border-radius:var(--r6);background:var(--sf);color:var(--tm);align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:inline-flex}.dash-countdown strong{color:var(--navy);font-variant-numeric:tabular-nums}.dash-countdown svg{color:var(--blue);flex-shrink:0}.schedule-day-banner{border-radius:var(--r12);background:linear-gradient(#0073ea1a,#0073ea0a);border:1px solid #0073ea47;padding:14px 18px}.schedule-day-banner-label{letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin-bottom:4px;font-size:11px;font-weight:700}.schedule-day-banner-date{color:var(--navy);letter-spacing:-.02em;font-size:22px;font-weight:800;line-height:1.25}.schedule-day-banner-meta{color:var(--ts);margin-top:4px;font-size:12px;font-weight:500}.dash-bookings{flex-direction:column;gap:20px;margin-top:20px;display:flex}.dash-chart-grid,.dash-heat-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dash-tooltip{border:1px solid var(--bd);border-radius:var(--r8);box-shadow:var(--s2);background:#fff;min-width:120px;padding:8px 10px}.dash-heat-legend{align-items:center;gap:6px;display:flex}.dash-heat-swatch{border:1px solid var(--bd);border-radius:3px;width:14px;height:14px;display:inline-block}.dash-heat-table{border-collapse:separate;border-spacing:4px;width:100%;font-size:11px}.dash-heat-table th{color:var(--tm);text-align:center;white-space:nowrap;padding:2px 4px;font-weight:600}.dash-heat-table th[scope=row]{text-align:left;color:var(--ts);text-overflow:ellipsis;max-width:110px;padding-right:8px;font-weight:600;overflow:hidden}.dash-heat-cell{font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-width:28px;height:28px;font-weight:700;display:flex}.dash-booking-table th{white-space:nowrap}@media (width<=980px){.dash-chart-grid,.dash-heat-grid{grid-template-columns:1fr}}.stats-compact{gap:10px;margin-bottom:16px}.stats-compact .stat{padding:10px 14px}.stats-compact .slb{margin-bottom:4px;font-size:10px}.stats-compact .sv{font-size:22px}.stats-compact .sht{display:none}.stat{background:var(--sf);border-radius:var(--r12);border:1px solid var(--bd);box-shadow:var(--s1);padding:18px 20px}.slb{text-transform:uppercase;letter-spacing:.06em;color:var(--ts);margin-bottom:8px;font-size:11px;font-weight:600}.sv{font-size:28px;font-weight:700;line-height:1}.sht{color:var(--tm);margin-top:4px;font-size:11px}.fb{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;display:flex}.fbl{color:var(--ts);white-space:nowrap;font-size:12px;font-weight:600}.sfs{flex-wrap:wrap;gap:4px;display:flex}.sfp{border-radius:var(--rf);cursor:pointer;border:1.5px solid #0000;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.sfp-lg{padding:8px 14px;font-size:14px;font-weight:600}.sfp:hover{opacity:.85}.sfp.on{border-color:currentColor}.sfp-all{color:var(--ts);background:var(--bg)}.sfp-all.on{background:var(--bd);border-color:var(--bd)}.sfp-p{color:#7a4f00;background:var(--jp-b)}.sfp-p.on{border-color:var(--jp)}.sfp-a{color:#003d7a;background:var(--ja-b)}.sfp-a.on{border-color:var(--ja)}.sfp-i{color:#8b0000;background:var(--ji-b)}.sfp-i.on{border-color:var(--ji)}.sfp-d{color:#005c35;background:var(--jd-b)}.sfp-d.on{border-color:var(--jd)}.sfp-v{color:var(--ts);background:var(--jv-b)}.sfp-v.on{border-color:var(--jv)}.sfp-r{color:#7a2900;background:var(--jr-b)}.sfp-r.on{border-color:var(--jr)}.tw{background:var(--sf);border-radius:var(--r12);border:1px solid var(--bd);box-shadow:var(--s1);overflow:hidden}.t{border-collapse:collapse;width:100%}.t th{background:var(--bg);text-transform:uppercase;letter-spacing:.06em;color:var(--ts);text-align:left;border-bottom:1px solid var(--bd);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:600}.t td{border-bottom:1px solid var(--bdl);vertical-align:middle;padding:12px 16px;font-size:13px}.t tr:last-child td{border-bottom:none}.t tbody tr:hover td{cursor:pointer;background:#fafbfc}.mono{color:var(--navy);background:var(--bl);border-radius:var(--r4);padding:2px 8px;font-family:Courier New,monospace;font-size:12px;font-weight:600;display:inline-block}.tp2{font-weight:600}.ts2{color:var(--tm);margin-top:2px;font-size:12px}.jq-site{color:var(--navy);font-size:14px;font-weight:700;line-height:1.3}.jq-client{color:var(--tm);margin-top:2px;font-size:12px;font-weight:500}.jq-table{table-layout:fixed}.jq-table-wrap.jq-refreshing{opacity:.72;pointer-events:none;transition:opacity .15s}.jq-filter-row th{background:var(--sf);border-bottom:1px solid var(--bd);min-width:0;padding:6px 8px;overflow:hidden}.jq-col-filter{border:1px solid var(--bd);border-radius:var(--r4);background:var(--sf);box-sizing:border-box;text-overflow:ellipsis;width:100%;min-width:0;max-width:100%;height:28px;padding:4px 8px;font-size:11px;overflow:hidden}.jq-desc-cell{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.badge{border-radius:var(--r4);white-space:nowrap;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.bj-p{background:var(--jp-b);color:#7a4f00}.bj-p .dot{background:var(--jp)}.bj-a{background:var(--ja-b);color:#003d7a}.bj-a .dot{background:var(--ja)}.bj-ac{background:var(--jc-b);color:#4a1fa8}.bj-ac .dot{background:var(--jc)}.bj-i{background:var(--ji-b);color:#8b0000}.bj-i .dot{background:var(--ji)}.bj-r{background:var(--jr-b);color:#7a2900}.bj-r .dot{background:var(--jr)}.bj-d{background:var(--jd-b);color:#005c35}.bj-d .dot{background:var(--jd)}.bj-v{background:var(--jv-b);color:var(--ts)}.bj-v .dot{background:var(--jv)}.b-ok{background:var(--ok-b);color:#005c35}.b-wn{background:var(--wn-b);color:#7a4f00}.b-dn{background:var(--dn-b);color:#8b0000}.b-if{background:var(--if-b);color:#003d7a}.b-gy{background:var(--bg);color:var(--ts)}.pill{border-radius:var(--rf);border:1px solid;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.pl-b{background:var(--bl);color:var(--navy);border-color:var(--bm)}.pl-g{background:var(--bg);color:var(--ts);border-color:var(--bd)}.av{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.av-s{width:26px;height:26px;font-size:10px}.avg{display:flex}.avg .av{border:2px solid #fff;margin-left:-6px}.avg .av:first-child{margin-left:0}.btn{border-radius:var(--r6);cursor:pointer;white-space:nowrap;height:34px;font-size:13px;font-weight:600;font-family:var(--fn);border:none;align-items:center;gap:6px;padding:0 14px;transition:all .15s;display:inline-flex}.btn svg{width:14px;height:14px}.bp{background:var(--blue);color:#fff}.bp:hover{background:var(--bh);box-shadow:0 2px 8px #0073ea4d}.bs{color:var(--tp);border:1.5px solid var(--bd);background:#fff}.bs:hover{background:var(--bg)}.bg{color:var(--blue);background:0 0}.bg:hover{background:var(--bl)}.bo{background:var(--ok);color:#fff}.bn{background:var(--navy);color:#fff}.btn-sm{height:28px;padding:0 10px;font-size:12px}.btn-sm svg{width:12px;height:12px}.btn-ic{justify-content:center;width:34px;padding:0}.btn-ic.btn-sm{width:28px}.fg{flex-direction:column;gap:5px;display:flex}.flb{color:var(--ts);font-size:12px;font-weight:600}.flb .req{color:var(--dn);margin-left:2px}.inp,.sel,.ta{border-radius:var(--r6);border:1.5px solid var(--bd);height:36px;font-size:13px;font-family:var(--fn);color:var(--tp);background:#fff;width:100%;padding:0 12px}.ta{resize:vertical;height:auto;min-height:80px;padding:10px 12px}.inp:focus,.sel:focus,.ta:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #0073ea1a}.inp::placeholder,.ta::placeholder{color:var(--tm)}.sel{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7A8D' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.time-select-5{align-items:center;gap:6px;width:100%;display:flex}.time-select-5 .sel{flex:1;min-width:0}.time-select-5-wrap{flex-direction:column;gap:8px;width:100%;display:flex}.time-select-colon{color:var(--tm);flex-shrink:0;font-weight:700}.time-select-preview{color:var(--navy);background:var(--bl);border:1px solid var(--bd);border-radius:var(--r6);white-space:nowrap;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600}.time-quick-picks{flex-wrap:wrap;gap:6px;display:flex}.time-chip{appearance:none;border:1px solid var(--bd);color:var(--ts);cursor:pointer;background:#fff;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:600;line-height:1.2}.time-chip:hover{border-color:var(--blue);color:var(--blue);background:var(--bl)}.time-chip.on{border-color:var(--blue);background:var(--blue);color:#fff}.time-chip:disabled{opacity:.5;cursor:not-allowed}.assign-layout{grid-template-columns:minmax(280px,.95fr) minmax(300px,1.05fr);align-items:stretch;gap:20px;min-width:0;display:grid}.assign-col{flex-direction:column;gap:14px;min-width:0;display:flex}.assign-col-card{border:1px solid var(--bd);border-radius:var(--r12);background:var(--sf,#fff);min-width:0;padding:14px}.assign-col-card .mst{margin-bottom:10px}.assign-alerts{flex-direction:column;gap:10px;display:flex}.assign-alerts .al{margin-bottom:0}@media (width<=820px){.assign-layout{grid-template-columns:1fr}}.tech-pick-list{flex-direction:column;gap:8px;min-width:0;max-height:min(420px,48vh);padding:2px;display:flex;overflow-y:auto}.tsi{border-radius:var(--r8);border:1.5px solid var(--bd);cursor:pointer;box-sizing:border-box;align-items:center;gap:10px;min-width:0;min-height:56px;margin-bottom:0;padding:10px 12px;display:flex}.tsi:hover{border-color:var(--bm);background:var(--bl)}.tsi.sel{border-color:var(--blue);background:var(--bl)}.tsi.warn{border-color:var(--wn);background:var(--wn-b)}.tsi>div{overflow-wrap:anywhere;min-width:0}.tsi-main{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;display:flex}.tsi-name{color:var(--tp);font-size:13px;font-weight:500;line-height:1.25}.tsi.sel .tsi-name{font-weight:600}.tsi-meta{color:var(--tm);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.25;overflow:hidden}.tsi-badge{border-radius:999px;flex-shrink:0;align-items:center;gap:4px;max-width:120px;padding:3px 7px;font-size:10px;font-weight:700;line-height:1.2;display:inline-flex}.tsi-badge-ok{color:var(--blue);background:#0073bb1f}.tsi-badge-warn{color:var(--wn,#d97706);background:#d9770624}.tsi-badge span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inp-s{padding-left:34px}.fh{color:var(--tm);font-size:11px}.card{background:var(--sf);border-radius:var(--r12);border:1px solid var(--bd);box-shadow:var(--s1);overflow:hidden}.ch{border-bottom:1px solid var(--bd);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.ct2{font-size:14px;font-weight:600}.cb{padding:20px}.cf{border-top:1px solid var(--bd);background:var(--bg);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.tabs{border-bottom:1px solid var(--bd);background:var(--sf);padding:0 24px;display:flex}.tab{color:var(--ts);cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 16px;font-size:13px;font-weight:500}.tab.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.mo{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.mo.open{display:flex}.mod{border-radius:var(--r16);box-shadow:var(--s4);background:#fff;flex-direction:column;width:100%;min-width:0;max-width:520px;max-height:88vh;margin:16px;display:flex;overflow:hidden}.mod-lg{max-width:720px}.mod-xl{max-width:980px}.mod.mod-fs{border-radius:0;flex-direction:column;width:100%;max-width:none;height:100%;max-height:100%;margin:0;display:flex;overflow:hidden}.mh{border-bottom:1px solid var(--bd);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.mt{font-size:16px;font-weight:700}.mbody{flex:1;min-height:0;padding:24px;overflow-y:auto}.mbody.mbody-fs{flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.mf{border-top:1px solid var(--bd);background:var(--bg);flex-shrink:0;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.email-split{grid-template-columns:1fr 1fr;width:100%;height:100%;min-height:0;display:grid}.email-split-pane{min-height:0;padding:24px;overflow-y:auto}.email-split-pane+.email-split-pane{border-left:1px solid var(--bd);background:var(--bg)}@media (width<=900px){.email-split{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.email-split-pane+.email-split-pane{border-left:none;border-top:1px solid var(--bd)}}.ms{margin-bottom:20px}.ms:last-child{margin-bottom:0}.mst{text-transform:uppercase;letter-spacing:.06em;color:var(--ts);border-bottom:1px solid var(--bd);margin-bottom:12px;padding-bottom:8px;font-size:11px;font-weight:600}.g2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.g3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.al{border-radius:var(--r8);box-sizing:border-box;border-left:4px solid;align-items:flex-start;gap:10px;min-width:0;max-width:100%;margin-bottom:16px;padding:12px 16px;display:flex}.al>div{flex:1;min-width:0}.al svg{flex-shrink:0;width:16px;height:16px;margin-top:1px}.al-w{background:var(--wn-b);border-left-color:var(--wn)}.al-w svg{color:var(--wn)}.al-i{background:var(--if-b);border-left-color:var(--if)}.al-i svg{color:var(--if)}.al-e{background:var(--dn-b);border-left-color:var(--dn)}.al-e svg{color:var(--dn)}.al-t{overflow-wrap:anywhere;font-size:13px;font-weight:600}.al-m{color:var(--ts);overflow-wrap:anywhere;word-break:break-word;margin-top:2px;font-size:12px}.conflict-list{flex-direction:column;gap:8px;max-height:140px;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.conflict-item{overflow-wrap:anywhere;word-break:break-word;border:1px solid var(--bd);border-radius:var(--r6);background:#ffffff8c;padding:8px 10px;font-size:12px;line-height:1.4}.conflict-item strong{margin-bottom:2px;display:block}.btn-dn{background:var(--dn);color:#fff;border-color:var(--dn)}.btn-dn:hover{filter:brightness(.95)}.btn-dn:disabled{opacity:.55;cursor:not-allowed}.dg{border:1px solid var(--bd);border-radius:var(--r8);grid-template-columns:1fr 1fr;gap:0;display:grid;overflow:hidden}.df{border-bottom:1px solid var(--bdl);padding:12px 16px}.df:nth-child(odd){border-right:1px solid var(--bdl)}.dfl{text-transform:uppercase;letter-spacing:.06em;color:var(--tm);margin-bottom:3px;font-size:10px;font-weight:600}.dfv{color:var(--tp);font-size:13px}.df-full{grid-column:1/-1}.cred{background:var(--bg);border:1.5px solid var(--bd);border-radius:var(--r6);align-items:center;gap:10px;padding:10px 14px;display:flex}.cv{letter-spacing:.15em;color:var(--tm);flex:1;font-family:Courier New,monospace}.cv.show{color:var(--navy);letter-spacing:.05em;font-weight:600}.pgw{flex-direction:column;gap:4px;display:flex}.pgb{background:var(--bd);border-radius:var(--rf);height:8px;overflow:hidden}.pgf{border-radius:var(--rf);background:var(--blue);height:100%}.pgf-ok{background:var(--ok)}.pgf-w{background:var(--wn)}.pgf-d{background:var(--dn)}.pgl{color:var(--tm);justify-content:space-between;font-size:11px;display:flex}.ec{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);cursor:pointer;margin-bottom:12px;padding:16px}.ec:hover{border-color:var(--blue);box-shadow:var(--s2)}.it th{background:var(--bg);text-transform:uppercase;letter-spacing:.05em;color:var(--ts);text-align:left;border-bottom:1px solid var(--bd);padding:8px 14px;font-size:11px;font-weight:600}.it td{border-bottom:1px solid var(--bdl);vertical-align:middle;padding:10px 14px;font-size:13px}.it tr:last-child td{border-bottom:none}.ied{background:var(--bg);border:1.5px solid var(--bd);font-size:13px;font-family:var(--fn);border-radius:4px;padding:3px 8px}.ied:focus{border-color:var(--blue);outline:none}.sl2{height:100%;display:flex}.sn2{border-right:1px solid var(--bd);background:var(--sf);flex-shrink:0;width:200px;padding:16px 8px;overflow-y:auto}.sni{border-radius:var(--r6);color:var(--ts);cursor:pointer;align-items:center;gap:8px;margin-bottom:2px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.sni:hover{background:var(--bg);color:var(--tp)}.sni.on{background:var(--bl);color:var(--blue);font-weight:600}.sni svg{width:14px;height:14px}.sc3{flex:1;padding:24px;overflow-y:auto}.sg{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);max-width:860px;margin-bottom:20px;overflow:hidden}.sgt{border-bottom:1px solid var(--bd);background:var(--bg);padding:14px 20px;font-size:13px;font-weight:600}.sr{border-bottom:1px solid var(--bdl);grid-template-columns:minmax(0,1.2fr) minmax(200px,280px);align-items:start;gap:10px 24px;padding:14px 20px;display:grid}.sr:last-child{border-bottom:none}.sr.sr-stack{grid-template-columns:1fr}.si2{min-width:0;max-width:480px}.snn{color:var(--tp);font-size:13px;font-weight:600}.sdd{color:var(--ts);overflow-wrap:anywhere;margin-top:3px;font-size:12px;line-height:1.45}.sr>.sel,.sr>.inp,.sr>.ta{width:100%;min-width:0;max-width:none}.sr-ctrl{flex-direction:column;align-items:stretch;gap:8px;width:100%;min-width:0;display:flex}.sr-ctrl .sel,.sr-ctrl .inp,.sr-ctrl .ta{width:100%;min-width:0;max-width:none}.sr-ctrl .btn{align-self:flex-start}.sr-ctrl .btn+.btn{margin:0}.sr-ctrl-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sr-ctrl code,.sr-mono{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r6);width:100%;max-width:100%;padding:8px 10px;font-size:12px;line-height:1.45;display:block}.sr-chips{flex-wrap:wrap;gap:6px;display:flex}.sr-chip{border-radius:var(--rf);background:var(--bg);border:1px solid var(--bd);color:var(--tp);padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:inline-block}.settings-page{max-width:920px;padding:20px 24px 40px}.settings-page>.sg+.f12{max-width:860px}@media (width<=720px){.sr{grid-template-columns:1fr;padding:14px 16px}.si2{max-width:none}.settings-page{padding:16px}}.tog{background:var(--bd);border-radius:var(--rf);cursor:pointer;width:40px;height:22px;display:inline-block;position:relative}.tog.on{background:var(--blue)}.tog:after{content:"";width:16px;height:16px;box-shadow:var(--s1);background:#fff;border-radius:50%;transition:left .2s;position:absolute;top:3px;left:3px}.tog.on:after{left:21px}.pm{border-collapse:collapse;width:100%}.pm th{text-transform:uppercase;letter-spacing:.05em;color:var(--ts);text-align:center;border-bottom:1px solid var(--bd);background:var(--bg);padding:8px 12px;font-size:11px;font-weight:600}.pm th:first-child{text-align:left}.pm td{border-bottom:1px solid var(--bdl);vertical-align:middle;padding:8px 12px;font-size:12px}.pm tr:last-child td{border-bottom:none}.pm td:not(:first-child){text-align:center}.perm-cell-wrap,.perm-cell-btn{justify-content:center;align-items:center;width:100%;display:flex}.perm-cell-btn{cursor:pointer;border-radius:var(--r4);background:0 0;border:none;padding:4px}.perm-cell-btn:hover{background:var(--bg)}.perm-cell-btn:disabled{cursor:default}.pc{border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.py{background:var(--ok-b);color:var(--ok)}.pno{background:var(--bg);color:var(--tm)}.pp{background:var(--wn-b);color:var(--wn)}.sr2{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);align-items:flex-start;gap:16px;margin-bottom:8px;padding:12px 16px;display:flex}.sr2-t{flex-shrink:0;align-items:flex-start;gap:8px;width:220px;min-width:180px;max-width:260px;display:flex;overflow:hidden}.sr2-t .av{flex-shrink:0}.sr2-meta{flex:1;min-width:0}.sr2-tn{overflow-wrap:anywhere;word-break:break-word;font-size:12px;font-weight:600;line-height:1.3}.sr2-meta .f11{overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.sr2-j{flex-wrap:wrap;flex:1;align-items:flex-start;gap:8px;min-width:0;display:flex}.sr2-j .cm{white-space:nowrap}.sr2-j.schedule-drop-target{outline:2px dashed var(--blue);outline-offset:2px;background:#0073ea0f;border-radius:8px;min-height:36px}.sj.sj-dragging{opacity:.45;cursor:grabbing}.sj[draggable=true]{cursor:grab}.sj{border-radius:var(--r6);cursor:pointer;border:1px solid;padding:6px 12px;font-size:12px;font-weight:500}.sj-tag{border-radius:var(--rf);opacity:.85;background:#ffffffb3;border:1px solid;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.sj.sj-compact{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;padding:3px 6px;font-size:11px;line-height:1.3;display:block;overflow:hidden}.sch-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sch-views{border:1.5px solid var(--bd);border-radius:var(--r8);background:var(--sf);display:inline-flex;overflow:hidden}.sch-view-btn{color:var(--ts);cursor:pointer;background:0 0;border:0;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600}.sch-view-btn+.sch-view-btn{border-left:1px solid var(--bd)}.sch-view-btn.on{background:var(--blue);color:#fff}.sch-nav{align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.sch-day-tabs{gap:6px;min-width:0;padding:3px;display:flex;overflow-x:auto}.sch-day-tabs .sfp{flex-shrink:0}.sch-range-label{color:var(--navy);text-align:center;min-width:160px;font-size:15px;font-weight:700}.sch-date-input{width:160px;height:36px}.sch-hover-switch{outline:2px solid var(--blue);outline-offset:2px;animation:.6s ease-in-out infinite alternate sch-pulse}.sch-tab-drop{outline:2px dashed var(--blue);outline-offset:2px}@keyframes sch-pulse{0%{box-shadow:0 0 #0073ea59}to{box-shadow:0 0 0 6px #0073ea00}}.sch-week-wrap{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);overflow-x:auto}.sch-week{border-collapse:collapse;table-layout:fixed;width:100%;min-width:980px}.sch-week th,.sch-week td{border-right:1px solid var(--bdl);border-bottom:1px solid var(--bdl);vertical-align:top;padding:6px}.sch-week th{background:var(--bg);z-index:1;font-size:12px;font-weight:600;position:sticky;top:0}.sch-week td{height:56px}.sch-week .sch-week-tech{text-align:left;background:var(--bg);overflow-wrap:anywhere;width:150px;font-size:12px;font-weight:600}.sch-week .is-today{background:#0073ea0d}.sch-week td.schedule-drop-target{outline:2px dashed var(--blue);outline-offset:-2px;background:#0073ea14}.sch-week-unassigned td{background:#fafafb}.sch-week-day{cursor:pointer;font:inherit;color:var(--navy);border-radius:var(--r4);background:0 0;border:0;padding:2px 4px}.sch-week-day:hover{background:var(--bdl)}.sch-month{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.sch-month-head{color:var(--ts);background:var(--bg);border-bottom:1px solid var(--bd);text-align:center;padding:8px;font-size:12px;font-weight:700}.sch-month-cell{border-right:1px solid var(--bdl);border-bottom:1px solid var(--bdl);min-width:0;min-height:118px;padding:6px}.sch-month-cell.is-outside{background:#fafafb}.sch-month-cell.is-outside .sch-month-day{color:var(--tm)}.sch-month-cell.is-today{background:#0073ea0d}.sch-month-cell.schedule-drop-target{outline:2px dashed var(--blue);outline-offset:-2px;background:#0073ea14}.sch-month-day{font:inherit;color:var(--navy);cursor:pointer;border-radius:var(--r4);background:0 0;border:0;margin-bottom:4px;padding:2px 6px;font-size:12px;font-weight:700}.sch-month-cell.is-today .sch-month-day{background:var(--blue);color:#fff}.sch-month-more{font:inherit;color:var(--blue);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:11px;font-weight:600}.proj-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.proj-step{border:1px solid var(--bd);border-radius:var(--r8);background:var(--sf);gap:10px;padding:12px;display:flex}.proj-step-n{background:var(--bg);width:26px;height:26px;color:var(--ts);border:1px solid var(--bd);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.proj-step.is-done .proj-step-n{color:#15803d;background:#16a34a1f;border-color:#16a34a59}@media (width<=900px){.proj-steps{grid-template-columns:1fr}}.sch-layout{align-items:flex-start;gap:14px;display:flex}.sch-main{flex:1;min-width:0}.sch-pool{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r12);flex-direction:column;flex-shrink:0;width:290px;max-height:calc(100vh - 140px);padding:12px;display:flex;position:sticky;top:12px}.sch-pool-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.sch-pool-count{border-radius:var(--rf);background:var(--blue);color:#fff;text-align:center;min-width:20px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.sch-pool-search{color:var(--tm);align-items:center;gap:6px;margin-bottom:8px;display:flex}.sch-pool-search .inp{height:32px;font-size:12px}.sch-pool-subhead{border-top:1px solid var(--bd);margin-top:12px;padding-top:12px}.sch-pool-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.sch-pool-item .sj{white-space:normal;display:block}.sch-pool-date{align-items:center;gap:6px;margin-bottom:3px;display:flex}.sch-pool-overdue{border-radius:var(--rf);color:#b91c1c;background:#dc26261a;padding:0 6px;font-size:10px;font-weight:700}.sch-pool-tab{border:1px solid var(--bd);border-radius:var(--r8);background:var(--sf);cursor:pointer;font:inherit;color:var(--ts);writing-mode:vertical-rl;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;padding:10px 6px;font-size:11px;font-weight:600;display:flex;position:sticky;top:12px}.sch-pool-tab svg{writing-mode:horizontal-tb}.sch-pool-tab strong{writing-mode:horizontal-tb;border-radius:var(--rf);background:var(--blue);color:#fff;padding:0 6px;font-size:11px}@media (width<=1100px){.sch-layout.with-pool{flex-direction:column-reverse}.sch-layout.with-pool .sch-pool{width:100%;max-height:none;position:static}.sch-layout.with-pool .sch-pool-list{flex-direction:row;padding-bottom:4px;overflow:auto hidden}.sch-layout.with-pool .sch-pool-item{flex:0 0 240px}}.sj-s{background:var(--ji-b);color:#8b0000;border-color:var(--ji)}.sj-i{background:var(--ja-b);color:#003d7a;border-color:var(--ja)}.sj-n{background:var(--bg);color:var(--tm);border-color:var(--bd);font-style:italic}.sj-c{background:var(--jd-b);color:#005c35;border-color:var(--jd)}.sj-b{background:var(--jp-b);color:#7a4b00;border-color:var(--jp)}.sj-v{background:var(--ja-b);color:#003d7a;border-color:var(--ja)}.sch-email-hold{border:1px solid var(--bd);border-radius:var(--r8);background:var(--sf);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.sch-email-hold.is-on{border-color:var(--wn);background:var(--wn-b)}.sch-email-hold-main{align-items:flex-start;gap:10px;min-width:0;display:flex}.sch-email-hold-main>svg{width:18px;height:18px;color:var(--tm);flex-shrink:0;margin-top:2px}.sch-email-hold.is-on .sch-email-hold-main>svg{color:var(--wn)}.sch-email-hold-title{color:var(--tp);font-size:13px;font-weight:600}.sch-email-hold-sub{color:var(--ts);font-size:12px}.sch-email-hold-actions{align-items:center;gap:12px;display:flex}.sch-email-hold-toggle{color:var(--ts);cursor:pointer;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.sch-legend{color:var(--tm);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.sch-legend-item{align-items:center;gap:6px;display:inline-flex}.sch-legend-dot.sj{cursor:default;border-radius:4px;width:14px;height:14px;padding:0;display:inline-block}.tsh th{text-transform:uppercase;color:var(--ts);background:var(--bg);border-bottom:1px solid var(--bd);text-align:center;padding:10px 12px;font-size:11px;font-weight:600}.tsh th:first-child{text-align:left}.tsh td{border-bottom:1px solid var(--bdl);text-align:center;vertical-align:middle;padding:10px 12px;font-size:12px}.tsh td:first-child{text-align:left;font-weight:600}.tc{background:var(--bl);color:var(--navy);border-radius:var(--r4);padding:3px 8px;font-weight:600;display:inline-block}.lr{border-bottom:1px solid var(--bdl);align-items:center;gap:8px;padding:10px 14px;display:flex}.lr:last-child{border-bottom:none}.lr:hover{background:var(--bg)}.emp{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.emp-ic{background:var(--bl);width:56px;height:56px;color:var(--blue);border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.emp-t{margin-bottom:6px;font-size:15px;font-weight:600}.emp-m{color:var(--ts);max-width:260px;margin-bottom:18px;font-size:13px;line-height:1.5}.rc{border-radius:var(--r8);border:1.5px solid var(--bd);cursor:pointer;margin-bottom:6px;padding:10px 12px}.rc:hover{border-color:var(--bm)}.rc.on{border-color:var(--blue);background:var(--bl)}.rc .rc-users{border-top:1px solid var(--bdl);margin-top:6px;padding-top:6px}#sc-roles,#sc-settings-lists{flex:1;min-height:0}.lists-split{flex:1;min-height:0;display:flex;overflow:hidden}.lists-main{flex:1;min-height:0;overflow-y:auto}.roles-split{flex:1;min-height:0;display:flex;overflow:hidden}.roles-aside{border-right:1px solid var(--bd);background:var(--sf);flex-shrink:0;width:220px;padding:16px 12px;overflow-y:auto}.roles-aside-sec{text-transform:uppercase;letter-spacing:.06em;color:var(--tm);margin-bottom:10px;font-size:11px;font-weight:600}.roles-aside-sec+.roles-aside-sec{margin-top:14px}.roles-main{background:var(--bg);flex:1;min-height:0;padding:20px 24px;overflow-y:auto}.roles-main-hd{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.roles-main-hd .roles-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.roles-card .card-tbl{overflow-x:auto}.roles-card .pm thead th{z-index:1;position:sticky;top:0}.roles-legend{color:var(--tm);text-align:right;margin-top:12px;font-size:11px;line-height:1.6}.flex{display:flex}.ic{align-items:center}.jb{justify-content:space-between}.g1{gap:4px}.g2u{gap:8px}.g3u{gap:12px}.g4{gap:16px}.mt1{margin-top:4px}.mt2{margin-top:8px}.mt3{margin-top:12px}.mt4{margin-top:16px}.mb2{margin-bottom:8px}.mb3{margin-bottom:12px}.mb4{margin-bottom:16px}.mb6{margin-bottom:24px}.wf{width:100%}.f11{font-size:11px}.f12{font-size:12px}.f13{font-size:13px}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.cm{color:var(--tm)}.cs{color:var(--ts)}.time-log-list{color:var(--tp);min-width:0;font-size:15px}.time-log-list .cm{color:var(--ts);font-size:14px}.jbp-layout{grid-template-columns:minmax(0,2fr) minmax(240px,1fr);align-items:start;gap:20px;display:grid}.jbp-layout>*{min-width:0}@media (width<=1100px){.jbp-layout{grid-template-columns:1fr}}.time-log-item{border:1px solid var(--bd);border-radius:var(--r6);background:var(--bg);min-width:0;overflow:hidden}.time-log-summary{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;display:flex}.time-log-summary-main{flex:1;min-width:0}.time-log-head{color:var(--tp);flex-wrap:wrap;align-items:baseline;gap:2px 12px;font-size:15px;font-weight:600;display:flex}.time-log-notes{color:var(--ts);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin-top:4px;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.eff-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=1100px){.eff-grid{grid-template-columns:1fr}}.eff-field{border-bottom:1px solid var(--bdl);align-items:flex-start;gap:12px;padding:14px 20px;display:flex}.eff-field:last-child{border-bottom:none}.eff-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px;margin-top:13px}.eff-body{flex:1;min-width:0}.eff-maps{color:var(--ts);overflow-wrap:anywhere;margin:0 0 8px;font-size:12px;line-height:1.45}
