.grow{flex:1;min-width:0}.home-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-actions .button,.home-actions button{white-space:normal;min-height:80px;text-align:center;padding:8px}.detail-box{border:1px solid var(--c-border);border-radius:var(--radius-card);padding:14px;background:var(--c-surface)}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.time-slot{color:var(--c-primary);border-color:var(--c-primary-line);background:var(--c-primary-tint)}.external-notice{padding:16px;background:var(--c-external-bg);border-radius:var(--radius-card)}.external-button{background:var(--c-external);color:var(--c-surface)}
.ledger-scroll{position:relative;height:470px;overflow:auto;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface);margin-top:12px}.ledger-head{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:40px repeat(var(--columns),minmax(38px,1fr));min-width:100%;background:var(--c-surface);border-bottom:1px solid var(--c-border);font-size:12px}.ledger-head>div{padding:8px 2px;border-left:1px solid var(--c-border);overflow-wrap:anywhere}.ledger-body{position:relative;min-width:100%}.ledger-times{position:absolute;left:0;top:0;width:40px;height:100%;font-size:10px;color:var(--c-ink-muted)}.ledger-times span{position:absolute}.ledger-grid{position:absolute;left:40px;right:0;top:0;height:100%;background:repeating-linear-gradient(to bottom,var(--c-border) 0,var(--c-border) 1px,transparent 1px,transparent var(--hour))}.ledger-column{position:absolute;top:0;height:100%;border-left:1px solid var(--c-border);box-sizing:border-box}.ledger-off{position:absolute;width:100%;overflow:hidden;background:repeating-linear-gradient(135deg,var(--c-disabled-bg) 0,var(--c-disabled-bg) 6px,var(--c-bg) 6px,var(--c-bg) 12px);color:var(--c-ink-muted);font-size:10px;text-align:center}.closure{background:var(--c-warn-bg);color:var(--c-warn-ink)}.ledger-booking{position:absolute;z-index:2;display:flex;flex-direction:column;box-sizing:border-box;padding:4px;border:1px solid var(--c-primary-line);border-radius:8px;background:var(--c-primary-tint);color:var(--c-ink);font-size:11px;overflow:hidden;text-decoration:none;overflow-wrap:anywhere}.ledger-booking small{font-size:10px}.ledger-booking.team{background:var(--c-primary);color:var(--c-surface)}.ledger-booking.external{border:1px dashed var(--c-external);background:repeating-linear-gradient(135deg,var(--c-border) 0,var(--c-border) 8px,var(--c-external-bg) 8px,var(--c-external-bg) 16px)}.ledger-buffer{position:absolute;background:repeating-linear-gradient(135deg,var(--c-primary-line) 0,var(--c-primary-line) 4px,var(--c-primary-tint) 4px,var(--c-primary-tint) 8px);border-radius:4px}
.time-slot.selected{background:var(--c-primary);color:var(--c-surface)}
.ledger-scroll+.muted{font-size:11px}

/* リッチメニューを想起させる、アイコン付きの3つの入口。 */
.home-actions{gap:10px}
.home-actions .button{flex-direction:column;gap:10px;min-height:112px;border-radius:16px;padding:16px 6px;font-size:13px;line-height:1.5}
.home-actions svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.home-actions .button:last-child{background:var(--c-primary-tint);border-color:var(--c-border-input);color:var(--c-primary-hover)}
.home-timeline{grid-column:1/-1}
.ledger-legend{display:flex;flex-wrap:wrap;gap:8px;font-size:12px}
.ledger-legend>span{padding:5px 9px;border:1px solid var(--c-primary-line);border-radius:6px}
.legend-booked{background:var(--c-primary-tint)}
.legend-team{background:var(--c-primary);color:var(--c-surface)}
.ledger-legend .legend-external{background:var(--c-external-bg);border-style:dashed;border-color:var(--c-external)}
.legend-off{background:repeating-linear-gradient(135deg,var(--c-disabled-bg) 0,var(--c-disabled-bg) 5px,var(--c-surface) 5px,var(--c-surface) 10px)}
.ledger-grid{background:repeating-linear-gradient(to bottom,var(--c-divider) 0,var(--c-divider) 1px,transparent 1px,transparent calc(var(--hour)/2)),repeating-linear-gradient(to bottom,var(--c-border) 0,var(--c-border) 1px,transparent 1px,transparent var(--hour))}
.ledger-head,.ledger-body{min-width:calc(40px + var(--columns)*110px)}
.ledger-head>span{position:sticky;left:0;background:var(--c-surface);padding:8px 2px;z-index:1}
.ledger-times{position:sticky;left:0;z-index:4;background:var(--c-surface);border-right:1px solid var(--c-border)}
.ledger-times span{left:3px}
/* 日表示: 時間を横軸、スタッフを縦軸にした予約ボード。 */
.ledger-scroll.day-board{--staff-width:140px;height:auto;max-height:65vh;min-height:180px;scroll-padding-left:var(--staff-width)}
.day-board-sheet{width:calc(var(--staff-width) + 24 * var(--time-hour));min-width:100%}
.day-board-heading{display:flex;position:sticky;top:0;z-index:6;background:var(--c-surface);height:48px;border-bottom:1px solid var(--c-border)}
.day-board-corner,.day-board-staff{position:sticky;left:0;z-index:4;flex:0 0 var(--staff-width);box-sizing:border-box;background:var(--c-surface);border-right:1px solid var(--c-border);padding:12px;font-size:13px}
.day-board-corner{background:var(--c-primary-tint);font-weight:700}
.day-board-hours{display:flex;width:calc(24 * var(--time-hour))}
.day-board-hours>span{position:relative;box-sizing:border-box;flex:0 0 var(--time-hour);padding:5px;border-left:1px solid var(--c-border);font-size:13px;font-weight:700}
.day-board-hours small{position:absolute;left:50%;bottom:3px;color:var(--c-ink-muted);font-size:10px;font-weight:400}
.day-board-row{display:flex;min-height:110px;border-bottom:1px solid var(--c-border)}
.day-board-staff{display:flex;flex-direction:column;justify-content:center;gap:8px;overflow-wrap:anywhere}
.day-board-staff small{color:var(--c-ink-muted);font-size:11px}
.day-board-track{position:relative;width:calc(24 * var(--time-hour));background:repeating-linear-gradient(to right,var(--c-border) 0,var(--c-border) 1px,transparent 1px,transparent var(--time-hour)),repeating-linear-gradient(to right,var(--c-divider) 0,var(--c-divider) 1px,transparent 1px,transparent calc(var(--time-hour)/2))}
.day-board-off{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,var(--c-disabled-bg) 0,var(--c-disabled-bg) 5px,var(--c-bg) 5px,var(--c-bg) 10px);font-size:11px;color:var(--c-ink-muted);overflow:hidden}
.day-board-off.closure{background:var(--c-warn-bg);color:var(--c-warn-ink)}
.day-board .day-board-booking{top:6px;bottom:6px;padding:5px;border-radius:5px;font-size:12px;gap:2px}
.day-board-booking span,.day-board-booking b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-board-booking:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px}
.day-board-buffer{top:6px;bottom:6px}
@media(max-width:767px){.ledger-scroll.day-board{--staff-width:100px}.day-board-corner,.day-board-staff{padding:8px;font-size:11px}}

/* D-102: 初期設定の案内は白地に細いアクセントで表示する。 */
.home-timeline .notice{background:var(--c-surface);color:var(--c-ink-muted);border:1px solid var(--c-border);border-left:3px solid var(--c-primary-line)}