button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}html,body{background:#f1f5f9;margin:0}.planner-shell{max-width:480px;min-height:100dvh;margin:0 auto;padding:0 12px 28px}.planner-shell[data-appearance=mui]{max-width:720px}.roster{background:#fff;border:1px solid #cbd5e1;border-radius:8px;grid-template-columns:54px repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.roster>*{min-width:0}.roster-head,.roster-name,.roster-cell,.roster-sum,.roster-count{text-align:center;border-bottom:1px solid #64748b;border-right:1px solid #cbd5e1;justify-content:center;align-items:center;display:flex}.roster-head{color:#475569;background:#f1f5f9;flex-direction:column;min-height:34px;font-size:9px;font-weight:800;line-height:1.1}.roster-head span{color:#94a3b8;font-size:8px;font-weight:700}.roster-plus{background:#fff;border-bottom:2px solid #64748b;border-right:2px solid #64748b;justify-content:center;align-items:center;min-height:34px;display:flex}.roster-plus button{color:#ec4899;cursor:pointer;background:#fce7f3;border:1.5px solid #fbcfe8;border-radius:8px;width:24px;height:24px;font-weight:900}.roster-name{border-right:2px solid #64748b;flex-direction:column;gap:1px;min-height:62px;padding:3px 1px;line-height:1.05}.roster-name strong{word-break:break-word;font-size:9px;font-weight:900}.roster-name em{opacity:.8;font-size:8px;font-style:normal;font-weight:800}.roster-cell{cursor:pointer;color:#0f172a;flex-direction:column;min-height:62px;padding:3px 0;font-size:10px;font-weight:900;line-height:1.1}.roster-cell small{opacity:.75;font-size:9px;font-weight:800}.roster-sum,.roster-count{min-height:26px;font-size:11px;font-weight:900}.roster-sum{color:#7c3aed;background:#faf5ff}.roster-count{color:#0f172a;background:#f8fafc}.roster-label{border-right:2px solid #64748b;font-size:10px;font-weight:900}.week-strip{gap:0;display:flex}.week-person{text-align:center;border-left:1px solid #e2e8f0;flex:1 1 0;min-width:0;padding:6px 2px}.week-person:first-child{border-left:0}.week-person b{word-break:break-word;font-size:10px;line-height:1.15;display:block}.tone-good{color:#16a34a}.tone-warn{color:#ea580c}.tone-danger{color:#dc2626}.tone-zero{color:#cbd5e1}.tone-recv{color:#7c3aed}.planner-shell[data-appearance=mui] .roster-cell{min-height:72px;font-size:12px}.planner-shell[data-appearance=renkli] .MuiPaper-root{box-shadow:none;border:1px solid #e2e8f0;border-radius:12px}.color-key{flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 8px;display:flex}.color-key i{color:#334155;align-items:center;gap:4px;font-size:10px;font-style:normal;font-weight:800;display:inline-flex}.color-key b{border:1px solid #0f172a14;border-radius:4px;width:14px;height:14px}.chip-row{flex-wrap:wrap;justify-content:center;gap:8px;padding:4px 34px 12px 0;display:flex;position:relative}.chip-btn{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:54px;min-height:54px;padding:4px;display:flex}.chip-btn span{font-size:20px;line-height:1}.chip-btn small{text-align:center;font-size:8px;font-weight:800;line-height:1.1}.chip-btn.add{color:#334155;border:1px solid #cbd5e1;border-radius:8px;width:26px;height:26px;min-height:26px;padding:0;position:absolute;top:0;right:0}.chip-btn.add small{display:none}.chip-btn.add span{font-size:16px}
