.calendar-shell{gap:var(--saikan-space-3);flex-direction:column;min-height:0;display:flex}.calendar-shell>.calendar-scroll-shell{flex:auto;min-height:0}.calendar-shell>.calendar-view-tabs,.calendar-shell>.calendar-bottom-bar{flex-shrink:0}.calendar-month-nav{justify-content:space-between;align-items:center;gap:var(--saikan-space-2);padding:var(--saikan-space-2) var(--saikan-space-2) 0;display:flex}.calendar-month-nav__chevron{min-width:32px;height:32px;color:var(--saikan-muted);background:0 0;border:1px solid #0000;border-radius:999px;place-items:center;font-size:22px;font-weight:700;line-height:1;text-decoration:none;display:inline-grid}.calendar-month-nav__chevron:hover{background:var(--saikan-surface-muted);border-color:var(--saikan-surface-muted);color:var(--saikan-ink)}.calendar-month-label{padding:0 var(--saikan-space-2);letter-spacing:.02em;color:var(--saikan-ink);text-transform:none;margin:0;font-size:18px;font-weight:800}.calendar-weekdays{padding:0 var(--saikan-space-2);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}.calendar-weekday{text-align:center;letter-spacing:.05em;color:var(--saikan-muted);padding:var(--saikan-space-1) 0;font-size:11px;font-weight:800}.calendar-grid{margin:0 var(--saikan-space-2);background:var(--saikan-line);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);flex-shrink:0;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(70px,1fr);gap:1px;display:grid;overflow:hidden}.calendar-day{background:var(--saikan-surface);min-height:0;color:inherit;flex-direction:column;gap:2px;padding:4px;text-decoration:none;transition:background .12s;display:flex}.calendar-day:hover{background:var(--saikan-surface-muted)}.calendar-day--out-of-month{background:var(--saikan-surface-muted);color:var(--saikan-muted)}.calendar-day--out-of-month .calendar-day__number{color:var(--saikan-muted);text-decoration:line-through;text-decoration-thickness:1px}.calendar-day--today{background:0 0}.calendar-day--today .calendar-day__number{background:var(--saikan-mint);color:#fff;border-radius:999px;place-items:center;width:30px;height:30px;font-size:14px;font-weight:800;display:inline-grid}.calendar-day__number{color:var(--saikan-ink);font-size:13px;font-weight:700}.calendar-day__pills{flex-direction:column;gap:2px;min-width:0;display:flex}.calendar-day__overflow{color:var(--saikan-muted);padding-left:2px;font-size:10px;font-weight:800}.calendar-day__reminders{color:var(--saikan-muted);margin-top:auto;font-size:10px;font-weight:700}.calendar-event-pill{background:var(--calendar-pill-bg,var(--saikan-slate));pointer-events:none;border-radius:3px;flex-shrink:0;width:100%;height:6px;display:block}.calendar-event-pill__dot{background:#ffffffd9;border-radius:999px;flex-shrink:0;width:6px;height:6px}.calendar-event-pill__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.calendar-bottom-bar{justify-content:space-between;align-items:center;gap:var(--saikan-space-3);padding:var(--saikan-space-4) var(--saikan-space-2);background:var(--saikan-bg);border-top:1px solid var(--saikan-line);flex-shrink:0;display:flex}.calendar-pill{text-align:center;border-radius:999px;flex:1;place-items:center;min-height:44px;font-weight:700;text-decoration:none;display:inline-grid}.calendar-fab{width:52px;height:52px;box-shadow:var(--saikan-shadow-md);border-radius:999px;flex-shrink:0;place-items:center;padding:0;font-size:26px;font-weight:800;line-height:1;text-decoration:none;display:inline-grid}.calendar-weekday--weekend{color:var(--saikan-muted)}.calendar-week-strip{gap:var(--saikan-space-1);padding:0 var(--saikan-space-2);margin-bottom:var(--saikan-space-3);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-week-strip__cell{padding:var(--saikan-space-2) 0;background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);min-height:64px;color:inherit;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;text-decoration:none;transition:background .12s;display:flex}.calendar-week-strip__cell:hover{background:var(--saikan-surface-muted)}.calendar-week-strip__cell--active{background:var(--saikan-mint-soft);border-color:var(--saikan-mint)}.calendar-week-strip__day{color:var(--saikan-ink);font-size:13px;font-weight:700}.calendar-week-strip__bar{background:var(--saikan-mint);border-radius:4px;width:18px;min-height:4px;display:block}.calendar-week-strip__bell{font-size:10px}.calendar-day-header{padding:0 var(--saikan-space-2);color:var(--saikan-ink);text-transform:capitalize;margin:0;font-size:18px;font-weight:800}.calendar-all-day{gap:var(--saikan-space-2);padding:0 var(--saikan-space-2);flex-direction:column;display:flex}.calendar-all-day__card{align-items:center;gap:var(--saikan-space-3);padding:var(--saikan-space-3);border-radius:var(--saikan-radius-md);color:#fff;border-left:4px solid #0000002e;text-decoration:none;display:flex}.calendar-all-day__card.calendar-color-mint{background:var(--saikan-mint)}.calendar-all-day__card.calendar-color-clay{background:var(--saikan-clay)}.calendar-all-day__card.calendar-color-slate{background:var(--saikan-slate)}.calendar-all-day__card.calendar-color-ink{background:var(--saikan-ink)}.calendar-all-day__icon{font-size:18px}.calendar-all-day__body{flex-direction:column;gap:2px;min-width:0;display:flex}.calendar-all-day__body strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;overflow:hidden}.calendar-all-day__body small{opacity:.85;font-size:11px}.calendar-timeline{padding:0 var(--saikan-space-2);flex-direction:column;margin:0;list-style:none;display:flex}.calendar-timeline__item{gap:var(--saikan-space-3);padding:var(--saikan-space-2) 0;border-bottom:1px solid var(--saikan-line);grid-template-columns:56px minmax(0,1fr);display:grid}.calendar-timeline__item:last-child{border-bottom:0}.calendar-timeline__time{color:var(--saikan-muted);padding-top:4px;font-size:12px;font-weight:800}.calendar-timeline__row{align-items:center;gap:var(--saikan-space-3);padding:var(--saikan-space-2) var(--saikan-space-3);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);color:var(--saikan-ink);min-width:0;text-decoration:none;display:flex}.calendar-timeline__bar{background:var(--saikan-slate);border-radius:2px;align-self:stretch;width:4px}.calendar-timeline__row.calendar-color-mint .calendar-timeline__bar{background:var(--saikan-mint)}.calendar-timeline__row.calendar-color-clay .calendar-timeline__bar{background:var(--saikan-clay)}.calendar-timeline__row.calendar-color-slate .calendar-timeline__bar{background:var(--saikan-slate)}.calendar-timeline__row.calendar-color-ink .calendar-timeline__bar{background:var(--saikan-ink)}.calendar-timeline__copy{flex-direction:column;gap:2px;min-width:0;display:flex}.calendar-timeline__copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;overflow:hidden}.calendar-timeline__copy small{color:var(--saikan-muted);font-size:11px}.calendar-section-title{margin:var(--saikan-space-4) var(--saikan-space-2) var(--saikan-space-2);color:var(--saikan-muted);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:800}.calendar-reminders__list{margin:0 var(--saikan-space-2);flex-direction:column;display:flex}.calendar-reminders__row{gap:var(--saikan-space-3);padding:var(--saikan-space-3);border-bottom:1px solid var(--saikan-line);color:var(--saikan-ink);grid-template-columns:28px minmax(0,1fr) auto;align-items:center;text-decoration:none;display:grid}.calendar-reminders__row:last-child{border-bottom:0}.calendar-reminders__icon{font-size:16px}.calendar-reminders__title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.calendar-reminders__time{color:var(--saikan-muted);font-size:12px;font-weight:800}.calendar-empty-day{margin:0 var(--saikan-space-2);padding:var(--saikan-space-4);text-align:center;color:var(--saikan-muted);font-size:13px}.calendar-back-link{padding:var(--saikan-space-2);text-align:center;color:var(--saikan-muted);font-size:12px;text-decoration:none;display:block}.calendar-detail__hero{padding:var(--saikan-space-4);color:#fff;margin:0 var(--saikan-space-2);border-left:4px solid #0000002e;flex-direction:column;gap:6px;width:auto;display:flex}.calendar-detail__hero.calendar-color-mint{background:var(--saikan-mint)}.calendar-detail__hero.calendar-color-clay{background:var(--saikan-clay)}.calendar-detail__hero.calendar-color-slate{background:var(--saikan-slate)}.calendar-detail__hero.calendar-color-ink{background:var(--saikan-ink)}.calendar-detail__hero-eyebrow{text-transform:uppercase;letter-spacing:.06em;opacity:.85;font-size:11px;font-weight:800}.calendar-detail__hero-title{letter-spacing:-.02em;text-overflow:ellipsis;margin:0;font-size:22px;font-weight:800;overflow:hidden}.calendar-detail__hero-subtitle{opacity:.85;margin:0;font-size:13px}.calendar-detail__card{gap:var(--saikan-space-2);flex-direction:column;display:flex}.calendar-detail__section-title{margin:0 0 var(--saikan-space-1);color:var(--saikan-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:800}.calendar-detail__field{padding:var(--saikan-space-1) 0;border-bottom:1px solid var(--saikan-line);flex-direction:column;gap:2px;display:flex}.calendar-detail__field:last-child{border-bottom:0}.calendar-detail__field-label{color:var(--saikan-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:800}.calendar-detail__field-value{color:var(--saikan-ink);word-break:break-word;font-size:14px;font-weight:600}.calendar-detail__description{color:var(--saikan-text);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.45}.calendar-detail__actions{gap:var(--saikan-space-2);padding:var(--saikan-space-4) var(--saikan-space-2) 0;display:flex}.calendar-detail__actions .saikan-button{opacity:.5;cursor:not-allowed;flex:1}.calendar-modal-shell{background:var(--saikan-bg);flex-direction:column;flex:auto;min-height:0;display:flex}.calendar-modal{gap:var(--saikan-space-3);min-width:0;min-height:0;margin:0 var(--saikan-space-2);padding:var(--saikan-space-3) 0 var(--saikan-space-5);flex-direction:column;flex:auto;display:flex}.calendar-modal__tabs{margin:0 calc(-1 * var(--saikan-space-2));padding:0 var(--saikan-space-2);flex-shrink:0}.calendar-modal__body{gap:var(--saikan-space-3);overscroll-behavior:contain;scrollbar-width:none;background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);min-width:0;min-height:0;padding:var(--saikan-space-4);flex-direction:column;flex:auto;display:flex;overflow:hidden auto}.calendar-modal__body::-webkit-scrollbar{display:none}.calendar-modal__field{flex-direction:column;gap:6px;min-width:0;display:flex}.calendar-modal__field--row{flex-direction:row;justify-content:space-between;align-items:center}.calendar-modal__label{color:var(--saikan-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:800}.calendar-modal__input{border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);background:var(--saikan-surface);min-width:0;max-width:100%;min-height:44px;color:var(--saikan-ink);opacity:.6;padding:10px 12px;font-family:inherit;font-size:14px}.calendar-modal__input--multiline{resize:vertical;min-height:88px;padding:10px 12px;line-height:1.45}.calendar-modal__input:disabled,.calendar-modal__input[readonly]{cursor:not-allowed}.calendar-modal__title-row{gap:var(--saikan-space-2);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.calendar-modal__color{gap:6px;display:flex}.calendar-modal__color-dot{cursor:not-allowed;border:2px solid #0000;border-radius:999px;width:24px;height:24px;padding:0}.calendar-modal__color-dot--mint{background:var(--saikan-mint)}.calendar-modal__color-dot--clay{background:var(--saikan-clay)}.calendar-modal__color-dot--slate{background:var(--saikan-slate)}.calendar-modal__color-dot--ink{background:var(--saikan-ink)}.calendar-modal__color-dot.is-active{border-color:var(--saikan-mint);box-shadow:0 0 0 2px var(--saikan-mint-soft)}.calendar-modal__field-grid{gap:var(--saikan-space-2);grid-template-columns:1fr 1fr;min-width:0;display:grid}.calendar-modal__read-only{padding:var(--saikan-space-2) var(--saikan-space-3);background:var(--saikan-surface-muted);border-radius:var(--saikan-radius-md);flex-direction:column;gap:4px;display:flex}.calendar-modal__read-only-value{color:var(--saikan-ink);font-size:14px;font-weight:600}.calendar-modal__placeholder-action{border:1px dashed var(--saikan-line-strong);border-radius:var(--saikan-radius-md);width:100%;min-height:44px;color:var(--saikan-muted);cursor:not-allowed;background:0 0;font-size:13px;font-weight:700}.calendar-modal__footer{gap:var(--saikan-space-2);padding-top:var(--saikan-space-3);background:var(--saikan-bg);flex-shrink:0;display:flex}.calendar-modal__delete-row{gap:var(--saikan-space-2);padding:var(--saikan-space-3) 0 var(--saikan-space-3);flex-shrink:0;display:flex}.calendar-modal__footer-btn{flex:1}.calendar-modal__footer-btn:disabled{opacity:.5;cursor:not-allowed}.calendar-rrule-picker,.calendar-notification-picker{flex-wrap:wrap;gap:6px;display:flex}.calendar-rrule-picker__option,.calendar-notification-picker__option{border:1px solid var(--saikan-line);background:var(--saikan-surface);min-width:0;color:var(--saikan-text);cursor:not-allowed;opacity:.65;white-space:nowrap;border-radius:999px;flex:auto;padding:10px 12px;font-size:12px;font-weight:700}.calendar-rrule-picker__option.is-active,.calendar-notification-picker__option.is-active{background:var(--saikan-mint-soft);border-color:var(--saikan-mint);color:var(--saikan-ink);opacity:1}.calendar-rrule-picker__option--disabled{background:var(--saikan-surface-muted);color:var(--saikan-muted)}.calendar-view-tabs{padding:0 var(--saikan-space-2);gap:4px;margin-top:4px;display:flex}.calendar-view-tabs__tab{min-height:36px;color:var(--saikan-muted);background:var(--saikan-surface-muted);border:1px solid #0000;border-radius:999px;flex:1;place-items:center;padding:6px 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-grid}.calendar-view-tabs__tab.is-active{background:var(--saikan-ink);color:#fff}.calendar-month-scroll,.calendar-week-scroll,.calendar-day-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:var(--saikan-space-2);min-height:0;padding:0 var(--saikan-space-2) var(--saikan-space-5);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.calendar-month-panel>.calendar-month-nav,.calendar-month-panel>.calendar-weekdays,.calendar-month-panel>.calendar-grid,.calendar-month-scroll>.calendar-month-nav,.calendar-month-scroll>.calendar-weekdays,.calendar-month-scroll>.calendar-grid{flex-shrink:0}.calendar-day--focused{box-shadow:inset 0 0 0 2px var(--saikan-mint);background:var(--saikan-mint-soft)}.calendar-week-grid{background:var(--saikan-line);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);grid-template-columns:56px repeat(7,minmax(0,1fr));gap:1px;display:grid;overflow-x:auto}.calendar-week-grid__hours{background:var(--saikan-surface);flex-direction:column;display:flex}.calendar-week-grid__corner{background:var(--saikan-surface);border-bottom:1px solid var(--saikan-line);height:56px}.calendar-week-grid__hour-label{min-height:0;color:var(--saikan-muted);text-align:right;border-bottom:1px solid var(--saikan-line);flex:1 1 0;padding:2px 4px;font-size:10px}.calendar-week-day{background:var(--saikan-surface);flex-direction:column;min-height:800px;display:flex;position:relative}.calendar-week-day--today{background:var(--saikan-mint-soft)}.calendar-week-day--focused{box-shadow:inset 0 0 0 2px var(--saikan-mint)}.calendar-week-day__header{height:56px;color:inherit;border-bottom:1px solid var(--saikan-line);background:var(--saikan-surface);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex}.calendar-week-day__weekday{color:var(--saikan-muted);letter-spacing:.05em;font-size:10px;font-weight:800}.calendar-week-day__number{font-size:16px;font-weight:800}.calendar-week-day--today .calendar-week-day__number{background:var(--saikan-mint);color:#fff;border-radius:999px;place-items:center;width:26px;height:26px;display:inline-grid}.calendar-week-day__allday{border-bottom:1px solid var(--saikan-line);flex-direction:column;gap:2px;min-height:32px;padding:4px;display:flex}.calendar-week-day__allday-event{background:var(--calendar-pill-bg,var(--saikan-slate));color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;text-decoration:none;overflow:hidden}.calendar-week-day__hours{flex:auto;position:relative}.calendar-week-day__hour-cell{border-bottom:1px solid var(--saikan-line);height:4.16667%;display:block}.calendar-week-day__event{background:var(--calendar-pill-bg,var(--saikan-slate));color:#fff;text-overflow:ellipsis;z-index:1;border-radius:4px;padding:2px 4px;font-size:10px;line-height:1.15;text-decoration:none;position:absolute;left:2px;right:2px;overflow:hidden}.calendar-week-day__reminders{color:var(--saikan-muted);background:var(--saikan-surface);border-radius:4px;padding:0 4px;font-size:10px;font-weight:700;position:absolute;top:4px;right:4px}.calendar-day-scroll .calendar-day-today-badge{background:var(--saikan-mint);color:#fff;border-radius:999px;align-self:flex-start;margin-left:4px;padding:2px 10px;font-size:11px;font-weight:800}.calendar-day-allday{background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);padding:var(--saikan-space-2);flex-direction:column;gap:4px;display:flex}.calendar-day-allday__list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.calendar-day-allday__row{border-radius:var(--saikan-radius-md);background:var(--saikan-surface);color:inherit;border:1px solid var(--saikan-line);align-items:center;gap:8px;padding:8px 10px;text-decoration:none;display:flex}.calendar-day-allday__row-bar{background:var(--calendar-pill-bg,var(--saikan-slate));border-radius:4px;flex-shrink:0;align-self:stretch;width:4px}.calendar-day-allday__row-copy{flex-direction:column;min-width:0;display:flex}.calendar-day-allday__row-copy strong{color:var(--saikan-ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;overflow:hidden}.calendar-day-allday__row-copy small{color:var(--saikan-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.calendar-day-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--saikan-muted);margin:0;font-size:11px;font-weight:800}.calendar-day-timeline{background:var(--saikan-line);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);grid-template-columns:56px 1fr;gap:1px;min-height:600px;display:grid;overflow-x:auto}.calendar-day-timeline__hours{background:var(--saikan-surface);flex-direction:column;display:flex}.calendar-day-timeline__hour-label{min-height:0;color:var(--saikan-muted);text-align:right;border-bottom:1px solid var(--saikan-line);flex:1 1 0;padding:2px 4px;font-size:10px}.calendar-day-timeline__events{background:var(--saikan-surface);position:relative}.calendar-day-timeline__hour-cell{border-bottom:1px solid var(--saikan-line);height:5.88235%;display:block}.calendar-day-timeline__event{background:var(--calendar-pill-bg,var(--saikan-slate));color:#fff;z-index:1;border-radius:4px;flex-direction:column;gap:2px;padding:4px 6px;text-decoration:none;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.calendar-day-timeline__event strong{color:#fff;font-size:11px;font-weight:800}.calendar-day-timeline__event span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.calendar-day-timeline__event small{opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.calendar-color-mint{--calendar-pill-bg:var(--saikan-mint)}.calendar-color-clay{--calendar-pill-bg:var(--saikan-clay)}.calendar-color-slate{--calendar-pill-bg:var(--saikan-slate)}.calendar-color-ink{--calendar-pill-bg:var(--saikan-ink)}.calendar-task-list{padding:0 var(--saikan-space-2);flex-direction:column;margin:0;list-style:none;display:flex}.calendar-task-list__row{align-items:center;gap:var(--saikan-space-3);color:var(--saikan-ink);border-radius:var(--saikan-radius-sm);grid-template-columns:56px 12px minmax(0,1fr);min-width:0;padding:10px 0;text-decoration:none;display:grid}.calendar-task-list__row:hover{background:var(--saikan-surface-muted)}.calendar-task-list__time{color:var(--saikan-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:12px;font-weight:800}.calendar-task-list__dot{background:var(--saikan-slate);border-radius:999px;justify-self:center;width:8px;height:8px}.calendar-task-list__dot.calendar-color-mint{background:var(--saikan-mint)}.calendar-task-list__dot.calendar-color-clay{background:var(--saikan-clay)}.calendar-task-list__dot.calendar-color-slate{background:var(--saikan-slate)}.calendar-task-list__dot.calendar-color-ink{background:var(--saikan-ink)}.calendar-task-list__copy{flex-direction:column;gap:2px;min-width:0;display:flex}.calendar-task-list__copy strong{color:var(--saikan-ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.calendar-task-list__copy small{color:var(--saikan-muted);font-variant-numeric:tabular-nums;font-size:11px}.calendar-task-list__empty{margin:0 var(--saikan-space-2);padding:var(--saikan-space-4);text-align:center;color:var(--saikan-muted);font-size:13px}.calendar-scroll-shell .calendar-grid{grid-auto-rows:72px}.calendar-scroll-shell{gap:var(--saikan-space-3);overscroll-behavior:contain;touch-action:auto;scrollbar-width:none;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.calendar-scroll-shell::-webkit-scrollbar{display:none}.calendar-expandable{height:var(--calendar-current-height,auto);background:var(--saikan-bg);flex:none;transition:height .18s;position:relative;overflow:hidden}.calendar-month-panel{z-index:1;touch-action:none;opacity:calc(1 - var(--calendar-collapse-progress,0));transform:translateY(calc(var(--calendar-collapse-progress,0) * -24px));transition:opacity .14s,transform .18s;position:relative}.calendar-week-overlay{z-index:2;padding:var(--saikan-space-1) var(--saikan-space-2) var(--saikan-space-2);background:var(--saikan-bg);opacity:var(--calendar-collapse-progress,0);pointer-events:none;transform:translateY(calc((1 - var(--calendar-collapse-progress,0)) * 16px));touch-action:none;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;transition:opacity .14s,transform .18s;display:grid;position:absolute;top:0;left:0;right:0}.calendar-scroll-shell[data-position=collapsed] .calendar-week-overlay{pointer-events:auto}.calendar-scroll-shell__week-cell{border-radius:var(--saikan-radius-md);border:1px solid var(--saikan-line);background:var(--saikan-surface);color:var(--saikan-ink);flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-height:56px;padding:8px 0;text-decoration:none;display:flex}.calendar-scroll-shell__week-cell.is-today,.calendar-scroll-shell__week-cell.is-focused{background:var(--saikan-mint-soft);border-color:var(--saikan-mint)}.calendar-scroll-shell__week-cell-day{font-size:13px;font-weight:700}.calendar-scroll-shell__week-cell-bar{background:var(--saikan-mint);border-radius:4px;width:18px;min-height:4px;display:block}.calendar-day-agenda{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding-bottom:calc(var(--saikan-space-5) + env(safe-area-inset-bottom,0px));scrollbar-width:none;touch-action:pan-y;flex-direction:column;flex:auto;display:flex;overflow-y:auto}.calendar-day-agenda::-webkit-scrollbar{display:none}.calendar-scroll-shell__day-header{padding:var(--saikan-space-2) var(--saikan-space-2) 0;color:var(--saikan-ink);text-transform:capitalize;margin:0;font-size:16px;font-weight:800}.calendar-more-menu{display:inline-block;position:relative}.calendar-more-menu__trigger{appearance:none;color:var(--saikan-ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:36px;height:36px;padding:0;font-size:22px;line-height:1;display:inline-grid}.calendar-more-menu__trigger:hover{background:var(--saikan-surface-muted)}.calendar-more-menu__panel{z-index:50;background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);min-width:160px;padding:var(--saikan-space-1);flex-direction:column;gap:2px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 24px #00000014}.calendar-more-menu__item{padding:var(--saikan-space-2) var(--saikan-space-3);color:var(--saikan-ink);border-radius:var(--saikan-radius-sm);font-size:14px;font-weight:600;text-decoration:none;display:block}.calendar-more-menu__item:hover{background:var(--saikan-surface-muted)}.calendar-more-menu__item.is-active{color:var(--saikan-mint);font-weight:800}.calendar-editor-shell{background:var(--saikan-bg);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.calendar-editor{min-width:0;min-height:0;margin:0 var(--saikan-space-2);padding:var(--saikan-space-3) 0 var(--saikan-space-5);gap:var(--saikan-space-3);flex-direction:column;flex:auto;display:flex}.calendar-editor__body{overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);min-width:0;min-height:0;padding:var(--saikan-space-4);gap:var(--saikan-space-3);flex-direction:column;flex:auto;display:flex;overflow:hidden auto}.calendar-editor__body::-webkit-scrollbar{display:none}.calendar-editor__title-block{align-items:center;gap:var(--saikan-space-3);padding:var(--saikan-space-3) var(--saikan-space-3);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);min-width:0;display:flex}.calendar-editor__title-input{color:var(--saikan-ink);background:0 0;border:0;outline:0;width:100%;min-width:0;padding:0;font-family:inherit;font-size:24px;font-weight:800;line-height:1.2}.calendar-editor__title-input::placeholder{color:var(--saikan-muted);opacity:.7}.calendar-editor__color-picker{flex-direction:row;flex-grow:0;flex-shrink:0;align-items:center;gap:8px;min-width:0;display:inline-flex}.calendar-editor__color-picker-option{appearance:none;cursor:pointer;background:0 0;border:0;border-radius:999px;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;margin:0;padding:0;display:inline-flex}.calendar-editor__color-picker-option:focus-visible{outline:2px solid var(--saikan-mint);outline-offset:2px}.calendar-editor__color-picker-option[disabled]{cursor:not-allowed;opacity:.5}.calendar-color-circle{width:30px;height:30px;box-shadow:none;vertical-align:middle;background:0 0;border-radius:999px;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.calendar-color-circle--active{background:var(--saikan-mint-soft);box-shadow:0 0 0 2px var(--saikan-mint)}.calendar-color-circle__inner{border-radius:999px;flex-grow:0;flex-shrink:0;display:block}.calendar-native-row{border-bottom:1px solid var(--saikan-line);min-width:0;color:var(--saikan-ink);width:100%;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;text-decoration:none;display:grid}.calendar-native-row:last-child{border-bottom:0}.calendar-native-row--destructive{color:var(--saikan-danger)}.calendar-native-row__icon{width:20px;height:20px;color:var(--saikan-muted);flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.calendar-native-row--destructive .calendar-native-row__icon{color:var(--saikan-danger)}.calendar-native-row__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;display:flex}.calendar-native-row__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden}.calendar-native-row__value{color:var(--saikan-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:500;line-height:1.3;overflow:hidden}.calendar-native-row__secondary{color:var(--saikan-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;line-height:1.3;overflow:hidden}.calendar-native-row__chevron{width:16px;height:16px;color:var(--saikan-muted);flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:800;line-height:1;display:inline-flex}button.calendar-native-row{border-top:0;border-left:0;border-right:0;outline:0}button.calendar-native-row:focus-visible,a.calendar-native-row:focus-visible{background:var(--saikan-surface-muted)}button.calendar-native-row:disabled,a.calendar-native-row[aria-disabled=true]{opacity:.5;cursor:not-allowed}.calendar-editor__dock{padding:12px var(--saikan-space-2) calc(12px + env(safe-area-inset-bottom,0px));background:var(--saikan-bg);border-top:1px solid var(--saikan-line);flex-shrink:0;gap:8px;min-width:0;display:flex}.calendar-editor__dock-inner{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px;width:100%;min-width:0;display:grid}.calendar-editor__dock-action{border-radius:var(--saikan-radius-md);border:1px solid var(--saikan-line);background:var(--saikan-surface);min-height:52px;color:var(--saikan-ink);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:6px 8px;font-family:inherit;font-size:11px;font-weight:800;line-height:1.1;text-decoration:none;display:flex}.calendar-editor__dock-action[aria-disabled=true],.calendar-editor__dock-action[disabled]{opacity:.5;cursor:not-allowed}.calendar-editor__dock-action--active{background:var(--saikan-mint-soft);border-color:var(--saikan-mint);color:var(--saikan-ink)}.calendar-editor__dock-action--destructive{color:var(--saikan-danger)}.calendar-editor__dock-action-icon{flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.calendar-editor__dock-action-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:800;overflow:hidden}button.calendar-editor__dock-action{outline:0}button.calendar-editor__dock-action:focus-visible,a.calendar-editor__dock-action:focus-visible{box-shadow:0 0 0 2px var(--saikan-mint)}.calendar-editor--detail{padding:var(--saikan-space-3) var(--saikan-space-2) 0;gap:var(--saikan-space-3)}.calendar-editor__title-block--detail{align-items:flex-start;gap:var(--saikan-space-3);padding:var(--saikan-space-3) var(--saikan-space-2);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);min-width:0;display:flex}.calendar-editor__title-block-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.calendar-editor__title-block-eyebrow{text-transform:uppercase;letter-spacing:.05em;color:var(--saikan-muted);font-size:11px;font-weight:800}.calendar-editor__title-block-title{letter-spacing:-.02em;color:var(--saikan-ink);word-break:break-word;overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:800}.calendar-editor__title-block-subtitle{color:var(--saikan-text);font-size:13px;font-weight:500}.calendar-editor__body--detail{background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);padding:0 var(--saikan-space-4)}.calendar-editor__body--detail .calendar-native-row:last-child{border-bottom:0}.calendar-editor--modal{padding:var(--saikan-space-3) var(--saikan-space-2) var(--saikan-space-4);gap:var(--saikan-space-3)}.calendar-editor--modal .calendar-editor__title-block{row-gap:var(--saikan-space-2);flex-wrap:wrap}.calendar-editor__save{width:36px;height:36px;color:var(--saikan-ink);background:var(--saikan-mint-soft);border-radius:999px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.calendar-editor__save:hover{background:var(--saikan-mint)}.calendar-editor__save--disabled,.calendar-editor__save[disabled]{color:var(--saikan-muted);opacity:.6;cursor:not-allowed;pointer-events:none;background:0 0}.calendar-editor__body--modal{background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);padding:var(--saikan-space-4);gap:var(--saikan-space-3)}.calendar-editor__tabs{min-width:0;display:flex}.calendar-editor__tabs .saikan-tabs{width:100%}.calendar-editor__fields{flex-direction:column;gap:0;min-width:0;display:flex}.calendar-editor__field-row{border-bottom:1px solid var(--saikan-line);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:14px 0;display:grid}.calendar-editor__fields>.calendar-editor__field-row:last-child,.calendar-editor__fields>.calendar-native-row:last-child{border-bottom:0}.calendar-editor__field-row--stacked,.calendar-editor__field-row--split{align-items:flex-start}.calendar-editor__field-row-icon{width:24px;height:24px;color:var(--saikan-muted);flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;padding-top:2px;display:inline-flex}.calendar-editor__field-row--stacked .calendar-editor__field-row-icon,.calendar-editor__field-row--split .calendar-editor__field-row-icon{padding-top:4px}.calendar-editor__field-row-label{color:var(--saikan-ink);min-width:0;font-size:14px;font-weight:600;line-height:1.2}.calendar-editor__field-row-field{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}.calendar-editor__field-row-stack{flex-direction:column;gap:8px;width:100%;min-width:0;display:flex}.calendar-editor__field-row-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%;min-width:0;display:grid}.calendar-editor__field-cell{flex-direction:column;gap:4px;min-width:0;display:flex}.calendar-editor__field-cell-label{color:var(--saikan-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600;line-height:1.2}.calendar-editor__field-input{width:100%;min-width:0;color:var(--saikan-ink);background:0 0;border:0;outline:0;padding:4px 0;font-family:inherit;font-size:14px;font-weight:500;line-height:1.3}.calendar-editor__field-input::placeholder{color:var(--saikan-muted);opacity:.7}.calendar-editor__field-input--multiline{resize:vertical;min-height:64px;padding:8px 0;font-size:14px;font-weight:500;line-height:1.4}.calendar-editor__field-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--saikan-muted) 50%), linear-gradient(135deg, var(--saikan-muted) 50%, transparent 50%);background-position:calc(100% - 10px),calc(100% - 6px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:18px}.calendar-editor__switch{cursor:pointer;flex-grow:0;flex-shrink:0;align-items:center;width:40px;height:22px;display:inline-flex;position:relative}.calendar-editor__switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.calendar-editor__switch-track{background:var(--saikan-line);border-radius:999px;width:40px;height:22px;transition:background .12s;display:inline-block;position:relative}.calendar-editor__switch-thumb{background:var(--saikan-surface);border-radius:999px;width:18px;height:18px;transition:transform .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.calendar-editor__switch input:checked~.calendar-editor__switch-track{background:var(--saikan-mint)}.calendar-editor__switch input:checked~.calendar-editor__switch-track .calendar-editor__switch-thumb{transform:translate(18px)}.calendar-editor__switch input:focus-visible~.calendar-editor__switch-track{box-shadow:0 0 0 2px var(--saikan-mint)}.calendar-editor__switch input:disabled~.calendar-editor__switch-track{opacity:.5;cursor:not-allowed}.calendar-editor__error{padding:var(--saikan-space-3);border-radius:var(--saikan-radius-md);color:var(--saikan-danger);background:#dc504614;margin:0;font-size:13px;font-weight:600;line-height:1.4}.calendar-modal-shell .calendar-editor--modal{padding-bottom:calc(var(--saikan-space-4) + env(safe-area-inset-bottom,0px))}.calendar-editor__delete-confirm{margin:var(--saikan-space-3) var(--saikan-space-2) 0;padding:var(--saikan-space-4);background:var(--saikan-surface);border:1px solid var(--saikan-danger);border-radius:var(--saikan-radius-lg);gap:var(--saikan-space-2);margin-bottom:calc(var(--saikan-space-3) + env(safe-area-inset-bottom,0px));flex-direction:column;flex-shrink:0;display:flex}.calendar-editor__delete-confirm-title{color:var(--saikan-ink);margin:0;font-size:16px;font-weight:800}.calendar-editor__delete-confirm-body{color:var(--saikan-text);margin:0;font-size:13px}.calendar-editor__delete-confirm-error{color:var(--saikan-danger);margin:0;font-size:13px}.calendar-editor__delete-confirm-actions{gap:var(--saikan-space-2);margin-top:var(--saikan-space-2);display:flex}.calendar-editor__delete-confirm-actions .saikan-button{flex:1;min-height:44px}
.projects-shell{width:100%;min-width:0;display:block}.projects-list{gap:var(--saikan-space-5);padding:var(--saikan-space-4) 0;display:grid}.projects-header{justify-content:space-between;align-items:flex-end;gap:var(--saikan-space-3);flex-wrap:wrap;display:flex}.projects-header h1{letter-spacing:-.045em;color:var(--saikan-ink);margin:0;font-size:28px;font-weight:850;line-height:1.05}.projects-header p{color:var(--saikan-muted);margin:4px 0 0;font-size:13px}.projects-btn{border-radius:var(--saikan-radius-md);border:1px solid var(--saikan-line);background:var(--saikan-surface);color:var(--saikan-ink);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:700;transition:opacity .15s,transform .15s;display:inline-flex}.projects-btn:disabled{opacity:.45;cursor:not-allowed}.projects-btn--primary{background:var(--saikan-ink);color:var(--saikan-surface);border-color:var(--saikan-ink)}.projects-list__grid{gap:var(--saikan-space-3);grid-template-columns:1fr;display:grid}@media (min-width:720px){.projects-list__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1080px){.projects-list__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.projects-card{gap:var(--saikan-space-3);padding:var(--saikan-space-4);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);box-shadow:var(--saikan-shadow-sm);color:inherit;min-width:0;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.projects-card:hover{box-shadow:var(--saikan-shadow-md);border-color:var(--saikan-line-strong);transform:translateY(-1px)}.projects-card:active{transform:translateY(0)}.projects-card__head{align-items:flex-start;gap:var(--saikan-space-3);grid-template-columns:auto minmax(0,1fr) auto;min-width:0;display:grid}.projects-card__copy{min-width:0}.projects-card__name{letter-spacing:-.02em;color:var(--saikan-ink);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:850;overflow:hidden}.projects-card__desc{color:var(--saikan-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.projects-card__owner{color:var(--saikan-muted);align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:600;display:inline-flex}.projects-card__owner>span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:80px;overflow:hidden}.projects-card__stats{gap:var(--saikan-space-3);color:var(--saikan-muted);flex-wrap:wrap;font-size:12px;display:flex}.projects-card__stats b{color:var(--saikan-ink);font-weight:800}.projects-card__pct b{color:var(--saikan-mint)}.projects-progress{background:var(--saikan-line);border-radius:999px;width:100%;height:6px;overflow:hidden}.projects-progress__fill{background:linear-gradient(90deg, var(--saikan-mint), var(--saikan-clay));border-radius:inherit;height:100%;transition:width .4s}.projects-dot{border-radius:999px;flex-shrink:0;width:10px;height:10px;margin-top:6px;display:inline-block}.projects-dot--mint{background:var(--saikan-mint)}.projects-dot--clay{background:var(--saikan-clay)}.projects-dot--slate{background:var(--saikan-slate)}.projects-dot--ink{background:var(--saikan-ink)}.projects-avatar{letter-spacing:-.01em;color:var(--saikan-surface);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.projects-avatar--sm{width:22px;height:22px;font-size:9px}.projects-avatar--md{width:28px;height:28px;font-size:10px}.projects-avatar--mint{background:var(--saikan-mint)}.projects-avatar--clay{background:var(--saikan-clay)}.projects-avatar--slate{background:var(--saikan-slate)}.projects-avatar--ink{background:var(--saikan-ink)}.projects-prio{letter-spacing:.04em;border-radius:var(--saikan-radius-sm);border:1px solid #0000;flex-shrink:0;align-items:center;padding:3px 7px;font-size:10px;font-weight:850;display:inline-flex}.projects-prio--rose{color:var(--saikan-danger);background:#f9e6e8;border-color:#efc7cc}.projects-prio--amber{color:#8b6a18;background:#fbf2dc;border-color:#ecd9a3}.projects-prio--slate{background:var(--saikan-surface-muted);color:var(--saikan-slate);border-color:var(--saikan-line)}.projects-prio--muted{color:var(--saikan-muted);border-color:var(--saikan-line);background:0 0}.projects-state{background:var(--saikan-surface-muted);color:var(--saikan-slate);border:1px solid var(--saikan-line);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.projects-state--claimable{color:var(--saikan-mint);background:#eef7f4;border-color:#c8e6e0}.projects-state--in_progress{color:#8b6a18;background:#fbf2dc;border-color:#ecd9a3}.projects-state--claimed{background:var(--saikan-surface-muted);color:var(--saikan-slate);border-color:var(--saikan-line)}.projects-state--review{color:#3b4a6b;background:#eef0f7;border-color:#d4d9e6}.projects-state--blocked{color:var(--saikan-danger);background:#f9e6e8;border-color:#efc7cc}.projects-state--backlog{color:var(--saikan-muted);border-color:var(--saikan-line);background:0 0}.projects-state--done{color:#2f5b56;background:#e7eef0;border-color:#cdd9db}.projects-chip{background:var(--saikan-surface-muted);color:var(--saikan-slate);border:1px solid var(--saikan-line);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.projects-chip--rose{color:var(--saikan-danger);background:#f9e6e8;border-color:#efc7cc}.projects-chip--amber{color:#8b6a18;background:#fbf2dc;border-color:#ecd9a3}.projects-chip--slate{background:var(--saikan-surface-muted);color:var(--saikan-slate);border-color:var(--saikan-line)}.projects-chip--outline{color:var(--saikan-muted);border-color:var(--saikan-line);background:0 0}.projects-detail{gap:var(--saikan-space-4);padding:var(--saikan-space-4) 0;display:grid}.projects-back{color:var(--saikan-muted);align-items:center;gap:4px;width:fit-content;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.projects-back:hover{color:var(--saikan-ink)}.projects-detail__head h1{letter-spacing:-.045em;color:var(--saikan-ink);margin:0;font-size:26px;font-weight:850;line-height:1.05}.projects-detail__head p{color:var(--saikan-text);flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;display:flex}.projects-detail__list{gap:var(--saikan-space-2);display:grid}.projects-pills{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding:4px 2px;display:flex;overflow-x:auto}.projects-pills::-webkit-scrollbar{display:none}.projects-pill{border:1px solid var(--saikan-line);background:var(--saikan-surface);color:var(--saikan-slate);cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.projects-pill:hover{background:var(--saikan-surface-muted)}.projects-pill.is-active{background:var(--saikan-ink);color:var(--saikan-surface);border-color:var(--saikan-ink)}.projects-pill.is-active .projects-pill__count{color:var(--saikan-surface);background:#fffdfa2e}.projects-pill__count{background:var(--saikan-surface-muted);min-width:20px;height:20px;color:var(--saikan-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:10px;font-weight:800;display:inline-flex}.projects-pill--claimable{--tone:var(--saikan-mint)}.projects-pill--in_progress{--tone:#b8902f}.projects-pill--claimed{--tone:var(--saikan-slate)}.projects-pill--review{--tone:#3b4a6b}.projects-pill--blocked{--tone:var(--saikan-danger)}.projects-pill--backlog{--tone:var(--saikan-muted)}.projects-pill--done{--tone:#2f5b56}.projects-task{padding:var(--saikan-space-3) var(--saikan-space-4);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);color:inherit;gap:8px;min-width:0;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.projects-task:hover{border-color:var(--saikan-line-strong);background:var(--saikan-surface-muted)}.projects-task__row1{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.projects-task__id{letter-spacing:.04em;color:var(--saikan-muted);flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:800}.projects-task__title{color:var(--saikan-ink);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.projects-task__meta{color:var(--saikan-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:flex}.projects-task__claim{color:var(--saikan-slate);align-items:center;gap:3px;font-weight:700;display:inline-flex}.projects-task__est{font-weight:600}.projects-task__dep{border:1px solid #0000;border-radius:999px;align-items:center;gap:3px;padding:2px 6px;font-weight:700;display:inline-flex}.projects-task__dep--ok{color:var(--saikan-mint);background:#eef7f4;border-color:#c8e6e0}.projects-task__dep--locked{color:var(--saikan-danger);background:#f9e6e8;border-color:#efc7cc}.projects-task--blocked{background:linear-gradient(180deg, #fdf3f4 0%, var(--saikan-surface) 60%);border-color:#efc7cc}.projects-task--claimed{border-left:3px solid var(--saikan-slate);padding-left:calc(var(--saikan-space-4) - 2px)}.projects-task--starved{outline:1px dashed var(--saikan-danger);outline-offset:-2px}.projects-task-detail{gap:var(--saikan-space-4);padding:var(--saikan-space-4) 0;display:grid}.projects-task-detail__back{color:var(--saikan-muted);align-items:center;gap:4px;width:fit-content;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.projects-task-detail__back:hover{color:var(--saikan-ink)}.projects-task-detail__head{justify-content:space-between;align-items:flex-start;gap:var(--saikan-space-3);flex-wrap:wrap;display:flex}.projects-task-detail__head-copy{flex:auto;min-width:0}.projects-task-detail__title{letter-spacing:-.045em;color:var(--saikan-ink);word-break:break-word;margin:0;font-size:26px;font-weight:850;line-height:1.05}.projects-task-detail__subtitle{color:var(--saikan-text);flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 0;font-size:12px;display:flex}.projects-task-detail__subtitle b{color:var(--saikan-ink);font-weight:700}.projects-task-detail__subtitle code{color:var(--saikan-muted);background:var(--saikan-surface-muted);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.projects-task-detail__chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.projects-task-detail__actions{gap:var(--saikan-space-2);display:grid}.projects-task-detail__actions-row{align-items:center;gap:var(--saikan-space-2);flex-wrap:wrap;display:flex}.projects-task-detail__actions-row>*{flex:none}.projects-task-detail__actions-claimed-by{align-items:center;gap:var(--saikan-space-2);padding:var(--saikan-space-3) var(--saikan-space-4);background:var(--saikan-surface-muted);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);color:var(--saikan-text);font-size:12px;display:flex}.projects-task-detail__actions-claimed-by b{color:var(--saikan-ink);font-weight:700}.projects-task-detail__section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--saikan-muted);margin:0 0 8px;font-size:10px;font-weight:850;display:block}.projects-task-detail__card{padding:var(--saikan-space-3) var(--saikan-space-4);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);color:var(--saikan-text);white-space:pre-wrap;word-break:break-word;min-width:0;font-size:13px;line-height:1.5}.projects-task-detail__card--muted{color:var(--saikan-muted);font-style:italic}.projects-task-detail__deps{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.projects-task-detail__dep{background:var(--saikan-surface-muted);color:var(--saikan-slate);border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.projects-task-detail__dep--ok{color:var(--saikan-mint);background:#eef7f4;border-color:#c8e6e0}.projects-task-detail__dep--locked{color:var(--saikan-danger);background:#f9e6e8;border-color:#efc7cc}.projects-task-detail__dep--unknown{color:var(--saikan-muted);border-color:var(--saikan-line);background:var(--saikan-surface-muted)}.projects-task-detail__details{background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);gap:0;display:grid;overflow:hidden}.projects-task-detail__detail-row{align-items:center;gap:var(--saikan-space-3);padding:10px var(--saikan-space-4);border-bottom:1px solid var(--saikan-line);grid-template-columns:120px minmax(0,1fr);min-width:0;font-size:12px;display:grid}.projects-task-detail__detail-row:last-child{border-bottom:0}.projects-task-detail__detail-row>dt{color:var(--saikan-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:11px;font-weight:700}.projects-task-detail__detail-row>dd{color:var(--saikan-ink);flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin:0;font-weight:600;display:flex}.projects-task-detail__detail-row a{color:var(--saikan-mint);font-weight:700;text-decoration:none}.projects-task-detail__detail-row a:hover{text-decoration:underline}.projects-task-detail__transitions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.projects-task-detail__transition{border:1px solid var(--saikan-line);background:var(--saikan-surface);color:var(--saikan-slate);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-flex}.projects-task-detail__transition:disabled{opacity:.5;cursor:not-allowed}.projects-task-detail__log{background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);gap:0;display:grid;overflow:hidden}.projects-task-detail__log-entry{align-items:flex-start;gap:var(--saikan-space-3);padding:10px var(--saikan-space-4);border-bottom:1px solid var(--saikan-line);grid-template-columns:60px auto minmax(0,1fr);min-width:0;font-size:12px;display:grid}.projects-task-detail__log-entry:last-child{border-bottom:0}.projects-task-detail__log-ts{color:var(--saikan-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:600}.projects-task-detail__log-actor{color:var(--saikan-ink);white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-size:11px;font-weight:700;overflow:hidden}.projects-task-detail__log-kind{letter-spacing:.06em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;align-items:center;width:fit-content;padding:2px 6px;font-size:9px;font-weight:850;display:inline-flex}.projects-task-detail__log-kind--claim{color:var(--saikan-mint);background:#eef7f4;border-color:#c8e6e0}.projects-task-detail__log-kind--release{color:#8b6a18;background:#fbf2dc;border-color:#ecd9a3}.projects-task-detail__log-kind--state{color:#2f5b56;background:#e7eef0;border-color:#cdd9db}.projects-task-detail__log-kind--comment{background:var(--saikan-surface-muted);color:var(--saikan-slate);border-color:var(--saikan-line)}.projects-task-detail__log-kind--force{color:var(--saikan-danger);background:#f9e6e8;border-color:#efc7cc}.projects-task-detail__log-kind--system{color:var(--saikan-muted);border-color:var(--saikan-line);background:0 0}.projects-task-detail__log-body{color:var(--saikan-text);word-break:break-word;white-space:pre-wrap;grid-column:3;min-width:0;margin:4px 0 0;font-size:12px;line-height:1.4}.projects-task-detail__log-body--top{margin-top:0}.projects-task-detail__comment{gap:var(--saikan-space-2);display:grid}.projects-task-detail__comment-area{resize:vertical;width:100%;min-height:80px;padding:var(--saikan-space-3);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);font:inherit;color:var(--saikan-ink);box-sizing:border-box;outline:none;font-size:13px}.projects-task-detail__comment-area:focus{border-color:var(--saikan-line-strong)}.projects-task-detail__comment-area:disabled{opacity:.6;cursor:not-allowed}.projects-task-detail__comment-row{justify-content:flex-end;gap:var(--saikan-space-2);display:flex}.projects-task-detail__force{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.projects-btn--accent{background:linear-gradient(135deg, var(--saikan-mint), #187f75);color:#fffdfa;box-shadow:var(--saikan-shadow-sm);border-color:#0000}.projects-btn--accent:hover:not(:disabled){box-shadow:var(--saikan-shadow-md)}.projects-btn--ghost{border-color:var(--saikan-line);color:var(--saikan-text);background:0 0}.projects-btn--ghost:hover:not(:disabled){background:var(--saikan-surface-muted)}.projects-btn--danger{color:var(--saikan-danger);background:#f7e9ea;border-color:#efc7cc}.projects-btn--danger:hover:not(:disabled){background:#f0d9db}.projects-btn--lg{min-height:44px;padding:10px 16px;font-size:14px}.projects-btn--block{justify-content:center;width:100%}.projects-empty{padding:var(--saikan-space-6) var(--saikan-space-4);text-align:center;color:var(--saikan-muted);border:1px dashed var(--saikan-line);border-radius:var(--saikan-radius-lg);background:var(--saikan-surface);place-items:center;gap:6px;display:grid}.projects-empty__icon{font-size:32px;line-height:1}.projects-empty h3{color:var(--saikan-ink);margin:4px 0 0;font-size:14px;font-weight:800}.projects-empty p{margin:0;font-size:12px}.projects-home,.projects-my-work,.projects-people,.projects-person{gap:var(--saikan-space-5);padding:var(--saikan-space-4) 0;display:grid}.projects-home__head h1,.projects-my-work .projects-home__head h1,.projects-people .projects-home__head h1,.projects-person__head h1{letter-spacing:-.045em;color:var(--saikan-ink);margin:0;font-size:28px;font-weight:850;line-height:1.05}.projects-home__head p,.projects-my-work .projects-home__head p,.projects-people .projects-home__head p,.projects-person__head p{color:var(--saikan-muted);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;font-size:13px;display:flex}.projects-section-label{margin:0 0 var(--saikan-space-2);letter-spacing:.02em;text-transform:uppercase;color:var(--saikan-slate);align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.projects-home__section,.projects-home__list{gap:var(--saikan-space-2);display:grid}.projects-home__kpi-grid{gap:var(--saikan-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:720px){.projects-home__kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.projects-kpi{padding:var(--saikan-space-3) var(--saikan-space-4);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-lg);box-shadow:var(--saikan-shadow-sm);gap:4px;min-width:0;display:grid}.projects-kpi__label{text-transform:uppercase;letter-spacing:.06em;color:var(--saikan-muted);font-size:11px;font-weight:700}.projects-kpi__value{letter-spacing:-.03em;color:var(--saikan-ink);font-size:28px;font-weight:850;line-height:1}.projects-kpi__value--mint{color:var(--saikan-mint)}.projects-kpi__value--rose{color:var(--saikan-danger)}.projects-kpi__value--amber{color:#8b6a18}.projects-kpi__sub{color:var(--saikan-muted);font-size:11px}.projects-people__list{gap:var(--saikan-space-2);display:grid}.projects-person-row{align-items:center;gap:var(--saikan-space-3);padding:var(--saikan-space-3) var(--saikan-space-4);background:var(--saikan-surface);border:1px solid var(--saikan-line);border-radius:var(--saikan-radius-md);color:inherit;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.projects-person-row:hover{border-color:var(--saikan-line-strong);background:var(--saikan-surface-muted)}.projects-person-info{gap:2px;min-width:0;display:grid}.projects-person-name{color:var(--saikan-ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:800;overflow:hidden}.projects-person-role{color:var(--saikan-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.projects-person-workload{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.projects-avatar--lg{width:44px;height:44px;font-size:14px}.projects-person__head{align-items:center;gap:var(--saikan-space-3);min-width:0;display:flex}.projects-person__head>div{min-width:0}.projects-person__head p{margin:0}.projects-btn--ghost:is(a,.projects-btn--ghost[href]){width:fit-content;margin-top:4px;text-decoration:none}.projects-task-detail__error{background:var(--saikan-rose-soft,#fae6ea);color:var(--saikan-rose-ink,#7a2c3a);padding:var(--saikan-space-2,8px) var(--saikan-space-3,12px);border-radius:var(--saikan-radius-md,8px);margin-bottom:var(--saikan-space-3,12px);font-size:var(--saikan-t-sm,13px);font-weight:var(--saikan-w-mid,510)}.projects-modal-backdrop{z-index:200;padding:var(--saikan-space-3,12px);padding-top:max(var(--saikan-space-3,12px), env(safe-area-inset-top,0px));padding-bottom:max(var(--saikan-space-3,12px), env(safe-area-inset-bottom,0px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#00000080;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.projects-modal{background:var(--saikan-surface,#fffdfa);border:1px solid var(--saikan-line,#e4dfd6);border-radius:var(--saikan-radius-xl,16px);width:100%;max-width:480px;max-height:calc(100dvh - var(--saikan-space-6,24px) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:var(--saikan-space-5,20px);padding-bottom:max(var(--saikan-space-5,20px), env(safe-area-inset-bottom,0px));box-shadow:var(--saikan-shadow-modal,0 24px 64px #171e262e);gap:var(--saikan-space-3,12px);-webkit-overflow-scrolling:touch;flex-direction:column;margin-top:auto;margin-bottom:auto;display:flex;overflow-y:auto}.projects-modal--lg{max-width:560px}.projects-modal h3{font-size:var(--saikan-h2,18px);font-weight:var(--saikan-w-strong,590);margin:0}.projects-modal__label{font-size:var(--saikan-t-sm,13px);font-weight:var(--saikan-w-mid,510);color:var(--saikan-ink-2,#3a4452);flex-direction:column;gap:4px;display:flex}.projects-modal__row{gap:var(--saikan-space-2,8px);align-items:stretch;display:flex}.projects-modal__label--grow{flex:1 1 0;min-width:0}.projects-modal__label--narrow{flex:0 0 110px}.projects-modal__input,.projects-modal__textarea{border:1px solid var(--saikan-line,#e4dfd6);background:var(--saikan-surface-3,#fff);border-radius:var(--saikan-radius-md,8px);font-family:inherit;font-size:var(--saikan-t-body,14px);color:var(--saikan-ink,#1a1f26);box-sizing:border-box;outline:none;width:100%;padding:8px 10px}.projects-modal__input:focus,.projects-modal__textarea:focus{border-color:var(--saikan-accent,#1f9d8f)}.projects-modal__textarea{resize:vertical;min-height:60px}.projects-modal__actions{gap:var(--saikan-space-2,8px);margin-top:var(--saikan-space-2,8px);justify-content:flex-end;display:flex}.projects-modal__error{background:var(--saikan-rose-soft,#fae6ea);color:var(--saikan-rose-ink,#7a2c3a);border-radius:var(--saikan-radius-md,8px);font-size:var(--saikan-t-sm,13px);padding:8px 12px}.projects-detail__head{justify-content:space-between;align-items:flex-start;gap:var(--saikan-space-3,12px);margin-bottom:var(--saikan-space-4,16px);display:flex}.projects-nav-row{gap:var(--saikan-space-2,8px);margin-top:var(--saikan-space-5,20px);padding-top:var(--saikan-space-4,16px);border-top:1px solid var(--saikan-line,#e4dfd6);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.projects-nav-row::-webkit-scrollbar{display:none}.projects-nav-row__item{border-radius:var(--saikan-radius-full,9999px);border:1px solid var(--saikan-line-2,#d7d0c4);background:var(--saikan-surface-3,#fff);color:var(--saikan-ink-2,#3a4452);font-size:var(--saikan-t-sm,13px);font-weight:var(--saikan-w-mid,510);white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;transition:background .12s;display:inline-flex}.projects-nav-row__item:hover{background:var(--saikan-surface-2,#f5f2ec)}.projects-detail__actions{gap:var(--saikan-space-2,8px);flex-wrap:wrap;display:flex}body:has(.projects-modal-backdrop) .saikan-bottom-nav{display:none!important}.scroll-region-padded{padding-bottom:calc(var(--saikan-bottom-nav-height,78px) + var(--saikan-space-5,20px) + env(safe-area-inset-bottom,0px))!important}.saikan-shell.projects-shell .scroll-region-padded{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-width:0;min-height:0;padding-bottom:calc(var(--saikan-bottom-nav-height,78px) + var(--saikan-space-5,20px) + env(safe-area-inset-bottom,0px));flex:auto;overflow:hidden auto}
