:root{font-family:Inter,Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#102033;background:#eaf6fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}.app-shell{width:min(1600px,calc(100% - clamp(16px,4vw,32px)));margin:0 auto;padding:28px 0 40px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px;border:1px solid #b7d6e8;border-radius:12px;background:#fff;box-shadow:0 12px 32px #26648e1f}.mobile-app-header{display:none}.eyebrow{margin:0 0 6px;color:#26648e;font-size:13px;font-weight:800;letter-spacing:0}h1,h2,p{margin-top:0}h1{margin-bottom:10px;font-size:32px;line-height:1.15}h2{margin-bottom:4px;font-size:19px}.hero-copy,.panel p{margin-bottom:0;color:#56708a;line-height:1.55}.hero-main{min-width:0;flex:1 1 auto}.hero-side{display:grid;min-width:min(520px,100%);gap:10px;justify-items:end}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.panel-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.primary-link,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid #9fc7df;border-radius:8px;text-decoration:none;font-weight:800;cursor:pointer}button:not(:disabled),.primary-link{transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}button:not(:disabled):active,.primary-link:active{transform:translateY(1px) scale(.985);filter:brightness(.95);box-shadow:0 1px 3px #26648e33}.primary-link{color:#fff;background:linear-gradient(135deg,#4f8fc0,#26648e);box-shadow:0 2px 8px #26648e47}.secondary-button{color:#17324a;background:#fff}.toolbar{display:flex;align-items:center;gap:12px;margin:18px 0;padding:14px;border:1px solid #b7d6e8;border-radius:10px;background:#f8fcff}.account-panel{display:flex;align-items:end;gap:12px;margin-bottom:18px;padding:14px;border:1px solid #b7d6e8;border-radius:10px;background:#fff}.account-panel-inline{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;width:100%;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.account-panel label{display:grid;flex:1 1 180px;gap:4px;color:#45627e;font-size:12px;font-weight:800}.account-panel input{min-height:42px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#102033;font-size:16px}.account-panel strong{display:block;margin-top:2px;font-size:20px}.account-panel p{margin:2px 0 0;color:#56708a}.account-label{color:#26648e;font-size:12px;font-weight:900}.account-actions{display:flex;flex-wrap:nowrap;gap:8px}.account-actions button{flex:0 0 auto;white-space:nowrap}.compact{min-height:42px;padding:0 14px}.toolbar label{display:grid;gap:4px;color:#45627e;font-size:12px;font-weight:800}.toolbar input,.toolbar select{min-height:40px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#102033}.session-badge,.lock-badge{margin-left:auto;padding:8px 12px;border-radius:999px;background:#d8ecf7;color:#26648e;font-weight:800}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.calendar-panel{min-width:0}.calendar-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:14px;margin-bottom:18px}.calendar-main-column{display:grid;align-content:start;gap:14px;grid-column:1;min-width:0}.calendar-tool-column{display:grid;align-content:start;gap:8px;grid-column:2;min-width:0}.calendar-tool-column .tool-panel[data-panel-id=stats]{order:1}.calendar-tool-column .tool-panel[data-panel-id=assignment-preview]{order:0}.calendar-tool-column .tool-panel[data-panel-id=request-center]{order:2}.calendar-tool-column .tool-panel[data-panel-id=presets]{order:4}.calendar-tool-column .tool-panel[data-panel-id=editor]{order:5}.calendar-tool-column .tool-panel[data-panel-id=import]{order:6}.calendar-tool-column .tool-panel[data-panel-id=generated]{order:7}.calendar-tool-column .tool-panel[data-panel-id=personal-history]{order:8}.calendar-tool-column .tool-panel[data-panel-id=public-history]{order:9}.mobile-bottom-nav,.mobile-more-tools{display:none}.assignment-preview-panel{display:grid;gap:12px;margin:0}.assignment-preview-head,.assignment-preview-toolbar,.assignment-section-heading,.assignment-preview-actions,.assignment-preview-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.assignment-preview-head h2,.assignment-section-heading h3{margin-bottom:3px}.assignment-preview-head p,.assignment-section-heading p,.assignment-preview-message{margin:0;color:#56708a;font-size:12px;line-height:1.45}.assignment-preview-badge,.assignment-date-chip,.assignment-live-dot{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#dceff8;color:#26648e;font-size:11px;font-weight:900}.assignment-preview-toolbar{align-items:stretch}.assignment-period-tabs{display:grid;grid-template-columns:repeat(2,minmax(70px,1fr));gap:4px;padding:4px;border:1px solid #b7d6e8;border-radius:9px;background:#f1f8fc}.assignment-period-tabs button{min-height:34px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:#56708a;font-weight:900;cursor:pointer}.assignment-period-tabs button.active{background:#4f8fc0;color:#fff;box-shadow:0 2px 7px #26648e33}.assignment-preview-meta{justify-content:flex-start;flex-wrap:wrap;color:#45627e;font-size:12px}.assignment-preview-meta strong{color:#17324a}.assignment-preview-badge.confirmed{background:#ddf5e8;color:#1d7a4c}.assignment-preview-badge.modified{background:#fff0cc;color:#93620c}.assignment-count-strip{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 8px;border:1px solid #d4e6f0;border-radius:8px;background:#f8fcff}.assignment-count-strip>span{margin-right:2px;color:#45627e;font-size:11px;font-weight:900}.assignment-count-item{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:2px 4px 2px 7px;border:1px solid #c5dce9;border-radius:6px;background:#fff;color:#17324a;font-size:11px}.assignment-count-item button{width:21px;height:21px;padding:0;border:1px solid #b7d6e8;border-radius:4px;background:#f8fcff;color:#26648e;font-weight:900;line-height:1;cursor:pointer}.assignment-count-item button:hover{background:#dceff8}.assignment-count-item>span{min-width:16px;color:#26648e;font-weight:900;text-align:center}.assignment-custom-task-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.8fr);align-items:center;gap:8px;padding:8px 10px;border:1px dashed #b7d6e8;border-radius:8px;background:#fbfdff}.assignment-custom-task-box>div:first-child{display:grid;gap:2px}.assignment-custom-task-box strong{color:#17324a;font-size:12px}.assignment-custom-task-box span{color:#56708a;font-size:11px}.assignment-custom-task-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.assignment-custom-task-controls input{min-width:0;min-height:36px;padding:0 8px;border:1px solid #b7d6e8;border-radius:7px;background:#fff;color:#17324a;font-size:12px}.assignment-live-dot:before{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:#45a477;content:""}.assignment-attendance-list{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:9px;border:1px solid #d4e6f0;border-radius:8px;background:#f8fcff}.assignment-attendance-list button{padding:5px 7px;border:0;border-radius:6px;background:#e7f2f8;color:#26648e;font-size:11px;font-weight:800;cursor:pointer}.assignment-name-chip.male{border-color:#8bbbe8;background:#e6f2ff;color:#1d5e99}.assignment-name-chip.female{border-color:#e9a9c0;background:#fff0f5;color:#a13e68}.assignment-name-chip.unknown{border-color:#b7d6e8;background:#fff;color:#17324a}.assignment-attendance-list button.selected,.assignment-member-list button.selected{outline:2px solid #4f8fc0;outline-offset:1px;background:#d8ecf7}.assignment-date-field{display:grid;min-width:145px;gap:3px;color:#45627e;font-size:11px;font-weight:900}.assignment-date-field input,.assignment-edit-controls select{min-height:36px;padding:0 8px;border:1px solid #b7d6e8;border-radius:7px;background:#fff;color:#17324a;font-size:12px}.assignment-result-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.assignment-result-card-head>div{display:grid;min-width:0;gap:3px}.assignment-result-card-head small{color:#56708a;font-size:10px;line-height:1.35}.assignment-count-control{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto}.assignment-count-control button{width:22px;height:22px;padding:0;border:1px solid #b7d6e8;border-radius:5px;background:#fff;color:#26648e;font-weight:900;line-height:1;cursor:pointer}.assignment-count-control strong{min-height:0;color:#26648e;font-size:10px;white-space:nowrap}.assignment-member-list{display:flex;min-height:30px;align-items:center;flex-wrap:wrap;gap:5px;margin-top:8px}.assignment-member-list button{padding:5px 7px;border:1px solid #b7d6e8;border-radius:6px;background:#fff;color:#17324a;font-size:11px;font-weight:800;cursor:pointer}.assignment-empty-member{color:#7890a4;font-size:11px}.assignment-edit-box{display:grid;gap:8px;padding:10px;border:1px solid #b7d6e8;border-radius:8px;background:#f8fcff}.assignment-edit-box h3{margin-bottom:2px;color:#17324a;font-size:13px}.assignment-edit-box p{margin:0;color:#56708a;font-size:11px;line-height:1.4}.assignment-selection-status{display:flex;flex-wrap:wrap;gap:6px 12px;padding:7px 8px;border:1px dashed #b7d6e8;border-radius:6px;color:#7890a4;font-size:11px}.assignment-selection-status.ready{border-style:solid;background:#eef8fc;color:#26648e}.assignment-selection-status strong{color:#17324a}.assignment-edit-feedback{padding:7px 8px;border-radius:6px;background:#e7f3f9;color:#26648e!important}.assignment-edit-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:6px}.assignment-result-card{cursor:default}.assignment-attendance-list button{transition:background .15s ease,outline-color .15s ease}.assignment-attendance-list button:hover,.assignment-member-list button:hover,.assignment-count-control button:hover{background:#dceff8}.assignment-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assignment-result-card{display:grid;min-width:0;gap:4px;padding:10px;border:1px solid #c5dce9;border-radius:8px;background:#fff;color:#17324a;text-align:left;cursor:default}.assignment-result-card span{font-size:12px;font-weight:900}.assignment-result-card strong{min-height:34px;color:#45627e;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.assignment-result-card .assignment-card-count{min-height:0;color:#26648e;font-size:11px;white-space:nowrap}.assignment-result-card small{color:#7890a4;font-size:10px}.assignment-result-card.blue{background:#f0f7fc;border-color:#afd2e6}.assignment-result-card.violet{background:#f5f2fc;border-color:#d2c6eb}.assignment-result-card.teal{background:#effaf8;border-color:#b8e1d9}.assignment-result-card.amber{background:#fff8e9;border-color:#efd79e}.assignment-result-card.custom{background:#f7f4ed;border-color:#dfcfaa}.assignment-result-card.muted{background:#f5f7f9;border-color:#d9e0e6}.ladder-stage{display:grid;gap:8px;padding:10px;border:1px solid #b7d6e8;border-radius:8px;background:#f8fcff}.ladder-stage-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ladder-stage-head h3{margin-bottom:2px;color:#17324a;font-size:14px}.ladder-stage-head p,.ladder-stage-note{margin:0;color:#56708a;font-size:11px;line-height:1.4}.ladder-board{display:grid;grid-template-columns:minmax(72px,1fr) minmax(110px,1.5fr) minmax(72px,1fr);min-height:168px;align-items:stretch;gap:8px;padding:8px;border:1px solid #d4e6f0;border-radius:7px;background:#fff}.ladder-endpoint-column{display:grid;align-content:space-around;gap:4px}.ladder-endpoint-column span{padding:4px 5px;border:1px solid #c5dce9;border-radius:5px;background:#eef7fb;color:#26648e;font-size:10px;font-weight:800;text-align:center}.ladder-endpoint-column.right span{background:#fff7e5;border-color:#efd79e;color:#93620c}.ladder-rail{position:relative;display:grid;grid-template-columns:repeat(5,1fr);min-height:150px}.ladder-rail i{border-left:2px solid #8ab9d2}.ladder-rail b{position:absolute;left:8%;width:34%;height:2px;background:#8ab9d2;transform-origin:left center}.ladder-rail b:nth-of-type(1){top:18%}.ladder-rail b:nth-of-type(2){top:38%;left:28%;width:44%}.ladder-rail b:nth-of-type(3){top:59%;left:45%;width:42%}.ladder-rail b:nth-of-type(4){top:78%;left:16%;width:48%}.ladder-rail em{position:absolute;top:2%;left:10%;width:11px;height:11px;border-radius:50%;background:#4f8fc0;box-shadow:0 0 0 4px #4f8fc02e;animation:ladder-walker 1.5s ease-in-out infinite}.ladder-board.complete .ladder-rail em{top:88%;animation:none;background:#45a477;box-shadow:0 0 0 4px #45a4772e}@keyframes ladder-walker{0%{top:2%;left:10%}25%{top:25%;left:38%}50%{top:49%;left:68%}75%{top:70%;left:42%}to{top:88%;left:82%}}.assignment-ladder-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:16px;background:#1020336b}.assignment-ladder-modal-content{width:min(96vw,620px);max-height:min(88vh,760px);overflow:auto;display:grid;gap:10px;padding:16px;border:1px solid #b7d6e8;border-radius:14px;background:#f8fcff;box-shadow:0 24px 70px #10203357}.assignment-ladder-modal-content .ladder-stage-head{margin-bottom:0}.ladder-stage-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.ladder-phase-list{display:flex;flex-wrap:wrap;gap:6px}.ladder-phase-list span{padding:5px 8px;border:1px solid #b7d6e8;border-radius:999px;background:#eaf5fb;color:#26648e;font-size:11px;font-weight:800}.ladder-phase-list span.active{border-color:#4f8fc0;background:#4f8fc0;color:#fff}.ladder-phase-list span.done{border-color:#9bcdb4;background:#eaf8f0;color:#2d7e53}.ladder-svg-scroll{overflow-x:auto;padding:8px 4px;border:1px solid #d4e6f0;border-radius:9px;background:#fff;overscroll-behavior-x:contain}.ladder-svg{display:block;min-width:520px;max-width:none}.ladder-svg-rail{stroke:#8ab9d2;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.ladder-svg-rung{stroke:#4f8fc0;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.ladder-svg-label rect{fill:#eef7fb;stroke:#c5dce9;stroke-width:1}.ladder-svg-label text{fill:#26648e;font-size:11px;font-weight:800;dominant-baseline:middle;pointer-events:none}.ladder-svg-label.destination rect{fill:#fff7e5;stroke:#efd79e}.ladder-svg-label.destination text{fill:#93620c}.ladder-svg-marker{fill:#4f8fc0;transition:transform 45ms linear}.ladder-svg-marker.completed,.ladder-svg.complete .ladder-svg-marker.completed{fill:#45a477}.ladder-empty-state{padding:32px 12px;border:1px dashed #b7d6e8;border-radius:8px;color:#56708a;text-align:center}.assignment-preview-actions{justify-content:flex-start;flex-wrap:wrap}.assignment-preview-actions button{flex:1 1 110px}.assignment-preview-message{padding:8px 10px;border-radius:7px;background:#eef7fb}.schedule-editor-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#10203314;pointer-events:auto}.schedule-editor-modal-content{width:min(100%,560px);max-height:min(90vh,760px);overflow:auto;padding:12px;border:1px solid #b7d6e8;border-radius:14px;background:#f8fcff;box-shadow:0 20px 60px #10203347}.schedule-editor-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#17324a;font-size:17px}.schedule-editor-modal-content .schedule-editor{margin:0}.personal-month-delete{display:block;margin:0 0 8px auto}.admin-review-modal-content{width:min(92vw,760px);max-height:min(90vh,820px)}.admin-review-modal-content .admin-review-panel{margin:0}.admin-review-modal-content .admin-request-list{max-height:min(58vh,520px)}.calendar-view-tabs{grid-area:auto}.calendar-view-tabs{display:flex;min-width:0;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px;border:1px solid #b7d6e8;border-radius:10px;background:#f8fcff}.calendar-mode-buttons,.calendar-month-controls{display:flex;min-width:0;align-items:flex-end;flex-wrap:wrap;gap:8px}.calendar-month-controls label{display:grid;gap:4px;color:#45627e;font-size:12px;font-weight:800}.calendar-month-controls input,.calendar-month-controls select{min-height:40px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#102033}.calendar-month-controls input,.calendar-month-controls select{width:104px}.month-nav-button{display:inline-grid;width:42px;min-height:42px;place-items:center;padding:0;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#17324a;font-size:28px;line-height:1;cursor:pointer}.month-nav-button:hover{border-color:#4f8fc0;background:#dceff8}.calendar-view-tabs button{min-height:42px;padding:0 16px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#17324a;font-weight:900;cursor:pointer}.calendar-view-tabs button.active{border-color:#4f8fc0;background:#dceff8;color:#0f4f68}.tool-panel{overflow:hidden;border:1px solid #b7d6e8;border-radius:10px;background:#fff}.tool-panel+.tool-panel{margin-top:0}.tool-panel-head{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border:0;background:#f8fcff;color:#17324a;font-weight:900;cursor:pointer}.tool-panel-title{min-width:0;display:inline-flex;align-items:center;gap:8px}.tool-panel-beta{flex:0 0 auto;padding:3px 7px;border:1px solid #e9bd66;border-radius:999px;background:#fff5dc;color:#8a5a00;font-size:10px;font-weight:900;line-height:1}.tool-panel.active .tool-panel-head{background:#dceff8;color:#0f4f68}.tool-panel-body{padding:12px;border-top:1px solid #d4e6f1}.tool-panel-body>.panel{padding:0;border:0;border-radius:0;box-shadow:none}.admin-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.9fr);gap:18px;margin-bottom:18px}.admin-main-stack,.admin-side-stack{display:grid;align-content:start;gap:18px}.user-button-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.user-chip{min-height:38px;padding:0 10px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#17324a;font-weight:800;cursor:pointer}.user-chip.active{border-color:#4f8fc0;background:#dceff8;color:#0f4f68}.user-chip.disabled-user{color:#94a3b8;background:#f8fafc}.user-detail{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.user-detail-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.user-detail-head span{color:#647b91;font-size:13px;font-weight:800}.reset-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.reset-row input{min-height:42px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px}.user-change-log{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.user-change-log strong{color:#17324a}.user-change-log p,.user-change-log ul{margin:0}.user-change-log ul{display:grid;gap:6px;padding-left:18px;color:#45627e;font-size:13px;line-height:1.45}.month-reflect-box{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.month-reflect-box p{margin:0}.mini-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #b7d6e8;border-radius:8px;overflow:hidden;-webkit-user-select:none;user-select:none}.mini-weekday,.mini-day{border-right:1px solid #b7d6e8;border-bottom:1px solid #b7d6e8}.mini-weekday:nth-child(7n),.mini-day:nth-child(7n){border-right:0}.mini-weekday{min-height:34px;display:grid;place-items:center;background:#dceff8;color:#45627e;font-weight:900}.mini-weekday.sunday,.mini-day.sunday .mini-day-number{color:#dc2626}.mini-day{min-height:136px;min-width:0;padding:8px;background:#fff;cursor:pointer;touch-action:auto;text-align:left}.personal-mini-calendar .mini-day{position:relative;padding:0}.personal-mini-calendar{user-select:none;-webkit-user-select:none}.mini-day-button{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;touch-action:auto;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease,background-color .12s ease}.mini-day-button:not(:disabled):active{background:#4f8fc024}.mini-day-button:disabled{cursor:default}.mini-day-content{position:relative;z-index:1;min-width:0;padding:8px;pointer-events:none}.mini-day-content .mini-events,.mini-day-content .mini-event,.mini-day-content .mini-lunch-toggle{pointer-events:auto}.mini-day.outside{background:#f4f8fb;color:#9aaabd}.mini-day.selected{outline:2px solid #4f8fc0;outline-offset:-2px;background:#eaf7fb}.mini-day.range-selected{box-shadow:inset 0 0 0 2px #78b7d5;background:#eef9fc}.mini-day.drop-target{box-shadow:inset 0 0 0 3px #4f8fc0;background:#eaf7fb}.mini-day.holiday .mini-day-number{color:#dc2626}.mini-day.calendar-note{background:#fff7e8}.mini-day.locked:not(.outside){background:#f4f8fb}.mini-day-number{font-weight:900;margin-bottom:6px}.mini-events{display:grid;min-width:0;gap:4px}.mini-day-header{position:relative;min-height:22px}.holiday-pill,.calendar-note-pill,.locked-pill{width:100%;margin-bottom:4px;padding:3px 6px;border-radius:6px;font-size:11px;font-weight:900;line-height:1.2}.holiday-pill{color:#b42318;background:#fff1f1}.calendar-note-pill{color:#9a5b00;background:#fff0d2}.locked-pill{color:#64748b;background:#e2e8f0}.mini-event{display:block;width:100%;min-width:0;padding:5px 6px;border:0;border-radius:6px;background:#e8f8fb;color:#0f4f68;font-size:12px;line-height:1.25;overflow-wrap:anywhere;text-align:left;cursor:pointer;touch-action:manipulation}.personal-mini-calendar .mini-event{cursor:grab;-webkit-touch-callout:none}.personal-mini-calendar .mini-event:active{cursor:grabbing}.mini-event.selected{box-shadow:inset 0 0 0 2px #26648e}.mini-event.gigeun{background:#fff0d2;color:#7a4f07}.mini-lunch-toggle{position:absolute;top:-2px;right:0;min-width:30px;min-height:28px;padding:4px 6px;border:1px solid #b7d6e8;border-radius:999px;background:#fff;color:#45627e;font-size:10px;font-weight:900;line-height:1.1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mini-lunch-toggle.active{border-color:#f4ba35;background:#fff4cf;color:#8a5a00}.mini-lunch-toggle:disabled{cursor:wait}.public-mini-calendar .mini-day{min-height:178px}.public-mini-event{background:#eef8fb}.admin-review-panel{align-self:start}.admin-request-list{max-height:720px;overflow:auto;padding-right:4px}.admin-request-item{grid-template-columns:minmax(0,1fr) auto}.review-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}button:disabled{cursor:not-allowed;opacity:.52;box-shadow:none}.mini-event-time{display:block;white-space:nowrap}.mini-event-time>span{display:inline}.mini-event-note{display:block;margin-top:2px}.mini-event-name{overflow-wrap:anywhere}.bulk-edit-notice{margin:10px 0;padding:9px 10px;border:1px solid #b7d6e8;border-radius:8px;background:#eef9fc;color:#26648e;font-size:12px;line-height:1.45}.desktop-lunch-label{display:inline}.mobile-lunch-label{display:none}.schedule-editor{align-self:start}.edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.edit-grid label{display:grid;gap:4px;color:#45627e;font-size:12px;font-weight:800}.field-stack{display:grid;gap:4px;margin-bottom:10px;color:#45627e;font-size:12px;font-weight:800}.edit-grid input,.edit-grid select{min-height:42px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px}.split-schedule-toggle{margin:10px 0 8px;padding:8px 10px;border:1px solid #b7d6e8;border-radius:7px;background:#f8fcff}.split-schedule-fields{display:grid;gap:6px;margin:0 0 10px;padding:8px 10px 10px;border-left:3px solid #53b6c6;background:#f3fbfd}.split-schedule-fields>span{color:#26648e;font-size:12px;font-weight:800}.field-stack input{min-height:42px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px}.public-editor .selected-list{max-height:260px;overflow:auto;padding-right:4px}.checkbox-line{display:flex;align-items:center;gap:8px;margin:12px 0;color:#17324a;font-weight:800}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.user-detail-label,.user-gender-status{display:inline-flex;align-items:center;min-height:34px;color:#647b91;font-size:13px;font-weight:800}.tag-button{min-height:34px;padding:0 12px;border:1px solid #9fc7df;border-radius:8px;background:#fff;color:#26648e;font-weight:900;cursor:pointer}.tag-button.active{border-color:#22c55e;background:#dcfce7;color:#166534}.editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.danger-button{border-color:#fecaca;color:#b42318}.selected-list{display:grid;gap:8px}.selected-list-item{width:100%;min-height:42px;padding:0 12px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#102033;text-align:left;font-weight:800;cursor:pointer}.selected-list-item.active{border-color:#4f8fc0;background:#dceff8}.panel{padding:20px;border:1px solid #b7d6e8;border-radius:10px;background:#fff}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.list{display:grid;gap:10px}.personal-calendar-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;color:#26648e;font-size:14px}.personal-calendar-summary span{padding:6px 9px;border:1px solid #b7d6e8;border-radius:7px;background:#eef8fb}.personal-calendar-summary b{margin-right:4px;color:#17324a}.calendar-clipboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid #b7d6e8;border-radius:7px;background:#f8fcff}.calendar-clipboard-toolbar>div:first-child{display:grid;min-width:0;gap:2px}.calendar-clipboard-toolbar strong{color:#17324a;font-size:12px}.calendar-clipboard-toolbar span{overflow:hidden;color:#56708a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.calendar-clipboard-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:5px}.public-calendar-title{margin-bottom:0}.public-calendar-print-layout{overflow:auto;border:1px solid #101828;background:#fff}.public-print-weekdays,.public-print-date-row,.public-print-body-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:700px}.public-print-weekdays>div,.public-print-date-row>button,.public-print-body-row>div{min-width:0;border-right:1px solid #101828;border-bottom:1px solid #101828}.public-print-weekdays>div:last-child,.public-print-date-row>button:last-child,.public-print-body-row>div:last-child{border-right:0}.public-print-weekdays>div{min-height:30px;display:grid;place-items:center;background:#f8fafc;color:#17324a;font-size:12px;font-weight:900}.public-print-date-row>button{min-height:28px;padding:4px 6px;border-top:0;background:#fff;color:#102033;font-size:11px;font-weight:900;text-align:left;cursor:pointer}.public-print-date-row>button.selected{outline:2px solid #4f8fc0;outline-offset:-2px;background:#eaf7fb}.public-print-body-row>div{min-height:170px;padding:6px;color:#102033;font-size:11px;line-height:1.25;vertical-align:top}.public-print-entry{display:block;width:100%;margin:0 0 5px;padding:0;border:0;background:transparent;color:inherit;font-size:inherit;line-height:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer}.public-print-entry strong{font-weight:900}.public-print-shift{margin-bottom:6px}.public-print-shift-label{display:block;margin-bottom:2px}.public-print-entry .gigeun-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.public-print-entry.selected{border-radius:4px;outline:2px solid #4f8fc0;outline-offset:1px;background:#eaf7fb}.public-print-note{display:block;margin-bottom:5px}.public-print-note.holiday{color:#b42318}.public-print-note.note{color:#9a5b00}.public-print-date-row .sunday,.public-print-body-row .sunday{color:#dc2626}.public-print-date-row .outside,.public-print-body-row .outside{background:#f7f7f7;color:#94a3b8}.request-status-content{display:grid;gap:10px}.request-count{padding:10px 12px;border:1px solid #b7d6e8;border-radius:8px;background:#eaf7fb;color:#0f4f68;font-weight:900}.branch-meta{grid-column:1 / -1;margin:0;color:#55728a;font-size:.82rem}.list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.list-item strong{display:block;margin-bottom:4px}.list-item p{margin:0;color:#647b91;font-size:13px}.status{align-self:start;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}.status.pending{color:#7a4f07;background:#fff0d2}.status.approved{color:#166534;background:#dcfce7}.status.rejected{color:#b42318;background:#fee4e2}.change-summary{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px}.change-breakdown{grid-column:1 / -1;min-width:0}.change-details{grid-column:1 / -1;display:grid;gap:8px}.change-details-preview{margin-top:8px}.previous-schedule-details{grid-column:1 / -1;border:1px solid #d4e6f1;border-radius:8px;background:#fff}.previous-schedule-details summary{padding:10px 12px;color:#26648e;font-weight:900;cursor:pointer}.previous-schedule-list{display:grid;gap:4px;max-height:220px;overflow:auto;margin:0;padding:0 12px 12px 30px;color:#17324a;font-size:13px;line-height:1.45}.previous-schedule-empty{margin:0;padding:0 12px 12px}.change-detail-group{padding:10px;border-radius:8px;border:1px solid #d4e6f1;background:#fff}.change-detail-group strong{display:block;margin-bottom:6px}.change-detail-group ul{margin:0;padding-left:18px}.change-detail-group li{margin:3px 0;color:#17324a;font-size:13px;line-height:1.45}.change-detail-group.added{border-color:#bbf7d0;background:#f0fdf4}.change-detail-group.modified{border-color:#bfdbfe;background:#eff6ff}.change-detail-group.deleted{border-color:#fecaca;background:#fff5f5}.change-pill{border:0;cursor:pointer;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900;transition:transform .12s ease,box-shadow .12s ease}.change-pill:hover,.change-pill:focus-visible,.change-pill.active{transform:translateY(-1px);box-shadow:0 0 0 2px #26648e38}.change-pill.added{color:#166534;background:#dcfce7}.change-pill.modified{color:#1d4ed8;background:#dbeafe}.change-pill.deleted{color:#b42318;background:#fee4e2}.muted,.empty{color:#647b91}.empty{padding:18px;border:1px dashed #b7d6e8;border-radius:8px;background:#f8fcff}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.feature-grid div{display:grid;gap:6px;padding:14px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.feature-grid span{color:#56708a;font-size:14px;line-height:1.45}.status-line{margin:14px 0 0;color:#45627e;font-weight:700}.request-panel{display:grid;gap:10px;align-self:start}.request-panel p{margin-bottom:0}.request-center-body{display:grid;gap:16px}.request-center-body>.panel{padding:0;border:0;border-radius:0;box-shadow:none}.request-export-controls{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr);align-items:end;gap:8px}.request-export-controls label{display:grid;gap:4px;color:#45627e;font-size:12px;font-weight:800}.request-export-controls select{width:100%;min-height:42px;padding:0 10px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#102033}.request-export-controls button{width:100%;white-space:nowrap}.request-submit-button{gap:8px}.request-submit-button:disabled{cursor:wait;opacity:.78}.request-spinner{width:15px;height:15px;flex:0 0 15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:request-spinner-rotation .75s linear infinite}@keyframes request-spinner-rotation{to{transform:rotate(360deg)}}.preset-panel,.text-import-panel,.generated-text-panel{align-self:start}.preset-grid{display:grid;gap:8px}.preset-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end;padding:10px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.preset-row.active{border-color:#9fc7df;background:#eaf7fb}.weekday-toggle{min-height:42px;border:1px solid #b7d6e8;border-radius:999px;background:#fff;color:#26648e;font-weight:900;cursor:pointer}.preset-row.active .weekday-toggle{background:#26648e;color:#fff}.preset-row label{display:grid;gap:4px;color:#45627e;font-size:12px;font-weight:800}.preset-row input{min-height:42px;padding:0 10px;border:1px solid #b7d6e8;border-radius:8px}.text-import-panel textarea,.generated-text-panel textarea{width:100%;min-height:180px;padding:12px;border:1px solid #b7d6e8;border-radius:8px;resize:vertical;color:#102033;background:#f8fcff;line-height:1.55}.generated-text-panel textarea{min-height:220px;white-space:pre}.import-message{margin:10px 0 0;color:#56708a;font-size:13px;font-weight:700}.personal-workspace>.stats-panel{grid-column:1 / -1}.stats-panel{display:grid;gap:12px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stats-extra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{display:grid;gap:4px;min-height:82px;padding:14px;border:1px solid #d4e6f1;border-radius:8px;background:#f8fcff}.stat-card span{color:#56708a;font-size:13px;font-weight:800}.stat-card strong{font-size:22px;line-height:1.15}.stat-card small{color:#56708a;font-size:12px;font-weight:700}.stat-card-accent{border-color:#f1c95d;background:#fff9e8}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.settings-grid label{display:grid;gap:6px;color:#56708a;font-size:13px;font-weight:800}.settings-grid input{width:100%}.settings-help{margin:0;color:#56708a;font-size:13px;line-height:1.5}.weekly-list{display:flex;flex-wrap:wrap;gap:8px}.week-pill{padding:7px 10px;border:1px solid #b7d6e8;border-radius:999px;background:#fff;color:#26648e;font-size:13px;font-weight:900}.wide-button{width:100%}@media(pointer:coarse){.mini-day,.mini-day-button{touch-action:pan-y}}@media(max-width:960px){.app-shell{width:min(100% - 24px,1180px);padding-top:16px;padding-bottom:92px}.hero,.account-panel,.calendar-workspace,.admin-workspace,.toolbar,.grid,.feature-grid{display:grid;grid-template-columns:1fr}.hero{padding:20px}.hero.hero-session{display:block;padding:0}.hero-session .hero-main,.hero-session .hero-side{display:none}.hero-session .mobile-app-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;min-height:52px;padding:max(6px,env(safe-area-inset-top)) 6px 6px}.mobile-header-item{display:inline-flex;min-width:0;min-height:38px;align-items:center;justify-content:center;padding:0 10px;border:1px solid #b7d6e8;border-radius:8px;background:#fff;color:#17324a;font-size:13px;font-weight:900;text-decoration:none;white-space:nowrap;cursor:pointer}.mobile-header-user{overflow:hidden;text-overflow:ellipsis}.mobile-header-item:active{background:#dceff8}.hero-side{min-width:0;justify-items:stretch}.account-panel-inline{grid-template-columns:minmax(0,1fr)}.account-panel-inline .account-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.account-panel-inline .account-actions button{min-width:0;padding-right:8px;padding-left:8px;font-size:13px}.hero-actions{justify-content:flex-start}.calendar-view-tabs{display:grid;grid-template-columns:1fr}.calendar-mode-buttons,.calendar-month-controls{width:100%}.calendar-mode-buttons button{flex:1 1 0}.calendar-month-controls{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) 42px;align-items:end;gap:6px}.calendar-month-controls label,.calendar-month-controls input,.calendar-month-controls select{width:100%;min-width:0}.calendar-month-controls input,.calendar-month-controls select,.month-nav-button{min-height:46px}.month-nav-button{width:100%;font-size:26px}.calendar-main-column,.calendar-tool-column{grid-column:1}.calendar-workspace{position:relative;grid-template-columns:1fr;gap:10px}.calendar-workspace.mobile-section-calendar .calendar-tool-column{display:none}.calendar-workspace:not(.mobile-section-calendar) .calendar-main-column{display:none}.calendar-workspace:not(.mobile-section-calendar) .calendar-tool-column{display:grid}.calendar-tool-column[data-mobile-panel=assignment-preview] .tool-panel:not([data-panel-id=assignment-preview]),.calendar-tool-column[data-mobile-panel=stats] .tool-panel:not([data-panel-id=stats]),.calendar-tool-column[data-mobile-panel=editor] .tool-panel:not([data-panel-id=editor]),.calendar-tool-column[data-mobile-panel=request] .tool-panel:not([data-panel-id=request-center]),.calendar-tool-column[data-mobile-panel=presets] .tool-panel:not([data-panel-id=presets]),.calendar-tool-column[data-mobile-panel=import] .tool-panel:not([data-panel-id=import]),.calendar-tool-column[data-mobile-panel=generated] .tool-panel:not([data-panel-id=generated]),.calendar-tool-column[data-mobile-panel=personal-history] .tool-panel:not([data-panel-id=personal-history]),.calendar-tool-column[data-mobile-panel=public-history] .tool-panel:not([data-panel-id=public-history]){display:none}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #b7d6e8;background:#fffffff7;box-shadow:0 -4px 14px #26648e1f}.mobile-bottom-nav button{display:grid;min-height:48px;place-items:center;gap:2px;padding:3px 2px;border:0;border-radius:8px;background:transparent;color:#56708a;font-size:11px;font-weight:800}.mobile-bottom-nav button span:first-child{font-size:17px;line-height:1}.mobile-bottom-nav button.active{background:#dceff8;color:#0f4f68}}@media(max-width:760px){.app-shell{width:min(100% - 20px,1180px);padding-top:12px;padding-bottom:92px}.hero,.account-panel,.calendar-workspace,.admin-workspace,.toolbar,.grid,.feature-grid{display:grid;grid-template-columns:1fr}.hero-side{min-width:0;justify-items:stretch}.hero-actions{justify-content:flex-start}.calendar-view-tabs{display:grid;grid-template-columns:1fr}.calendar-mode-buttons,.calendar-month-controls{width:100%}.calendar-mode-buttons button{flex:1 1 0}.calendar-month-controls{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) 42px;align-items:end;gap:6px}.calendar-month-controls label,.calendar-month-controls input,.calendar-month-controls select{width:100%;min-width:0}.calendar-month-controls input,.calendar-month-controls select,.month-nav-button{min-height:46px}.month-nav-button{width:100%;font-size:26px}.calendar-main-column,.calendar-tool-column{grid-column:1}.calendar-workspace{position:relative;grid-template-columns:1fr;gap:10px}.calendar-workspace.mobile-section-calendar .calendar-tool-column{display:none}.calendar-workspace:not(.mobile-section-calendar) .calendar-main-column{display:none}.calendar-workspace:not(.mobile-section-calendar) .calendar-tool-column{display:grid}.schedule-editor-modal{padding:12px}.schedule-editor-modal-content{width:min(100%,360px);max-height:82vh;padding:10px;border-radius:14px}.calendar-tool-column[data-mobile-panel=assignment-preview] .tool-panel:not([data-panel-id=assignment-preview]),.calendar-tool-column[data-mobile-panel=stats] .tool-panel:not([data-panel-id=stats]),.calendar-tool-column[data-mobile-panel=editor] .tool-panel:not([data-panel-id=editor]),.calendar-tool-column[data-mobile-panel=request] .tool-panel:not([data-panel-id=request-center]),.calendar-tool-column[data-mobile-panel=presets] .tool-panel:not([data-panel-id=presets]),.calendar-tool-column[data-mobile-panel=import] .tool-panel:not([data-panel-id=import]),.calendar-tool-column[data-mobile-panel=generated] .tool-panel:not([data-panel-id=generated]),.calendar-tool-column[data-mobile-panel=personal-history] .tool-panel:not([data-panel-id=personal-history]),.calendar-tool-column[data-mobile-panel=public-history] .tool-panel:not([data-panel-id=public-history]){display:none}.mobile-more-tools{display:grid;gap:8px;padding:10px;border:1px solid #b7d6e8;border-radius:10px;background:#f8fcff}.mobile-more-tools strong{color:#26648e;font-size:13px}.mobile-more-tool-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.mobile-more-tool-buttons button{min-height:38px;padding:0 8px;border:1px solid #b7d6e8;border-radius:7px;background:#fff;color:#17324a;font-size:12px;font-weight:800}.mobile-more-tool-buttons button.active{border-color:#4f8fc0;background:#dceff8;color:#0f4f68}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #b7d6e8;background:#fffffff7;box-shadow:0 -4px 14px #26648e1f}.mobile-bottom-nav button{display:grid;min-height:48px;place-items:center;gap:2px;padding:3px 2px;border:0;border-radius:8px;background:transparent;color:#56708a;font-size:11px;font-weight:800}.mobile-bottom-nav button span:first-child{font-size:17px;line-height:1}.mobile-bottom-nav button.active{background:#dceff8;color:#0f4f68}h1{font-size:26px}.mini-day{min-height:112px;padding:0}.public-calendar-print-layout{border-radius:8px}.public-print-weekdays,.public-print-date-row,.public-print-body-row{min-width:640px}.public-print-body-row>div{min-height:150px;padding:5px;font-size:10px}.public-print-date-row>button{min-height:26px;font-size:10px}.personal-calendar-summary{gap:5px;font-size:12px}.personal-calendar-summary span{padding:5px 7px}.calendar-clipboard-toolbar{align-items:stretch;flex-direction:column}.calendar-clipboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-clipboard-actions button{min-width:0}.personal-mini-calendar .mini-day-content{padding:6px 3px}.mini-day-header{min-height:22px}.mini-lunch-toggle{display:none}.mini-calendar{border-radius:10px}.mini-weekday{min-height:30px;font-size:12px}.mini-day-number{margin-bottom:4px;font-size:13px}.mini-events{gap:3px}.mini-event{min-height:44px;padding:5px 4px;border-radius:5px;font-size:10px;line-height:1.15}.mini-event-time{display:grid;gap:0;font-size:11px;line-height:1.05;white-space:normal}.mini-event-time>span{display:block;white-space:nowrap}.mini-event-note{margin-top:3px;font-size:9px;line-height:1.1}.desktop-lunch-label{display:none}.mobile-lunch-label{display:inline}.public-mini-calendar .mini-day{min-height:128px}.public-mini-calendar .mini-event{min-height:48px}.calendar-note-pill{display:none}.session-badge{margin-left:0}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-extra-grid,.settings-grid{grid-template-columns:1fr}.user-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reset-row{grid-template-columns:1fr}.preset-row{grid-template-columns:38px 1fr}}@media(max-width:560px){.assignment-ladder-modal{place-items:end center;padding:8px}.assignment-ladder-modal-content{width:100%;max-height:84vh;padding:12px;border-radius:12px}.ladder-svg-scroll{margin-inline:-4px}.ladder-svg{min-width:520px}.ladder-stage-actions{justify-content:stretch}.ladder-stage-actions button{flex:1 1 120px}.assignment-preview-toolbar{align-items:stretch;flex-direction:column}.assignment-date-field{width:100%}.assignment-result-grid,.assignment-custom-task-box{grid-template-columns:1fr}.assignment-count-strip{align-items:stretch}.assignment-count-strip>span{flex-basis:100%}.assignment-edit-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.assignment-edit-controls button{grid-column:1 / -1}.assignment-preview-actions button{flex-basis:calc(50% - 6px)}.ladder-board{grid-template-columns:minmax(62px,1fr) minmax(92px,1.4fr) minmax(62px,1fr);gap:4px;padding:5px}}
