.family-calendar-container{--fc-mint:#59c2a5;--fc-mint-soft:#b7e2d0;--fc-mint-wash:#f4f9f7;--fc-text:#4b5563;--fc-line:#ddd;color:var(--fc-text);background-color:#fafafa;padding:24px 20px 56px}.family-calendar-container *,.family-calendar-container :before,.family-calendar-container :after{box-sizing:border-box}.fc-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin:0 auto 20px;display:flex}.fc-download-btn,.fc-clear-btn{cursor:pointer;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s}.fc-download-btn{background-color:var(--fc-mint-soft);color:#000;border:2px solid var(--fc-mint)}.fc-download-btn:hover{background-color:#a8d9c3;border-color:#4db393}.fc-download-btn:disabled{opacity:.6;cursor:wait}.fc-clear-btn{color:#2f3e3e;border:2px solid var(--fc-mint-soft);background:#e5f3f0}.fc-clear-btn:hover{background:#d1ebe5}.fc-btn{border:1px solid var(--fc-mint-soft);color:#2f3e3e;white-space:nowrap;cursor:pointer;background:#fff;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600}.fc-btn:hover{background:var(--fc-mint-wash)}.fc-btn-primary{background:var(--fc-mint);border-color:var(--fc-mint);color:#fff}.fc-btn-primary:hover{background:#4db393}.fc-panel{border:1px solid var(--fc-mint-soft);background:#fff;border-radius:8px;max-width:816px;margin:0 auto 20px;padding:20px}.fc-panel-title{color:#2f3e3e;margin-bottom:12px;font-size:16px;font-weight:600}.fc-subtitle{color:#2f3e3e;margin:4px 0 10px;font-size:14px;font-weight:600}.fc-subtitle small{color:var(--color-warm-soft);font-weight:400}.fc-members{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;display:grid}.fc-member{align-items:center;gap:6px;display:flex}.fc-member input{min-width:0;font:inherit;color:#2f3e3e;border:2px solid #0000;border-radius:6px;flex:1;padding:10px 12px;font-size:15px;font-weight:500}.fc-member input:focus{border-color:var(--fc-mint);outline:none}.fc-member button{border:1px solid var(--fc-mint-soft);width:32px;height:32px;color:var(--fc-text);cursor:pointer;background:#fff;border-radius:50%;flex-shrink:0}.fc-member button:hover{background:var(--fc-mint-wash)}.fc-grid-2{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.fc-field span{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.fc-field input,.fc-form input,.fc-form select{border:1px solid var(--fc-mint-soft);width:100%;min-width:0;font:inherit;color:#2f3e3e;background:#fff;border-radius:6px;padding:8px 10px;font-size:14px}.fc-quick{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.fc-quick-btn{cursor:pointer;border:2px solid;border-radius:6px;min-height:46px;padding:10px 8px;font-size:13px;font-weight:600;line-height:1.2;transition:transform .1s}.fc-quick-btn:active{transform:scale(.98)}.fc-quick-1{color:#2e7d32;background:#e8f5e8;border-color:#c8e6c9}.fc-quick-2{color:#0277bd;background:#e1f5fe;border-color:#b3e5fc}.fc-quick-3{color:#c25e00;background:#fff3e0;border-color:#ffe0b2}.fc-quick-4{color:#c62828;background:#ffebee;border-color:#ffcdd2}.fc-quick-5{color:#7b1fa2;background:#f3e5f5;border-color:#e1bee7}.fc-quick-6{color:#00695c;background:#e0f2f1;border-color:#b2dfdb}.fc-quick-7{color:#558b2f;background:#f1f8e9;border-color:#dcedc8}.fc-quick-8{color:#9a6b00;background:#fff8e1;border-color:#fff59d}.fc-status{text-align:center;min-height:1.5em;color:var(--fc-mint);margin:10px 0;font-size:14px;font-weight:600}.fc-status.fc-warn{color:#c62828}.fc-fill-row{margin-bottom:16px}.fc-fill-btn{border:2px solid var(--fc-mint);background:var(--fc-mint-soft);color:#000;cursor:pointer;border-radius:8px;width:100%;padding:14px;font-size:15px;font-weight:600}.fc-fill-btn:hover{background:#a8d9c3}.fc-list{max-height:240px;margin-bottom:12px;overflow-y:auto}.fc-item{border:1px solid #eee;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:8px 10px;font-size:14px;display:flex}.fc-item small{color:var(--color-warm-soft)}.fc-item button{color:#c62828;cursor:pointer;background:#fff;border:1px solid #f3c4c4;border-radius:6px;flex-shrink:0;width:30px;height:30px}.fc-empty{color:#999;padding:8px;font-size:14px}.fc-form{border:1px solid var(--fc-mint-soft);background:var(--fc-mint-wash);border-radius:6px;margin-top:12px;padding:14px}.fc-form-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.fc-form-actions,.fc-dialog-actions{gap:8px;display:flex}.fc-dialog-actions{margin-top:20px}.fc-dialog-actions .fc-btn{flex:1}.fc-nav{justify-content:center;align-items:center;gap:16px;margin:0 auto 16px;display:flex}.fc-nav-label{text-align:center;color:#2f3e3e;min-width:9em;font-weight:600}.fc-sheet{border:1px solid var(--fc-mint-soft);color:#333;background:#fff;border-radius:8px;flex-direction:column;width:816px;max-width:100%;height:1056px;margin:0 auto 20px;padding:38px 29px 48px;display:flex;box-shadow:0 4px 12px #00000014}.fc-header{grid-template-columns:1fr auto 1fr;align-items:end;gap:10px;margin-bottom:10px;display:grid}.fc-box{border:1px solid var(--fc-line);border-radius:4px;min-height:50px;padding:8px 10px}.fc-box-title{text-transform:uppercase;letter-spacing:1.5px;color:#bbb;margin-bottom:4px;font-size:9px}.fc-box-content{overflow-wrap:anywhere;font-size:11px;line-height:1.4}.fc-month{font-family:var(--font-serif);color:#000;text-align:center;padding:0 12px;font-size:36px;font-style:italic;line-height:1}.fc-weeks{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.fc-week{table-layout:fixed;border-collapse:collapse;border-top:1px solid var(--fc-line);border-bottom:1px solid var(--fc-line);flex:1;width:100%}.fc-week th,.fc-week td{border:1px solid var(--fc-line);text-align:center;vertical-align:middle;padding:1px 2px;font-size:8px}.fc-week .fc-side{border-left-color:#fff;border-right-color:#fff;width:11%}.fc-week thead .fc-side{border-top-color:#fff}.fc-week thead th{font-weight:700}.fc-day-name{letter-spacing:.5px;color:#999;font-size:8px;display:block}.fc-day-num{font-size:12px;font-weight:700;display:block}.fc-week thead th:nth-child(2) .fc-day-num,.fc-week thead th:nth-child(8) .fc-day-num{color:#e89c8a}.fc-week thead th:nth-child(3) .fc-day-num,.fc-week thead th:nth-child(7) .fc-day-num{color:#a8c4c4}.fc-week thead th:nth-child(4) .fc-day-num,.fc-week thead th:nth-child(6) .fc-day-num{color:#dcbcb4}.fc-week thead th:nth-child(5) .fc-day-num{color:silver}.fc-week thead th .fc-day-num.fc-other{color:#d9d9d9}.fc-week td.fc-name{text-align:left;color:#2c3e50;text-overflow:ellipsis;white-space:nowrap;padding-left:4px;font-size:9px;font-weight:600;overflow:hidden}.fc-week td.fc-cell{overflow-wrap:anywhere;line-height:1.15;overflow:hidden}.fc-row-0 td.fc-cell{background:#f4f4f4}.fc-row-1 td.fc-cell{background:#e3efee}.fc-row-2 td.fc-cell{background:#f4e9e4}.fc-row-3 td.fc-cell{background:#f9e5e1}.fc-row-4 td.fc-cell{background:#fef6f5}.fc-check{border:1px solid var(--fc-line);border-radius:2px;width:16px;height:16px;margin:2px auto}.fc-footnote{text-align:center;max-width:816px;color:var(--color-warm-soft);margin:28px auto 0;font-size:.95rem;line-height:1.8}.fc-dialog{width:min(420px,100% - 32px);color:var(--fc-text);border:none;border-radius:10px;padding:22px 20px;box-shadow:0 8px 30px #00000040}.fc-dialog::backdrop{background:#00000073}.fc-dialog-title{text-align:center;color:#2f3e3e;margin-bottom:14px;font-size:20px;font-weight:600}.fc-prompt{justify-content:space-between;align-items:center;margin:12px 0 8px;font-size:14px;display:flex}.fc-prompt span{border:1px solid var(--fc-mint);background:var(--fc-mint-wash);border-radius:20px;padding:2px 10px;font-size:12px}.fc-day-btns{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.fc-who-btns{grid-template-columns:1fr 1fr;gap:4px;display:grid}.fc-who-btns .fc-toggle:last-child{grid-column:1/-1}.fc-toggle{border:2px solid var(--fc-line);color:#333;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:6px;padding:9px 4px;font-size:12px;font-weight:700;overflow:hidden}.fc-toggle:hover{border-color:var(--fc-mint)}.fc-toggle[aria-pressed=true]{color:#fff;background:var(--fc-mint)!important;border-color:var(--fc-mint)!important}@media (width<=860px){.family-calendar-container{padding:20px 12px 48px}.fc-grid-2,.fc-form-grid{grid-template-columns:1fr}.family-calendar-container:not(.fc-exporting) .fc-sheet{aspect-ratio:8.5/11;width:100%;height:auto;padding:4% 2.5% 3%}.family-calendar-container:not(.fc-exporting) .fc-header{gap:4px;margin-bottom:4px}.family-calendar-container:not(.fc-exporting) .fc-box{min-height:0;padding:3px 4px}.family-calendar-container:not(.fc-exporting) .fc-box-title{letter-spacing:.5px;margin-bottom:1px;font-size:clamp(5px,1.1vw,9px)}.family-calendar-container:not(.fc-exporting) .fc-box-content{font-size:clamp(6px,1.3vw,11px);line-height:1.2}.family-calendar-container:not(.fc-exporting) .fc-month{padding:0 4px;font-size:clamp(18px,4.5vw,36px)}.family-calendar-container:not(.fc-exporting) .fc-weeks{gap:2px}.family-calendar-container:not(.fc-exporting) .fc-week th,.family-calendar-container:not(.fc-exporting) .fc-week td{padding:0 1px;font-size:clamp(4px,1vw,8px)}.family-calendar-container:not(.fc-exporting) .fc-day-name{letter-spacing:0;font-size:clamp(4px,1vw,8px)}.family-calendar-container:not(.fc-exporting) .fc-day-num{font-size:clamp(7px,1.5vw,12px)}.family-calendar-container:not(.fc-exporting) .fc-week td.fc-name{padding-left:2px;font-size:clamp(5px,1.1vw,9px)}.family-calendar-container:not(.fc-exporting) .fc-check{width:clamp(7px,2vw,16px);height:clamp(7px,2vw,16px);margin:1px auto}}
