.gc-shell{padding:20px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;background:#f8fafc}.gc-sidebar,.gc-main,.gc-roster-section{border:1px solid #d9e5eb;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(35,64,79,.07)}.gc-sidebar{padding:17px;display:grid;align-content:start;gap:15px}.gc-side-head,.gc-toolbar,.gc-roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.gc-side-head h2,.gc-toolbar h2,.gc-roster-head h2,.gc-duty-today h3{margin:0}.gc-side-head p,.gc-roster-head p{margin:3px 0 0;color:#64748b;font-size:.78rem}.gc-side-head button,.gc-toolbar button,.gc-roster-head button{min-height:36px;border:1px solid #b8d0d7;border-radius:9px;background:#f7fbfb;color:#08665f;padding:0 11px;font-weight:800}.gc-calendar-list{display:grid;gap:7px;max-height:350px;overflow:auto}.gc-calendar-choice{display:grid;grid-template-columns:18px 12px minmax(0,1fr);gap:8px;align-items:center;font-size:.82rem;color:#334155}.gc-calendar-choice span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gc-calendar-color{width:11px;height:11px;border-radius:3px}.gc-empty,.gc-status{color:#64748b;font-size:.78rem;line-height:1.5}.gc-duty-today{border-top:1px solid #e2e8f0;padding-top:14px;display:grid;gap:10px}.gc-duty-display{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.gc-duty-display span{width:100%;min-height:88px;display:grid;place-items:center;font:700 clamp(25px,2.1vw,38px)/1.05 Gungsuh,"궁서",serif;color:#000}.gc-duty-display strong{width:100%;min-height:100px;display:grid;place-items:center;font:900 clamp(48px,4.5vw,78px)/1 Gungsuh,"궁서",serif;animation:gcSparkle 2.8s linear infinite;background:linear-gradient(90deg,#c026d3,#2563eb,#059669,#d97706,#e11d48,#c026d3);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}@keyframes gcSparkle{to{background-position:300% 0}}.gc-main{min-width:0;overflow:hidden}.gc-toolbar{padding:14px 16px;border-bottom:1px solid #e2e8f0}.gc-toolbar-buttons{display:flex;gap:6px}.gc-weekdays,.gc-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.gc-weekdays span{text-align:center;padding:8px;color:#64748b;font-size:.78rem;font-weight:800;border-bottom:1px solid #e2e8f0}.gc-weekdays span:first-child{color:#dc2626}.gc-weekdays span:last-child{color:#2563eb}.gc-day{min-height:118px;padding:7px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;overflow:hidden}.gc-day:nth-child(7n){border-right:0}.gc-day>strong{display:inline-grid;place-items:center;width:25px;height:25px;font-size:.78rem}.gc-day.outside{background:#f8fafc;color:#94a3b8}.gc-day.today>strong{border-radius:50%;background:#2563eb;color:#fff}.gc-event{margin-top:4px;padding:3px 5px;border-left:4px solid var(--event-color);border-radius:4px;background:color-mix(in srgb,var(--event-color) 14%,white);font-size:.69rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#334155}.gc-day small{display:block;margin-top:4px;color:#475569;font-size:.68rem}.gc-roster-section{grid-column:1/-1;padding:17px;display:grid;gap:13px;min-width:0}.gc-table-wrap{max-width:100%;overflow:auto;border:1px solid #cbd5e1}.gc-duty-table{border-collapse:collapse;table-layout:fixed;min-width:max-content;font-family:"Noto Sans KR",sans-serif;user-select:text}.gc-duty-table th,.gc-duty-table td{width:32px;min-width:32px;height:34px;border:1px solid #64748b;text-align:center;padding:2px;font-size:.78rem;background:#fff}.gc-duty-table th{background:#f1f5f9;font-weight:850}.gc-duty-table .gc-delete-head{width:50px;min-width:50px}.gc-duty-table .gc-drag-head{width:42px;min-width:42px}.gc-duty-table .gc-name-head,.gc-duty-table .gc-person{width:105px;min-width:105px;font-weight:800}.gc-duty-table .gc-total-head,.gc-duty-table .gc-total{width:42px;min-width:42px}.gc-delete{border:0;background:transparent;color:#b91c1c;text-decoration:underline;font-size:.72rem}.gc-drag{cursor:grab;color:#475569;font-size:1rem}.gc-person[contenteditable="true"]{outline:0}.gc-person[contenteditable="true"]:focus{background:#ecfeff;box-shadow:inset 0 0 0 2px #0891b2}.gc-assigned{color:#0f766e;font-weight:900;background:#ecfdf5!important}.gc-sum-row td{font-weight:900;background:#f8fafc}.gc-duty-table tr.dragging{opacity:.45}@media(max-width:900px){.gc-shell{grid-template-columns:1fr}.gc-calendar-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:240px}.gc-day{min-height:95px}.gc-duty-display{grid-template-columns:1fr 1fr;align-items:center}.gc-duty-display span,.gc-duty-display strong{width:100%}}@media(max-width:620px){.gc-shell{padding:10px}.gc-toolbar,.gc-roster-head{align-items:flex-start;flex-direction:column}.gc-weekdays span{padding:6px 2px}.gc-day{min-height:76px;padding:3px}.gc-event{font-size:.58rem}.gc-calendar-list{grid-template-columns:1fr}}
@media(min-width:901px){.gc-shell{grid-template-columns:340px minmax(0,1fr)}.gc-duty-display span{width:300px}.gc-duty-display strong{width:200px}}
/* 요청한 '=' 손잡이 모양을 유지하면서 행 전체 드래그를 지원합니다. */
.gc-drag{font-size:0}.gc-drag::after{content:"=";font-size:1rem;font-weight:900}
.gc-event{cursor:grab}.gc-event.dragging{opacity:.45}.gc-day.drop-target{background:#dff7f3!important;box-shadow:inset 0 0 0 3px #0f9f91}
@media(min-width:901px){.gc-shell{grid-template-columns:272px minmax(0,1fr)}.gc-duty-display span{width:100%}.gc-duty-display strong{width:180px}}
.gc-zoom{display:flex;align-items:center;gap:6px}.gc-zoom output{min-width:46px;text-align:center;color:#475569;font-size:.78rem;font-weight:850}.gc-calendar-scale{--gc-event-scale:1}.gc-day{min-height:118px}.gc-event{font-size:clamp(.58rem,calc(.69rem * var(--gc-event-scale)),.78rem);line-height:clamp(.66rem,calc(.72rem * var(--gc-event-scale)),.82rem);padding-block:calc(2.4px * var(--gc-event-scale));margin-top:calc(3.2px * var(--gc-event-scale))}.gc-duty-table .gc-name-head,.gc-duty-table .gc-person{width:84px;min-width:84px}.gc-person input{width:100%;min-width:0;height:29px;border:1px solid transparent;background:transparent;text-align:center;font:inherit;font-weight:800;padding:2px 4px}.gc-person input:focus{outline:0;border-color:#0891b2;background:#ecfeff}.gc-drag{font-size:1rem}.gc-drag::after{content:none}
.gc-duty-table .gc-saturday{color:#2563eb;font-weight:900}.gc-duty-table .gc-sunday{color:#dc2626;font-weight:900}
.gc-roster-title-nav{display:flex;align-items:center;gap:10px}.gc-roster-title-nav button{width:38px;height:34px;border:1px solid #b8d0d7;border-radius:9px;background:#f7fbfb;color:#08665f;font-size:1.1rem;font-weight:900}.gc-roster-title-nav button:hover{background:#e6f6f4}
.gc-roster-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.gc-roster-actions button{min-height:36px;border:1px solid #b8d0d7;border-radius:9px;background:#f7fbfb;color:#08665f;padding:0 11px;font-weight:800}.gc-roster-actions span{min-width:42px;color:#0f766e;font-size:.78rem;font-weight:800}
.gc-copy-cell{cursor:cell}.gc-duty-table .gc-cell-selected{background:#bfdbfe!important;box-shadow:inset 0 0 0 1px #2563eb}.gc-duty-table:focus{outline:none}
