: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:720px;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;display:flex}.appnav .tab{flex:none;width:auto;padding:8px 16px}.signout{flex: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{flex-wrap:wrap;height:auto;padding:10px 16px}.appnav{flex-basis:100%;order:3}.appmain{padding:20px 16px 32px}.panel{padding:20px}}.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%}@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}
