:root{--bg:#fff;--text:#1a1a1a;--muted:#5c5c5c;--line:#d0d0d0;--primary:#1f5fbf;--primary-text:#fff;--danger:#b3261e;--surface:#f4f6f9}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121212;--text:#f0f0f0;--muted:#b0b0b0;--line:#3a3a3a;--primary:#7aa7ff;--primary-text:#0b1a33;--danger:#ff8a80;--surface:#1e1e1e}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.6}.page{max-width:480px;margin:0 auto;padding:16px}h1{margin:8px 0 16px;font-size:1.375rem}p{margin:0 0 12px}.muted{color:var(--muted)}.stack{flex-direction:column;gap:8px;display:flex}label{margin-bottom:4px;font-weight:600;display:block}input{border:1px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--text);border-radius:8px;padding:8px 12px;font-size:1rem}button{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:1rem}button.primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary);font-weight:600}button.wide{width:100%}button:disabled{opacity:.6}.row{gap:8px;display:flex}.row>*{flex:1}.alert{color:var(--danger);font-weight:600}.notice{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:12px}.header{border-bottom:1px solid var(--line);justify-content:flex-end;padding:8px 16px;display:flex;position:relative}.menu{background:var(--bg);border:1px solid var(--line);z-index:10;border-radius:8px;flex-direction:column;gap:8px;min-width:220px;padding:8px;display:flex;position:absolute;top:60px;right:16px}.confirm-name{text-align:center;margin:24px 0;font-size:1.5rem;font-weight:700}select{border:1px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--text);border-radius:8px;padding:8px 12px;font-size:1rem}input[type=file]{border:none;min-height:48px;padding:8px 0}.table-scroll{max-width:100%;overflow-x:auto}.shift-table{border-collapse:collapse;font-size:1rem}.shift-table th,.shift-table td{border:1px solid var(--line);text-align:center;white-space:nowrap;padding:4px 6px}.shift-table tbody th{background:var(--bg);text-align:left;position:sticky;left:0}.bottom-actions{margin-top:16px}a.button{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;padding:8px 16px;font-size:1rem;text-decoration:none;display:flex}a.button.primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary);font-weight:600}.invite{align-items:center}.qr{background:#fff;border-radius:8px;width:240px;height:240px;padding:8px}.url{word-break:break-all;font-size:1rem}h2.section{margin:16px 0 0;font-size:1.125rem}.has-bottom-nav{padding-bottom:96px}.bottom-nav{border-top:1px solid var(--line);background:var(--bg);z-index:5;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:64px;color:var(--muted);background:0 0;border:0;border-radius:0}.bottom-nav button.on{color:var(--primary);font-weight:700}.segmented{background:var(--surface);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:12px;padding:4px;display:grid}.segmented button{background:0 0;border:0}.segmented button.on{background:var(--bg);color:var(--primary);font-weight:700;box-shadow:0 1px 3px #00000026}.pager{grid-template-columns:48px 1fr 48px;align-items:center;gap:8px;display:grid}.pager button{padding:0;font-size:1.25rem}.pager-label{text-align:center;font-size:1.125rem;font-weight:700}.cal{border-collapse:collapse;table-layout:fixed;width:100%}.cal th{color:var(--muted);padding:2px 0;font-size:1rem;font-weight:600}.cal td{vertical-align:top;padding:1px}.cal-day{border-radius:6px;flex-direction:column;align-items:center;gap:2px;width:100%;min-height:64px;padding:2px 0;display:flex;position:relative}.cal-day.today{border:2px solid var(--primary)}.cal-day.picked{background:var(--surface);outline:2px solid var(--primary)}.cal-num{font-size:1rem;line-height:1.2}.chip{color:#fff;text-align:center;border-radius:4px;min-width:1.75em;padding:0 3px;font-size:1rem;font-weight:700;line-height:1.4;display:inline-block}.cal-day .dot{color:#b45309;font-size:1rem;line-height:1;position:absolute;top:0;right:2px}.legend{flex-wrap:wrap;gap:4px 12px;margin:4px 0;padding:0;list-style:none;display:flex}.person{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:8px;min-height:48px;padding:4px 0;display:grid}.person-name{font-weight:600}.banner{margin-bottom:12px}.day-detail{margin:8px 0 0;font-size:1.125rem;font-weight:700}
