:root{--bg:#f4fbf8;--surface:#fff;--surface-2:#eef7f3;--surface-3:#e2f1ea;--line:#d5e8df;--line-strong:#b9d6c8;--text:#1f2e29;--text-2:#4d625b;--text-3:#74877f;--mint:#2f9e7f;--mint-strong:#1f7f64;--mint-soft:#d8f1e7;--mint-ink:#fff;--danger:#c2453c;--danger-soft:#fbe7e4;--warn:#a8700e;--warn-soft:#fbf0d9;--info-soft:#e5eefb;--focus:#1f7f64;--shadow:0 1px 2px #1f2e290f, 0 6px 24px #1f2e2914;--radius:14px;--radius-sm:10px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101816;--surface:#17221f;--surface-2:#1d2b27;--surface-3:#243631;--line:#2b3d38;--line-strong:#3c544d;--text:#e6f1ec;--text-2:#b5c8c0;--text-3:#8ea39b;--mint:#4cc5a1;--mint-strong:#6fd8b7;--mint-soft:#1f3f35;--mint-ink:#08201a;--danger:#f08479;--danger-soft:#3d2220;--warn:#e7b65a;--warn-soft:#3a2f18;--info-soft:#1d2a3d;--focus:#6fd8b7;--shadow:0 1px 2px #0000004d, 0 8px 28px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#101816;--surface:#17221f;--surface-2:#1d2b27;--surface-3:#243631;--line:#2b3d38;--line-strong:#3c544d;--text:#e6f1ec;--text-2:#b5c8c0;--text-3:#8ea39b;--mint:#4cc5a1;--mint-strong:#6fd8b7;--mint-soft:#1f3f35;--mint-ink:#08201a;--danger:#f08479;--danger-soft:#3d2220;--warn:#e7b65a;--warn-soft:#3a2f18;--info-soft:#1d2a3d;--focus:#6fd8b7;--shadow:0 1px 2px #0000004d, 0 8px 28px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;padding:0;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Meiryo,system-ui,sans-serif;font-size:15px;line-height:1.55}body{overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px}a{color:var(--mint-strong)}:focus-visible{outline:2.5px solid var(--focus);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{border:1px solid var(--line-strong);background:var(--surface);min-height:40px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--mint);border-color:var(--mint);color:var(--mint-ink)}.btn.primary:hover{background:var(--mint-strong)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{min-height:32px;padding:0 10px;font-size:13px}.icon-btn{width:44px;height:44px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.field{flex-direction:column;gap:4px;display:flex}.field>span{color:var(--text-2);font-size:13px;font-weight:600}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:44px;padding:8px 12px}.textarea{resize:vertical;min-height:96px}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-2);color:var(--text-2)}.switch{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-size:14px;display:inline-flex;position:relative}.switch input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:999px;flex:none;width:42px;height:26px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch input:checked{background:var(--mint)}.switch input:checked:after{transform:translate(16px)}.chip{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;display:inline-flex}.chip.demo{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb, var(--warn) 35%, transparent);font-weight:700}.chip.ok{background:var(--mint-soft);color:var(--mint-strong);border-color:#0000}.chip.err{background:var(--danger-soft);color:var(--danger);border-color:#0000}.chip.new{background:var(--info-soft);color:#3b6fb6;border-color:#0000;font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.muted{color:var(--text-3)}.small{font-size:13px}.notice{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);padding:10px 12px;font-size:13px}.notice.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.notice.err{background:var(--danger-soft);color:var(--danger);border-color:#0000}.avatar{color:#fff;letter-spacing:-.02em;text-shadow:0 1px 1px #0003;border-radius:50%;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:11.5px;font-weight:700;line-height:1;display:inline-flex}.avatar.sm{width:22px;height:22px;font-size:9.5px}.app{min-height:100dvh;padding-left:var(--sal);padding-right:var(--sar);grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);display:grid}.topbar{z-index:20;padding:calc(var(--sat) + 6px) 8px 6px 14px;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex;position:sticky;top:0}.logo{letter-spacing:.02em;color:var(--mint-strong);white-space:nowrap;align-items:center;gap:8px;font-size:16px;font-weight:700;display:inline-flex}@media (max-width:380px){.logo{gap:6px;font-size:14.5px}.topbar{padding-left:10px}.status-pill{display:none}}.logo img{border-radius:7px;width:26px;height:26px}.topbar .grow{flex:1;min-width:0}.status-pill{min-width:0;color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;align-items:center;gap:6px;font-size:12px;display:inline-flex;overflow:hidden}.main{min-width:0;padding-bottom:calc(72px + var(--sab));flex-direction:column;display:flex}.sidebar,.panel{display:none}.bottom-nav{z-index:30;padding:4px calc(8px + var(--sar)) calc(4px + var(--sab)) calc(8px + var(--sal));background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:52px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;display:flex;position:relative}.bottom-nav button[aria-current=page]{color:var(--mint-strong)}.bottom-nav .add-btn span.circle{background:var(--mint);width:40px;height:40px;color:var(--mint-ink);box-shadow:0 4px 12px color-mix(in srgb, var(--mint) 40%, transparent);border-radius:50%;justify-content:center;align-items:center;display:flex}.badge.mint{background:var(--mint);color:var(--mint-ink)}.side-badge{background:var(--mint);min-width:22px;height:20px;color:var(--mint-ink);border-radius:10px;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-size:12px;display:inline-flex}@media (min-width:1024px){.mobile-only{display:none!important}}.badge{background:var(--danger);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;display:flex;position:absolute;top:4px;right:calc(50% - 22px)}.month{padding:6px 10px 4px}.month-head{align-items:center;gap:2px;padding:2px 0 6px;display:flex}.month-title{white-space:nowrap;margin:0 6px;font-size:19px;font-weight:700}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.dow{text-align:center;color:var(--text-3);padding:2px 0;font-size:11.5px;font-weight:600}.dow.sun,.day-cell.sun .day-num{color:#c4554c}.dow.sat,.day-cell.sat .day-num{color:#3f73b8}.day-cell{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:1px;min-width:0;min-height:50px;padding:4px 1px 3px;display:flex;position:relative}.day-cell:hover{background:var(--surface-2)}.day-cell.out{opacity:.42}.day-cell .day-num{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14.5px;font-weight:600;line-height:1;display:flex}.day-cell.today .day-num{background:var(--mint-soft);color:var(--mint-strong)}.day-cell.selected{background:var(--mint-soft)}.day-cell.selected .day-num{background:var(--mint);color:var(--mint-ink)}.day-cell.holiday .day-num{color:#c4554c}.day-meta{min-height:14px;color:var(--text-2);align-items:center;gap:2px;font-size:10.5px;font-weight:600;line-height:1;display:flex}.marker{border-radius:50%;flex:none;width:6px;height:6px}.day-titles{display:none}.collapse-strip{align-items:center;gap:4px;display:flex}.collapse-strip .strip-days{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.collapse-toggle{justify-content:center;display:flex}.collapse-toggle button{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;min-height:32px;padding:0 12px;font-size:12px;display:inline-flex}.day-list{padding:6px 12px 16px}.list-head{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 2px 6px;display:flex}.list-head h2{margin:0;font-size:17px;font-weight:700}.list-head .counts{color:var(--text-2);font-size:13px}.list-head .spacer{flex:1}.seg{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:2px;display:inline-flex}.seg button{min-height:30px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0 10px;font-size:12.5px;font-weight:600}.seg button[aria-pressed=true]{background:var(--mint-soft);color:var(--mint-strong)}.event-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.event-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:stretch;min-width:0;display:flex;overflow:hidden}.event-row .accent{flex:none;width:4px}.check{cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;width:48px;min-height:52px;padding:0;display:flex}.check .ring{border:2px solid var(--line-strong);color:#0000;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:background .12s,border-color .12s;display:flex}.check:hover .ring{border-color:var(--mint)}.check[aria-checked=true] .ring{background:var(--mint);border-color:var(--mint);color:var(--mint-ink)}.check:disabled{cursor:default;opacity:.55}.event-body{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:flex-start;gap:10px;min-width:0;padding:9px 12px 9px 2px;display:flex}.event-body:hover{background:var(--surface-2)}.event-title{word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.event-sub{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:2px 8px;margin-top:1px;font-size:12.5px;display:flex}.event-sub .icons{color:var(--text-3);gap:4px;display:inline-flex}.event-row.done .event-title{color:var(--text-2);text-decoration:line-through;text-decoration-thickness:1.5px}.event-row.done{background:var(--surface-2)}.event-row.pending{opacity:.75}.empty{text-align:center;color:var(--text-3);padding:28px 12px;font-size:14px}.section-title{color:var(--text-2);align-items:center;gap:8px;margin:18px 2px 8px;font-size:13px;font-weight:700;display:flex}.section-title .count{color:var(--text-3);font-weight:600}.day-sep{color:var(--text-3);margin:12px 2px 6px;font-size:12.5px;font-weight:700}.sheet-backdrop{z-index:50;background:#10181659;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-height:calc(100dvh - var(--sat) - 24px);background:var(--surface);box-shadow:var(--shadow);border-radius:20px 20px 0 0;flex-direction:column;display:flex;overflow:hidden}.sheet-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:8px 10px 8px 14px;display:flex}.sheet-head h2{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:16px;overflow:hidden}.sheet-body{padding:14px 16px calc(20px + var(--sab));-webkit-overflow-scrolling:touch;flex-direction:column;gap:14px;display:flex;overflow-y:auto}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.detail-line{align-items:flex-start;gap:10px;font-size:14.5px;display:flex}.detail-line>svg{color:var(--text-3);flex:none;margin-top:3px}.detail-desc{white-space:pre-wrap;word-break:break-word}.label-list{flex-wrap:wrap;gap:6px;display:flex}.sheet-foot{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.page{width:100%;max-width:920px;margin:0 auto;padding:10px 14px 20px}.page h1{margin:6px 0 4px;font-size:20px}.page .lead{color:var(--text-2);margin:0 0 10px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.cal-row{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;padding:10px 12px;display:grid}.cal-row:last-child{border-bottom:none}.cal-row .name{word-break:break-word;font-weight:600}.cal-row .meta{color:var(--text-2);flex-wrap:wrap;grid-column:2;align-items:center;gap:4px 6px;font-size:12.5px;display:flex}.cal-row .controls{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:2px 14px;display:flex}.group-head{background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.color-dot{border:1px solid #00000014;border-radius:50%;flex:none;width:14px;height:14px}.toast-stack{left:50%;bottom:calc(80px + var(--sab));z-index:60;flex-direction:column;gap:8px;width:min(440px,100vw - 24px);display:flex;position:fixed;transform:translate(-50%)}.toast{color:#f1f8f5;box-shadow:var(--shadow);background:#22332e;border-radius:14px;align-items:center;gap:10px;padding:10px 10px 10px 14px;font-size:14px;display:flex}.toast.err{background:#6b231d}.toast .msg{flex:1;min-width:0}.toast button{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff24;border:none;border-radius:999px;min-height:34px;padding:0 12px;font-weight:700}.banner{margin:8px 12px 0}.menu{right:8px;top:calc(var(--sat) + 52px);z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:210px;box-shadow:var(--shadow);flex-direction:column;padding:6px;display:flex;position:absolute}.menu button,.menu a{text-align:left;cursor:pointer;min-height:44px;color:var(--text);background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:0 12px;font-size:14.5px;text-decoration:none;display:flex}.menu button:hover,.menu a:hover{background:var(--surface-2)}.viewset-btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:0 10px 0 6px;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.viewset-btn .stack{display:inline-flex}.viewset-btn .stack .avatar{border:2px solid var(--surface);margin-left:-6px}.viewset-btn .stack .avatar:first-child{margin-left:0}.person-list{margin:0;padding:0;list-style:none}.person-list li{align-items:center;gap:8px;min-height:44px;padding:0 4px;display:flex}.person-list li label{cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;min-height:44px;display:flex}.person-list li label span.n{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-list input[type=checkbox]{width:20px;height:20px;accent-color:var(--mint);flex:none}.picker-group{flex-wrap:wrap;gap:4px 6px}.picker-group .gname{white-space:nowrap}.picker-group .btn{min-height:28px;padding:0 6px;font-size:12px}.offline-bar{background:var(--warn-soft);color:var(--warn);text-align:center;padding:6px 14px;font-size:13px;font-weight:600}.demo-bar{background:var(--warn-soft);color:var(--warn);text-align:center;padding:5px 14px;font-size:12.5px}@media (min-width:700px){.main.calendar-view{padding-bottom:calc(72px + var(--sab));grid-template-columns:minmax(330px,1fr) minmax(300px,380px);align-items:start;display:grid}.main.calendar-view .month{top:calc(var(--sat) + 57px);padding:12px 14px;position:sticky}.main.calendar-view .day-list{border-left:1px solid var(--line);min-height:calc(100dvh - 120px);padding:10px 14px 20px}.day-cell{min-height:62px}.collapse-toggle{display:none}.sheet-backdrop.side{pointer-events:none;top:calc(var(--sat) + 57px);background:0 0;justify-content:flex-end;align-items:stretch}.sheet-backdrop.side .sheet{pointer-events:auto;border-left:1px solid var(--line);border-radius:0;width:min(400px,52vw);height:100%;max-height:none}.sheet-backdrop.side .sheet-body{padding-bottom:calc(90px + var(--sab))}}@media (min-width:1024px){.app{grid-template-rows:auto 1fr;grid-template-columns:220px minmax(0,1fr)}.topbar{grid-column:1/-1}.sidebar{border-right:1px solid var(--line);flex-direction:column;gap:2px;height:calc(100dvh - 57px);padding:10px 8px 20px;display:flex;position:sticky;top:57px;overflow-y:auto}.sidebar .nav-item{cursor:pointer;min-height:40px;color:var(--text-2);text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.sidebar .nav-item:hover{background:var(--surface-2)}.sidebar .nav-item[aria-current=page]{background:var(--mint-soft);color:var(--mint-strong)}.sidebar .side-section{color:var(--text-3);margin:14px 6px 4px;font-size:12px;font-weight:700}.bottom-nav{display:none}.main{padding-bottom:20px}.main.calendar-view{grid-template-columns:minmax(0,1fr) clamp(300px,26vw,380px);padding-bottom:0}.main.calendar-view .month{padding:12px 16px;position:static}.main.calendar-view .day-list{height:calc(100dvh - 57px);position:sticky;top:57px;overflow-y:auto}.month-grid.wide{border-top:1px solid var(--line);border-left:1px solid var(--line);gap:0}.month-grid.wide .dow{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 0}.month-grid.wide .day-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;align-items:stretch;min-height:112px;padding:4px 4px 6px}.month-grid.wide .day-cell .day-num{align-self:flex-start;width:26px;height:26px;font-size:13.5px}.month-grid.wide .day-meta{display:none}.month-grid.wide .day-titles{flex-direction:column;gap:2px;min-width:0;margin-top:2px;display:flex}.day-title{text-align:left;background:var(--surface-2);border-radius:5px;align-items:center;gap:4px;min-width:0;padding:1px 4px;font-size:12px;line-height:1.3;display:flex}.day-title .t{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.day-title .bar{border-radius:2px;flex:none;align-self:stretch;width:3px}.day-title.done .t{color:var(--text-3);text-decoration:line-through}.day-more{color:var(--text-3);text-align:left;padding:0 4px;font-size:11.5px}.sheet-backdrop.side .sheet{width:clamp(320px,28vw,400px)}.toast-stack{bottom:24px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
