:root{--bg:#f4f5f7;--card:#fff;--ink:#212529;--muted:#6c757d;--line:#dee2e6;--accent:#1f2937;--accent-ink:#fff;--brand:#177ee5;--brand-ink:#fff;--brand-hover:#146bc2;--soft:#f3f4f6;--ok:#15803d;--ok-bg:#ecfdf5;--bad:#d92130;--bad-bg:#fef2f2;--radius:16px}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--ink);margin:0;font-family:Fira Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:calc(100% - 32px);max-width:480px;margin:48px auto;overflow:hidden;box-shadow:0 10px 40px #11182714}.appbar{background:var(--card);border-bottom:1px solid var(--line);z-index:10;position:sticky;top:0}.appbar-inner{align-items:center;gap:20px;max-width:1040px;height:60px;margin:0 auto;padding:0 24px;display:flex}.brandmark{align-items:center;gap:10px;display:flex}.brandmark img{width:30px;height:30px}.brandmark .wordmark{letter-spacing:2px;color:var(--accent);font-size:13px;font-weight:800}.appnav{flex:1;gap:6px;min-width:0;display:flex}.appnav .tab{flex:none;width:auto;padding:8px 16px}.appbar .signout{flex:none;margin-left:auto}@media (width<=1000px){.appbar-inner{flex-wrap:wrap;row-gap:8px;height:auto;padding:10px 24px}.appnav{scrollbar-width:none;flex-basis:100%;order:3;overflow-x:auto}.appnav::-webkit-scrollbar{display:none}}.appmain{max-width:720px;margin:0 auto;padding:28px 24px 40px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 10px 40px #11182714}@media (width<=560px){.appbar-inner{padding:10px 16px}.appnav{flex-wrap:wrap;overflow-x:visible}.appmain{padding:20px 16px 32px}.panel{padding:20px}.list-row.team-req{flex-wrap:wrap}}.brand{border-bottom:1px solid var(--line);flex-direction:column;align-items:center;gap:8px;padding:30px 28px 22px;display:flex}.brand img{width:46px;height:46px}.brand .wordmark{letter-spacing:3px;color:var(--accent);font-size:15px;font-weight:800}.body{padding:26px 28px 30px}h1{margin:0 0 4px;font-size:20px}.sub{color:var(--muted);margin:0 0 18px;font-size:14.5px;line-height:1.45}label{color:var(--muted);margin:16px 0 6px;font-size:13px;font-weight:600;display:block}input[type=date],input[type=text]{width:100%;color:var(--ink);border:1px solid var(--line);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border-radius:10px;padding:12px 14px;font-size:15.5px}select{color:var(--ink);border:1px solid var(--line);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;cursor:pointer;background:#fff;border-radius:10px;padding:9px 12px;font-size:15px}input:focus,select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #177ee526}.row{gap:12px;display:flex}.row>div{flex:1}.halfdays{flex-direction:column;gap:8px;margin-top:16px;display:flex}.checkline{color:var(--ink);cursor:pointer;align-items:center;gap:9px;margin:0;font-size:14.5px;font-weight:500;display:flex}.checkline input[type=checkbox]{width:17px;height:17px;accent-color:var(--brand);cursor:pointer;margin:0}.summary{border:1px solid var(--line);border-radius:12px;margin-top:22px;overflow:hidden}.line{border-bottom:1px solid var(--line);justify-content:space-between;padding:11px 16px;font-size:15px;display:flex}.line:last-child{border-bottom:none}.line .k{color:var(--muted)}.line.total{background:var(--soft);font-weight:700}.line.hero{font-size:16px}.line.hero .v{font-weight:700}.neg{color:var(--bad)!important}.pos{color:var(--ok)}.warn{color:#856a1b}.dim{color:var(--muted)}button{background:var(--brand);width:100%;color:var(--brand-ink);cursor:pointer;border:none;border-radius:10px;margin-top:22px;padding:14px;font-size:15.5px;font-weight:700;transition:background .15s,opacity .15s}button:hover:not(:disabled){background:var(--brand-hover)}button:disabled{opacity:.35;cursor:not-allowed}.msg{border-radius:10px;margin-top:16px;padding:12px 14px;font-size:14px;line-height:1.4}.msg.ok{background:var(--ok-bg);color:var(--ok)}.msg.err{background:var(--bad-bg);color:var(--bad)}.foot{color:var(--muted);text-align:center;margin-top:20px;font-size:12px}.section-title{color:var(--muted);letter-spacing:.3px;text-transform:uppercase;margin:22px 0 8px;font-size:13px;font-weight:700}.approvals-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.approvals-head .section-title{margin-bottom:8px}.meta{color:var(--muted);font-size:14px}.pill{background:var(--soft);color:var(--accent);border-radius:.4rem;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.pill.pending{color:#856a1b;background:#fff3cd}.pill.ok{color:#135d25;background:#d6f3df}.pill.info{color:#10589f;background:#d7ecfd}.list-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 0;font-size:15px;display:flex}.list-row:last-child{border-bottom:none}.empty{color:var(--muted);padding:8px 0;font-size:14px}.linkbtn{color:var(--muted);background:0 0;width:auto;margin:0;padding:0;font-size:13px;font-weight:600}.linkbtn:hover:not(:disabled){color:var(--ink);background:0 0}.tabbar{gap:8px;margin-bottom:6px;display:flex}.approval-row{flex-wrap:wrap;gap:8px}.approval-row .who{font-weight:700}.actions{gap:8px;display:flex}.btn-sm{border-radius:8px;width:auto;margin:0;padding:7px 14px;font-size:14px}.btn-ghost{background:var(--card);color:var(--bad);border:1px solid var(--line)}.btn-ghost:hover:not(:disabled){background:var(--bad-bg)}.tab{background:var(--soft);color:var(--accent);flex:1;margin:0;padding:10px;font-weight:700}.tab:hover:not(:disabled){background:var(--line)}.tab.active{background:var(--brand);color:var(--brand-ink)}.tab.active:hover:not(:disabled){background:var(--brand-hover)}.admin-add{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px;display:flex}.admin-add select{flex:none}.admin-add input[type=text]{flex:1;width:auto;min-width:160px}.admin-add .btn-sm{flex:none}.admin-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;font-size:14px;display:flex}.admin-row:last-child{border-bottom:none}.admin-row .grow{flex:1;min-width:0}.admin-row .url{color:var(--muted);word-break:break-all;font-size:13px}.admin-row select{flex:none;max-width:48%}.team-toolbar{align-items:center;gap:8px;display:flex}.team-toolbar-actions{gap:8px;display:flex}.team-block{margin-bottom:18px}.person-card{border:1px solid var(--line);background:var(--card);border-radius:12px;margin-top:10px;padding:12px 14px 6px}.person-card-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.person-card .who{font-size:15.5px;font-weight:700}.bal-stats{background:var(--soft);border-radius:10px;grid-template-columns:repeat(3,1fr);margin:10px 0 6px;display:grid;overflow:hidden}.bal-stat{flex-direction:column;align-items:center;gap:1px;padding:7px 4px;display:flex}.bal-stat+.bal-stat{border-left:1px solid var(--line)}.bal-stat.bal-after{background:#e8f2fc}.bal-k{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;text-align:center;font-size:11.5px;font-weight:600}.bal-v{color:var(--ink);font-size:18px;font-weight:700;line-height:1.3}.bal-v.warn{color:#856a1b}.bal-v.dim{color:var(--muted)}.person-card .list-row:last-child{border-bottom:none}.team-block-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;font-weight:700;display:flex}.team-member-head{background:var(--card);width:100%;color:var(--ink);text-align:left;cursor:pointer;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:2px 0 0;font-size:15px;font-weight:500;display:flex}.team-member-head:hover:not(:disabled){background:var(--card)}.team-member-head:hover .who{color:var(--brand)}.team-reqs{margin-top:6px}.team-req-right{flex:none;align-items:center;gap:8px;display:flex}.team-row-muted{opacity:.55}.strike{text-decoration:line-through}.team-empty-member{padding:4px 0 10px}.pill.bad{background:var(--bad-bg);color:var(--bad)}.tcal-switch{gap:6px;display:flex}.tcal-switch .tab{flex:none}.tcal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.tcal-nav{align-items:center;gap:8px;display:flex}.tcal-navbtn{background:var(--soft);color:var(--accent);padding:6px 12px}.tcal-navbtn:hover:not(:disabled){background:var(--line)}.tcal-title{text-align:center;min-width:140px;font-size:16px;font-weight:700}.tcal-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.tcal-wd{color:var(--muted);text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--soft);padding:4px 0;font-size:12px;font-weight:700}.tcal-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:3px;min-width:0;min-height:84px;padding:4px;display:flex}.tcal-cell.weekend{background:#fafafb}.tcal-cell.out{background:var(--soft)}.tcal-cell.out .tcal-daynum{color:#b5bac0}.tcal-daynum{color:var(--muted);font-size:12px;font-weight:600}.tcal-cell.today .tcal-daynum{color:var(--brand-ink);background:var(--brand);border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.tcal-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:.4rem;padding:2px 5px;font-size:12px;font-weight:600;line-height:1.3;display:block;overflow:hidden}.tcal-chip.approved{color:#10589f;background:#d7ecfd}.tcal-chip.pending{color:#856a1b;background:#fff3cd}.tcal-chip.past{background:var(--soft);color:var(--muted)}.tcal-chip.mine{box-shadow:inset 0 0 0 1.5px}.tcal-more{width:auto;color:var(--brand);text-align:left;background:0 0;margin:0;padding:0 4px;font-size:12px;font-weight:700}.tcal-more:hover:not(:disabled){background:0 0;text-decoration:underline}.tcal-scroll{border:1px solid var(--line);border-radius:10px;overflow-x:auto}.tcal-tl{border-collapse:collapse;width:100%;font-size:12px}.tcal-tl th{color:var(--muted);text-align:center;border-bottom:1px solid var(--line);min-width:20px;padding:3px 0;font-weight:600;line-height:1.2}.tcal-tl th.weekend{background:var(--soft)}.tcal-tl th.today{color:var(--brand)}.tcal-tl-wd{font-size:10px;font-weight:500;display:block}.tcal-tl-name{z-index:1;background:var(--card);text-align:left;white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--line);max-width:150px;padding:4px 10px 4px 8px;font-size:13px;position:sticky;left:0;overflow:hidden}.tcal-tl tr.mine .tcal-tl-name{font-weight:700}.tcal-tl-team td{background:var(--soft);text-transform:uppercase;letter-spacing:.3px;color:var(--muted);padding:4px 8px;font-size:12px;font-weight:700}.tcal-tl-team .tcal-tl-name{background:var(--soft)}.tcal-tl-day{border-bottom:1px solid var(--line);border-left:1px solid #f0f1f3;height:24px}.tcal-tl-day.weekend{background:var(--soft)}.tcal-tl-day.today{box-shadow:inset 1px 0 0 var(--brand), inset -1px 0 0 var(--brand)}.tcal-tl-day.approved{background:#7fb9f0}.tcal-tl-day.pending{background:#f3d77a}.tcal-tl-day.past{background:#c9ced4}.tcal-tl-day.weekend.approved,.tcal-tl-day.weekend.pending,.tcal-tl-day.weekend.past{opacity:.5}.tcal-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:12px;font-size:13px;display:flex}.tcal-legend span{align-items:center;gap:6px;display:inline-flex}.tcal-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.tcal-swatch.approved{background:#7fb9f0}.tcal-swatch.pending{background:#f3d77a}.tcal-swatch.past{background:#c9ced4}@media (width<=560px){.tcal-cell{min-height:64px;padding:2px}.tcal-chip{padding:1px 3px;font-size:10.5px}}@keyframes alx-spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite alx-spin}.loading-wrap{color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:24px 0;font-size:14px;display:flex}.loading-wrap p{margin:0}.btn-spinner{vertical-align:-3px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-right:9px;animation:.7s linear infinite alx-spin;display:inline-block}.cal-wrap{position:relative}.cal-fields{gap:12px;display:flex}.cal-fields>div{flex:1}.cal-field{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;margin:0;padding:12px 14px;font-size:15.5px;font-weight:500;transition:border-color .15s,box-shadow .15s}.cal-field:hover:not(:disabled){border-color:var(--brand);background:#fff}.cal-field.active{border-color:var(--brand);box-shadow:0 0 0 3px #177ee526}.cal-pop{z-index:20;background:var(--card);border:1px solid var(--line);border-radius:12px;width:320px;max-width:100%;margin-top:8px;padding:14px;position:absolute;left:0;right:auto;box-shadow:0 10px 40px #1118271f}.cal-hint{border-bottom:1px solid var(--line);color:var(--muted);margin:0 0 10px;padding-bottom:10px;font-size:12px;line-height:1.45}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-title{font-size:15px;font-weight:700}.cal-nav{background:var(--soft);width:32px;height:32px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;margin:0;padding:0;font-size:18px;font-weight:700;line-height:1;display:flex}.cal-nav:hover:not(:disabled){background:var(--line)}.cal-nav:disabled{opacity:.3;cursor:default}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-dow{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;padding-bottom:6px;font-size:11px;font-weight:700}.cal-day{aspect-ratio:1;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin:0;padding:0;font-size:14px;font-weight:500;transition:background .1s;display:flex}.cal-day:hover:not(:disabled){background:var(--soft)}.cal-day.is-blank{cursor:default;pointer-events:none}.cal-day.is-past{color:#c8cdd3;cursor:not-allowed;text-decoration:line-through;background:0 0!important}.cal-day.is-weekend,.cal-day.is-frioff{color:var(--muted)}.cal-day.is-holiday{color:var(--bad)}.cal-day.is-holiday:after{content:"";background:var(--bad);border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px}.cal-day{position:relative}.cal-day.in-range{background:#177ee526;border-radius:0}.cal-day.is-preview-end{background:#177ee526}.cal-day.is-start,.cal-day.is-end{font-weight:700;background:var(--brand)!important;color:var(--brand-ink)!important}.cal-day.is-start:hover,.cal-day.is-end:hover{background:var(--brand-hover)!important}.cal-legend{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:12px;padding-top:10px;font-size:12px;display:flex}.cal-legend span{align-items:center;gap:5px;display:inline-flex}.cal-legend .cal-legend-label{color:var(--ink);font-weight:600}.cal-legend .lg-muted{color:var(--muted)}.cal-legend .lg-holiday{color:var(--bad)}.msg.saving{color:var(--brand-hover);background:#e7f1fd;align-items:center;gap:10px;display:flex}.msg.saving .btn-spinner{border:2px solid #146bc240;border-top-color:var(--brand-hover);flex:none;margin:0}
