:root{--bg:#f3f4f6;--card:#fff;--card2:#f9fafb;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#1d4ed8;--primary-soft:#dbeafe;--on-primary:#fff;--danger:#dc2626;--danger-soft:#fee2e2;--ok:#059669;--ok-soft:#d1fae5;--warn:#b45309;--warn-soft:#fef3c7;--sun:#dc2626;--sat:#2563eb;--off:#9ca3af;--oss:#2563eb;--wc:#059669;--manual:#6b7280;--shift-bg:#2563eb14;--tabbar-h:58px;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#121b30;--card2:#182238;--text:#e5e7eb;--muted:#9ca3af;--border:#243049;--primary:#3b82f6;--primary-soft:#1e3a8a;--danger-soft:#450a0a;--ok-soft:#064e3b;--warn-soft:#451a03;--warn:#fbbf24;--sun:#f87171;--sat:#60a5fa;--shift-bg:#60a5fa24}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Apple SD Gothic Neo,Noto Sans JP,Noto Sans KR,Segoe UI,sans-serif;font-size:15px;line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px}input[type=text],input[type=number],input[type=time],input[type=datetime-local],input[type=url],select,textarea{border:1px solid var(--border);background:var(--card2);border-radius:10px;width:100%;min-height:44px;padding:10px 12px}textarea{resize:vertical;min-height:72px}h1,h2,h3{margin:0}h2{font-size:18px}h3{font-size:15px}p{margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.empty{text-align:center;padding:12px 0}.app{flex-direction:column;height:100dvh;display:flex}.loading{height:100%;color:var(--muted);justify-content:center;align-items:center;display:flex}.content{-webkit-overflow-scrolling:touch;padding:calc(env(safe-area-inset-top) + 10px) max(12px, env(safe-area-inset-left)) calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 20px) max(12px, env(safe-area-inset-right));flex:1;overflow-y:auto}.content.flush{padding:calc(env(safe-area-inset-top)) 0 calc(var(--tabbar-h) + env(safe-area-inset-bottom)) 0;flex-direction:column;display:flex;overflow:hidden}.content.hidden{display:none!important}.page{max-width:960px;margin:0 auto}.tabbar{z-index:50;background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{height:var(--tabbar-h);color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.tabbar button .ico{font-size:21px;line-height:1}.tabbar button.active{color:var(--primary);font-weight:600}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:12px}.card.tight{padding:8px 10px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--card2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:10px;min-height:44px;padding:10px 14px}.btn:active{opacity:.75}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:600}.btn-ghost{color:var(--primary);background:0 0;border-color:#0000}.btn-sm{min-height:36px;padding:6px 10px;font-size:14px}.btn-big{width:100%;min-height:56px;font-size:18px}.btn-block{width:100%}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--card2);border-radius:999px;min-height:38px;padding:8px 14px;font-size:14px}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.chip.small{min-height:30px;padding:5px 10px;font-size:13px}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.form-table .field{border-top:1px solid var(--border);grid-template-columns:78px 1fr;align-items:center;gap:6px 10px;margin-bottom:0;padding:7px 0;display:grid}.form-table .field:first-child{border-top:0}.form-table .field-label{color:var(--text);font-size:15px}.form-table .field-hint,.form-table .field .chips{grid-column:2}.form-table .row{min-width:0}.form-table input[type=time]{max-width:150px}.chip .sub{opacity:.75;font-size:10px;line-height:1.1;display:block}.chip.col{flex-direction:column;align-items:flex-start;padding:5px 10px}.field-label,.field-hint{color:var(--muted);font-size:12px}.check{align-items:center;gap:8px;min-height:44px;display:flex}.check input{width:20px;height:20px}.badge{background:var(--card2);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.badge.primary{background:var(--primary-soft);color:var(--primary);border-color:#0000}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.notice{border-radius:10px;margin-bottom:10px;padding:10px 12px;font-size:14px}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.ok{background:var(--ok-soft);color:var(--ok)}.notice.danger{background:var(--danger-soft);color:var(--danger)}.notice.info{background:var(--primary-soft);color:var(--primary)}.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.stat{background:var(--card2);border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.stat-label{color:var(--muted);font-size:11px}.stat-value{font-size:16px;font-weight:600}.stat.strong{background:var(--primary-soft)}.stat.strong .stat-value{color:var(--primary);font-size:18px}.list{flex-direction:column;display:flex}.list-item{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.list-item:first-child{border-top:0}.kv{grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;margin:0}.big-time{font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:40px;font-weight:700}.hr{border:0;border-top:1px solid var(--border);margin:12px 0}.sheet-backdrop{z-index:100;touch-action:none;overscroll-behavior:contain;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:720px;min-height:0;max-height:90dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;display:flex}.sheet-head{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex:1;min-height:0;padding:14px 16px 20px;overflow-y:auto}body.sheet-open .content{overflow:hidden}.month-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.month-nav h2{font-size:20px}.cal-head,.cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-head div{text-align:center;color:var(--muted);padding:4px 0;font-size:12px}.cal-head .sun{color:var(--sun)}.cal-head .sat{color:var(--sat)}.cal-cell{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;align-items:stretch;min-height:76px;padding:4px;font-size:11px;display:flex;overflow:hidden}.cal-cell.blank{cursor:default;background:0 0;border-color:#0000}.cal-cell.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.cal-cell.selected{background:var(--primary-soft)}.cal-cell .d{font-size:13px;font-weight:600}.cal-cell.sun .d{color:var(--sun)}.cal-cell.sat .d{color:var(--sat)}.cal-cell .time{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.3px;flex-direction:column;font-size:10.5px;font-weight:700;line-height:1.15;display:flex}.cal-cell .time .nd{color:var(--muted);font-size:9px;font-weight:500}.cal-cell .code{letter-spacing:-.2px;white-space:nowrap;font-size:11px;font-weight:700}.cal-cell .code.off{color:var(--off);font-weight:500}.cal-cell .code.leave{color:var(--warn)}.cal-cell .code.unknown{color:var(--danger)}.cal-cell .loc{color:var(--muted);white-space:nowrap;font-size:10px}.cal-cell .hrs{color:var(--muted);margin-top:auto;font-size:10px}.cal-cell .mark{color:var(--ok);font-size:10px}.calendar-layout{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.calendar-layout{grid-template-columns:1.2fr 1fr;align-items:start}.cal-cell{min-height:72px}}.daily-layout{grid-template-columns:1fr;grid-template-areas:"head""main""list";gap:12px;display:grid}.daily-head{grid-area:head;min-width:0}.daily-main{grid-area:main;min-width:0}.daily-list{grid-area:list;margin-bottom:0}.daily-head .add-bar{margin-bottom:0}@media (width>=900px){.daily-layout{grid-template:"head main""list main"1fr/minmax(320px,1fr) 1.3fr;align-items:start}}.break-layout{grid-template-columns:1fr;gap:12px;display:grid}.break-layout>.card{margin-bottom:0}@media (width>=640px){.break-layout{grid-template-columns:1fr 1fr;align-items:start}.break-head,.break-foot{grid-column:1/-1}}.sheet-page{flex-direction:column;flex:1;min-height:0;display:flex}.tab-strip{background:var(--card);align-items:center;gap:4px;padding:6px 8px 0;display:flex}.tab-chips{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x;flex:1;gap:6px;min-width:0;padding:2px 2px 6px;display:flex;overflow-x:auto}.tab-chips::-webkit-scrollbar{display:none}.tab-chips .chip{flex:none}.toolbar{border-bottom:1px solid var(--border);background:var(--card);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 10px 6px;display:flex}.toolbar .zoom{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:13px}.sheet-scroll{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior:contain;background:#fff;flex:1;min-height:0;position:relative;overflow:auto}.sheet-host{min-width:100%;display:inline-block}.day-nav{justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;display:flex}.timeline{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:relative;overflow:hidden}.tl-axis{border-right:1px solid var(--border);flex:none;width:46px;position:relative}.tl-axis .h{text-align:right;color:var(--muted);font-size:11px;position:absolute;left:0;right:4px;transform:translateY(-50%)}.tl-body{flex:1;position:relative}.tl-line{border-top:1px solid var(--border);position:absolute;left:0;right:0}.tl-line.half{opacity:.5;border-top-style:dashed}.tl-shift{background:var(--shift-bg);border-top:2px solid var(--primary);border-bottom:2px solid var(--primary);position:absolute;left:0;right:0}.tl-shift span{color:var(--primary);font-size:10px;position:absolute;top:2px;right:6px}.tl-now{border-top:2px solid var(--danger);z-index:3;position:absolute;left:0;right:0}.tl-now:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-5px;left:-4px}.tl-assign{background:var(--primary-soft);border-left:3px solid var(--primary);color:var(--text);z-index:1;border-radius:6px;padding:3px 5px;font-size:11px;line-height:1.2;position:absolute;left:3px;overflow:hidden}.tl-assign.rest{background:var(--warn-soft);border-left-color:var(--warn)}.tl-assign .time{color:var(--muted);font-size:10px;display:block}.assign-list{grid-template-columns:auto 1fr;gap:2px 10px;margin-top:6px;font-size:13px;display:grid}.assign-list .rest{color:var(--warn);font-weight:600}.tl-task{color:#fff;cursor:pointer;z-index:2;border-radius:8px;padding:4px 6px;font-size:12px;line-height:1.25;position:absolute;overflow:hidden;box-shadow:0 1px 2px #00000026}.tl-task.oss{background:var(--oss)}.tl-task.wheelchair{background:var(--wc)}.tl-task.manual{background:var(--manual)}.tl-task.running{outline-offset:-3px;outline:2px solid #fff}.tl-task.planned{opacity:.6;outline-offset:-3px;outline:2px dashed #fff}.tl-task .t{font-weight:700}.tl-task .s{opacity:.9;font-size:11px}.add-bar{gap:8px;margin:10px 0;display:flex}.add-bar .btn{flex:1;font-weight:600}.add-bar .btn.oss{background:var(--oss);color:#fff;border-color:#0000}.add-bar .btn.wheelchair{background:var(--wc);color:#fff;border-color:#0000}.task-dot{border-radius:50%;flex:none;width:10px;height:10px}.task-dot.oss{background:var(--oss)}.task-dot.wheelchair{background:var(--wc)}.task-dot.manual{background:var(--manual)}.timer-card{text-align:center}.timer-card .label{color:var(--muted);font-size:13px}.progress{background:var(--card2);border-radius:999px;height:10px;margin:8px 0;overflow:hidden}.progress>div{background:var(--ok);height:100%;transition:width .5s}.progress.over>div{background:var(--danger)}.section{margin-bottom:16px}.section h3{margin-bottom:8px}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.code-list{border:1px solid var(--border);border-radius:10px;max-height:320px;overflow-y:auto}.code-row{border-top:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.code-row:first-child{border-top:0}.code-row b{flex:none;width:64px;font-family:ui-monospace,Menlo,monospace}.mono{font-family:ui-monospace,Menlo,monospace}
