:root{--bg: #f5f7fa;--panel: #ffffff;--ink: #142033;--muted: #5b6678;--line: #dde3eb;--accent: #1d4e89;--accent-ink: #ffffff;--accent-soft: #e8f0fa;--bar: #ffffff;--bar-ink: #142033;--pending: #c0262d;--pending-soft: rgba(220, 38, 38, .12);--ok: #1e7b45;--ok-soft: #e6f4ec;--bad: #6b7280;--bad-soft: #eef0f3;--personal: #5b4bb0;--personal-soft: #efecfb;--today: #eef4fc;--shadow: 0 10px 30px rgba(20, 32, 51, .12);--display: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--body)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--display);font-weight:600;margin:0;text-wrap:balance}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));max-width:1400px;margin:0 auto}.topbar{background:var(--bar);color:var(--bar-ink);padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--line);box-shadow:inset 0 3px 0 var(--accent)}.topbar .wrap{display:flex;align-items:center;gap:12px;padding-block:12px}.brand{font:700 18px/1.1 var(--display);color:var(--accent)}.brand small{display:block;font:500 11px/1.4 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.who{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}.who .em{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.role{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.menu-btn{background:var(--panel);border:1px solid var(--line);color:var(--bar-ink);border-radius:8px;padding:6px 10px}.menu{position:absolute;right:max(16px,env(safe-area-inset-right));top:calc(56px + env(safe-area-inset-top));background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);z-index:25;min-width:200px;padding:6px;display:flex;flex-direction:column}.menu button{background:none;border:0;text-align:left;padding:8px 10px;border-radius:6px}.menu button:hover{background:var(--bg)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-block:16px 10px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel)}.seg button{border:0;background:none;padding:7px 13px;font-weight:500;color:var(--muted)}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.nav{display:flex;align-items:center;gap:6px}.nav button{border:1px solid var(--line);background:var(--panel);border-radius:8px;height:34px;min-width:34px;padding:0 10px}.period{font:600 20px/1.2 var(--display);color:var(--ink);min-width:0}.spacer{flex:1}.btn{border:1px solid var(--line);background:var(--panel);padding:7px 14px;border-radius:8px;font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:#c0262d;border-color:#c0262d;background:none}.btn.danger-solid{background:#c0262d;border-color:#c0262d;color:#fff}.delbox{background:#dc262612;border:1px solid rgba(192,38,45,.35);border-radius:10px;padding:10px 12px}.delbox .err{color:#c0262d;font-weight:600}.btn.sm{padding:4px 10px;font-size:13px}.btn[disabled]{opacity:.5;cursor:default}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding-bottom:14px}.chips{display:flex;gap:6px}.chipf{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:3px 11px;font-size:13px;color:var(--muted)}.chipf.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.search{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 10px;width:min(260px,100%)}.count{color:var(--muted);font-size:13px}.st{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;white-space:nowrap}.st:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.st-pending{color:var(--pending);background:var(--pending-soft)}.st-confirmed{color:var(--ok);background:var(--ok-soft)}.st-cancelled{color:var(--bad);background:var(--bad-soft)}.st-personal{color:var(--personal);background:var(--personal-soft)}.ev{display:block;width:100%;text-align:left;border:0;border-radius:6px;padding:4px 7px;font-size:12.5px;line-height:1.3;overflow:hidden}.ev b{font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev small{display:block;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev.s-confirmed{background:var(--ok-soft);color:var(--ok)}.ev.s-pending{background:var(--pending-soft);color:var(--pending)}.ev.s-cancelled{background:var(--bad-soft);color:var(--bad);text-decoration:line-through}.ev.s-personal{background:var(--personal-soft);color:var(--personal)}.who-tag{font:600 10px/1 var(--mono);border:1px solid currentColor;border-radius:4px;padding:1px 3px;margin-right:5px;vertical-align:1px}.ev small.booked-line{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;opacity:.75;margin-top:2px}.owner{font-size:13px;color:var(--muted)}.owner b{color:var(--ink)}ul.booked{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}ul.booked li{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 9px;font-size:13px;font-weight:500}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-height:180px;display:flex;flex-direction:column;min-width:0}.day.today{background:var(--today)}.day h3{font:600 12px/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 10px 6px;display:flex;justify-content:space-between;align-items:baseline}.day h3{text-transform:none;letter-spacing:0;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 12px}.day .evs:empty{display:none}.day h3 .wname{display:inline-flex;align-items:center;gap:8px}.dadd{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--accent);font-size:18px;line-height:1;padding:0}.dadd:hover{background:var(--accent-soft)}.day h3 .wdate{font:700 14px/1.2 var(--display);color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:3px 8px;white-space:nowrap}.day.today h3 .wdate{background:var(--accent);color:var(--accent-ink)}.day h3 .wname{font:500 13px/1.2 var(--body);color:var(--muted);white-space:nowrap}.day .evs{display:flex;flex-direction:column;gap:5px;padding:0 12px 12px}.day .add{margin:auto 8px 8px;border:1px dashed var(--line);background:none;color:var(--muted);border-radius:6px;padding:3px;font-size:12px}.month{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.mhead,.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mhead div{padding:8px 10px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}.cell{min-height:112px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0}.cell:nth-child(7n){border-right:0}.cell.out{background:var(--bg)}.cell.out .dn{opacity:.45}.cell.today{background:var(--today)}.dn{font:600 13px/1 var(--body);display:flex;justify-content:space-between;align-items:center}.dn button{border:0;background:none;color:var(--muted);font-size:15px;line-height:1;padding:0 2px;opacity:0}.cell:hover .dn button,.dn button:focus-visible{opacity:1}.more{border:0;background:none;color:var(--muted);font-size:12px;text-align:left;padding:0 4px}.agenda{display:none}.agenda.show{display:flex;flex-direction:column;gap:10px}.agenda.show .aday{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px}.agenda.show .ad{text-align:center}.agenda.show .ad b{display:block;font:700 20px/1 var(--display)}.agenda.show .ad small{font-size:11px;color:var(--muted);text-transform:uppercase}.agenda.show .evs{display:flex;flex-direction:column;gap:5px;min-width:0}.bgroup+.bgroup{margin-top:8px}.bsub{display:block;font-size:12px;font-weight:600;color:var(--accent);margin-top:4px}.year{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.mcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}.mcard.now{border-color:var(--accent)}.mcard header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.mcard h3{font-size:17px}.mcard h3 button{border:0;background:none;padding:0;font:inherit;color:inherit}.mcard .tot{font-size:12px;color:var(--muted)}.yl{display:flex;flex-direction:column;gap:2px}.yl button{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;border:0;background:none;text-align:left;padding:3px 4px;border-radius:5px;font-size:13px}.yl button:hover{background:var(--bg)}.yl .d{color:var(--muted);font-family:var(--mono);font-size:12px;white-space:nowrap}.yl .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yl .s-pending .n{color:var(--pending)}.yl .s-cancelled .n{color:var(--bad);text-decoration:line-through}.yl .s-personal .n{color:var(--personal)}.empty{color:var(--muted);font-size:13px}.sheet-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow-x:auto}.sheet{border-collapse:collapse;width:100%;min-width:900px;font-size:13px}.sheet th{background:var(--accent);color:var(--accent-ink);text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);font-size:12px;position:sticky;top:0}.sheet td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}.sheet tr.mrow td{background:var(--bg);font:700 13px var(--display);padding:6px 10px}.sheet tr.r{cursor:pointer}.sheet tr.r:hover td{background:var(--bg)}.sheet tr.s-pending td{color:var(--pending);background:#dc26260d}.sheet tr.s-cancelled td{color:var(--muted);text-decoration:line-through}.sheet tr.s-personal td{color:var(--personal)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1480;z-index:30}.modal.is-pending{background:linear-gradient(#dc262612,#dc262612),var(--panel);box-shadow:inset 0 4px #c0262d,var(--shadow)}.modal.is-pending .booked li{background:var(--panel)}.modal{position:fixed;z-index:31;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 24px));max-height:calc(100% - 32px);overflow-y:auto;background:var(--panel);border-radius:14px;box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:14px}.modal-head{display:flex;gap:12px;align-items:flex-start}.modal-head h2{font-size:21px}.modal-head p{margin:3px 0 0;color:var(--muted)}.x{margin-left:auto;border:0;background:var(--bg);border-radius:8px;width:34px;height:34px;font-size:18px;flex:none}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form .wide{grid-column:1 / -1}.lbl{display:block;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.form input,.form select,.form textarea,.modal input[type=password],.modal input[type=email]{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--panel)}.form textarea{min-height:70px;resize:vertical}.ro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;border-top:1px solid var(--line);padding-top:12px}.ro div{font-weight:500;overflow-wrap:anywhere;white-space:pre-wrap}.row-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row-btns .spacer{flex:1}.err{color:var(--bad);font-size:13px}.hint{color:var(--muted);font-size:12.5px}.statusseg button.on.p{background:var(--pending-soft);color:var(--pending)}.statusseg button.on.c{background:var(--ok-soft);color:var(--ok)}.statusseg button.on.x2{background:var(--bad-soft);color:var(--bad)}.choice{display:flex;flex-direction:column;gap:8px}.choice label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}.choice label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.choice small{display:block;color:var(--muted)}.team{width:100%;border-collapse:collapse}.team td{padding:8px 4px;border-bottom:1px solid var(--line)}.team select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--panel)}ol.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.lcards{display:none;flex-direction:column;gap:8px}.lmonth{font-size:15px;margin:8px 0 0}.lcard{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:start;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}.lcard .ld{text-align:center;line-height:1.05}.lcard .ld b{display:block;font:700 20px/1 var(--display)}.lcard .ld small{font-size:11px;color:var(--muted);text-transform:uppercase}.lcard .lb{min-width:0;display:flex;flex-direction:column;gap:2px}.lcard .lb b{font-weight:600}.lcard .lb small{color:var(--muted);font-size:12.5px}.lcard.s-cancelled .lb b{text-decoration:line-through;color:var(--muted)}.lcard.s-pending{background:#dc262612;border-color:#c0262d59}.lcard.s-pending .lb b{color:var(--pending)}.fab{display:none;position:fixed;right:max(18px,calc(env(safe-area-inset-right) + 12px));bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));width:58px;height:58px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);font-size:30px;line-height:1;box-shadow:var(--shadow);z-index:20}.coswitch button{padding:6px 12px;font-weight:600}.warn{color:#b45309;margin-right:4px}.clash{background:#fff7e6;border:1px solid #f5c26b;border-radius:10px;padding:10px 12px;font-size:13.5px;color:#7a4a00}.clash ul{margin:6px 0 0;padding-left:18px}.clash .row-btns{margin-top:10px}.team-wrap{overflow-x:auto}.team th{text-align:left;font-size:12px;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--line)}.team td:first-child{overflow-wrap:anywhere;padding-right:10px}.feed{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;align-items:center}.feed b{grid-column:1 / -1}.feed input{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:12.5px var(--mono);background:var(--bg);min-width:0}.noacc{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:16px;padding:26px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.install-hero{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.install-hero img{border-radius:14px}.install-hero small{display:block;color:var(--muted)}ol.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}ul.sups{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}ul.sups li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}ul.sups li.off{opacity:.55}ul.sups small{display:block;color:var(--muted);margin-top:2px}.tag{display:inline-block;font:600 11px/1.4 var(--mono);border:1px solid var(--line);border-radius:5px;padding:0 5px;margin-right:5px;color:var(--ink)}.tag.perf{color:var(--accent);border-color:var(--accent)}.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}.check input{margin-top:3px;width:18px;height:18px}ul.bin{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}ul.bin li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}ul.bin li small{display:block;color:var(--muted)}.toast{display:flex;align-items:center;gap:14px}@media (max-width: 760px){.toast{bottom:auto;top:calc(14px + env(safe-area-inset-top))}}.toast-act{border:0;background:none;color:#9cc3ff;font-weight:700;padding:2px 4px}.pw{position:relative}.pw input{padding-right:46px!important}.eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:none;color:var(--muted);border-radius:8px;display:grid;place-items:center}.eye:hover,.eye[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.login{min-height:100vh;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-right)) 24px max(16px,env(safe-area-inset-left))}.login form{border-top:4px solid var(--accent);width:min(380px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}.login h1{font-size:26px}.login p{margin:0;color:var(--muted)}.login input{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:var(--panel)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:40;box-shadow:var(--shadow);max-width:calc(100% - 32px);font-size:13px}.loading{color:var(--muted);padding:30px 0;text-align:center}@media (max-width: 900px),(max-height: 500px) and (orientation: landscape){.week{grid-template-columns:minmax(0,1fr)}.day{min-height:0}.day .add{margin-top:0}.month{display:none}.agenda{display:flex;flex-direction:column;gap:10px}.agenda .aday{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px}.agenda .aday.today{background:var(--today)}.agenda .ad{text-align:center}.agenda .ad b{display:block;font:700 20px/1 var(--display)}.agenda .ad small{font-size:11px;color:var(--muted);text-transform:uppercase}.agenda .evs{display:flex;flex-direction:column;gap:5px;min-width:0}}@media (max-width: 760px),(max-height: 500px) and (orientation: landscape){.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"period nav" "views views";gap:10px;padding-block:12px 8px}.period{grid-area:period;font-size:19px;align-self:center}.nav{grid-area:nav}.views{grid-area:views;display:grid;grid-template-columns:repeat(4,1fr)}.views button{padding:9px 4px}.spacer,.tb-export,.tb-new{display:none}.nav button{height:40px;min-width:40px}.filters{flex-direction:column;align-items:stretch;gap:8px}.chips{overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chipf{padding:6px 13px;flex:none}.search{width:100%;padding:9px 12px}.search,.form input,.form select,.form textarea,.login input,.modal input[type=password]{font-size:16px}.count{font-size:12px}.day.none{flex-direction:row;align-items:center;justify-content:space-between}.day.none h3{flex:1}.day.none .add{margin:0 8px}.day .add{padding:8px;font-size:13px}.ev{padding:7px 9px;font-size:14px}.lcards{display:flex}.sheet-wrap{display:none}.fab{display:block}main.wrap{padding-bottom:70px}.year{grid-template-columns:minmax(0,1fr)}.yl button{padding:6px 4px;font-size:14px}.modal{left:0;right:0;top:auto;bottom:0;transform:none;width:100%;max-height:92vh;border-radius:16px 16px 0 0;padding:18px max(16px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.row-btns .btn{padding:10px 16px}.menu button{padding:12px}}@media (max-width: 760px) and (prefers-reduced-motion: no-preference),(max-height: 500px) and (orientation: landscape) and (prefers-reduced-motion: no-preference){.modal{animation:up .18s ease-out}@keyframes up{0%{transform:translateY(30px);opacity:.4}}}@media (max-height: 500px) and (orientation: landscape){.topbar .wrap{padding-block:6px}.brand small{display:none}.toolbar{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"period views nav";padding-block:8px 6px}.filters{flex-direction:row;align-items:center;flex-wrap:nowrap}.search{width:auto;flex:1}.agenda,.lcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.lmonth{grid-column:1 / -1}.week,.year{grid-template-columns:repeat(2,minmax(0,1fr))}.modal{max-height:96vh}}@media (max-width: 760px){.topbar .wrap{flex-wrap:wrap}.coswitch{order:3;width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:1fr}}@media (max-width: 560px){.form{grid-template-columns:minmax(0,1fr)}.who .em{display:none}.period{font-size:17px;width:100%;order:-1}}@media (prefers-reduced-motion: no-preference){.modal{animation:pop .15s ease-out}@keyframes pop{0%{opacity:0;transform:translate(-50%,-48%)}}}
