.planning-board{--planning-person-width:216px;color:#142f43;margin:0 0 32px;border:1px solid #dce7ed;border-radius:18px;background:#fff;box-shadow:0 6px 28px #102b4007;overflow:hidden}
.planning-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 28px 23px;background:linear-gradient(115deg,#eff7f5,#f4f4fa 88%);border-bottom:1px solid #e0e9ed}
.planning-eyebrow{font-size:10px;font-weight:750;letter-spacing:1.9px;color:#28796f}.planning-intro h2{margin:8px 0 7px;font-size:27px;letter-spacing:-.8px;line-height:1.2}.planning-intro p{margin:0;font-size:13px;color:#5c7383;line-height:1.6}.planning-permission{display:inline-flex;flex-shrink:0;padding:9px 12px;background:#fff;border:1px solid #dce3ee;border-radius:20px;font-size:11px;font-weight:650;color:#566687}.planning-permission.can-edit{color:#147365;border-color:#c4e2d9;background:#fbfffd}
.planning-toolbar{padding:21px 26px 17px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.planning-week-switch{display:flex;gap:10px;align-items:center}.planning-icon{width:42px;height:44px;display:grid;place-items:center;background:#f4f7fa;border:1px solid #dee7ed;border-radius:9px;font-size:27px;color:#36576f;line-height:1}.planning-icon:hover{background:#e8f3ef;border-color:#99c7bd}.planning-week-label{min-width:132px;text-align:center;display:grid;gap:4px}.planning-week-label strong{font-size:18px;font-weight:750;letter-spacing:-.3px}.planning-week-label strong span{font-size:13px;font-weight:500;color:#63768a}.planning-week-label small{font-size:12px;color:#5a7182}.planning-today{margin-left:4px}.planning-toolbar-right{display:flex;align-items:center;gap:18px}.planning-toolbar-right>span{font-size:12px;color:#6c7e8d}.planning-toolbar-right .primary{white-space:nowrap}
.planning-legend{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:0 27px 19px;font-size:11px;color:#5c7083}.planning-legend>span{display:inline-flex;align-items:center;gap:7px}.planning-legend i{width:9px;height:9px;border-radius:3px;display:block}.planning-legend i.project{background:linear-gradient(120deg,#086f75 33%,#4266aa 33%,#4266aa 66%,#7355a6 66%)}.planning-conflict-key{margin-left:auto}.planning-filter-note{margin:0;padding:0 27px 16px;font-size:12px;color:#6b7486}
.planning-scroll{overflow:auto;overscroll-behavior-x:contain;border-top:1px solid #e0e8ee}.planning-grid{min-width:990px}.planning-grid-head{display:grid;grid-template-columns:var(--planning-person-width) repeat(6,minmax(116px,1fr));background:#f7f9fb;min-height:77px;border-bottom:1px solid #dce7ed;position:relative}.planning-staff-heading{position:sticky;left:0;z-index:4;background:#f7f9fb;display:flex;align-items:center;padding:18px 20px;font-size:12px;font-weight:700;border-right:1px solid #dce7ed}.planning-day-heading{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border-right:1px solid #e8edf2;padding:12px 5px;position:relative}.planning-day-heading>span{font-size:11px;color:#667c8d;font-weight:650}.planning-day-heading>strong{font-size:16px;font-weight:700;letter-spacing:-.35px}.planning-day-heading.is-today{color:#096d63;background:#edf7f2;box-shadow:inset 0 3px #118d7b}.planning-day-heading>small{font-size:9px;font-weight:650;color:#0a7a68}.planning-team{display:flex;gap:12px;align-items:center;padding:11px 20px;font-size:11px;font-weight:750;letter-spacing:.4px;background:#f1f5f8;border-bottom:1px solid #e0e8ef;color:#486478;position:relative}.planning-team span{font-size:10px;font-weight:450;letter-spacing:0;color:#6e8393}.planning-row{display:grid;grid-template-columns:var(--planning-person-width) minmax(0,1fr);min-height:calc(28px + var(--planning-lanes)*47px);border-bottom:1px solid #e3eaf0;position:relative}.planning-row:last-child{border-bottom:0}.planning-person{display:flex;align-items:center;gap:11px;padding:16px 16px 16px 19px;position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid #dce7ed;box-shadow:4px 0 8px #18304503;min-width:0}.planning-person>div{min-width:0}.planning-person strong{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.planning-person small{display:block;font-size:10px;line-height:1.6;color:#778996;margin-top:3px}.planning-avatar{width:33px;height:33px;display:grid;place-items:center;flex-shrink:0;font-size:11px;font-weight:750;background:#eef0f8;color:#756195;border:1px solid #e5e6f1;border-radius:11px}.planning-avatar.is-self{background:#e7f5ee;border-color:#cce6dc;color:#177361}.planning-self{margin-left:5px;font-size:9px;background:#e9f5ee;color:#27745f;padding:2px 4px;border-radius:4px;white-space:nowrap}
.planning-days{position:relative;min-width:0;min-height:calc(28px + var(--planning-lanes)*47px)}.planning-cells{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:absolute;inset:0}.planning-cell{border:0;border-right:1px solid #e5ecf2;border-radius:0;background:#fff;min-width:0;min-height:75px;position:relative;padding:0;cursor:pointer}.planning-cell:nth-child(6){background:#fafbfd}.planning-cell.is-today{background:#f0f9f5}.planning-cell>span{display:block;position:absolute;left:50%;bottom:1px;transform:translateX(-50%);font-size:20px;line-height:24px;color:#1c8a75;opacity:0}.planning-cell:hover{background:#eaf5f1;box-shadow:inset 0 0 0 2px #beded3}.planning-cell:hover>span,.planning-cell:focus-visible>span{opacity:1}.planning-cell.is-readonly{cursor:default}.planning-cell.is-readonly:hover{box-shadow:none;background:#fff}.planning-cell.is-readonly.is-today:hover{background:#f0f9f5}.planning-cell.planning-drop-target{background:#d8f2e8;box-shadow:inset 0 0 0 2px #239c80}.planning-bars{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:42px;gap:5px 0;padding:10px 0 18px;pointer-events:none}.planning-bar{position:relative;display:flex;align-items:center;margin:0 5px;padding:6px 13px;min-width:0;border-radius:7px;background:var(--bar-color);color:#fff;box-shadow:0 2px 4px #17344212;pointer-events:auto;border:1px solid #ffffff12;cursor:pointer;outline-offset:2px}.planning-bar.is-editable{touch-action:none;cursor:grab}.planning-bar.is-editable:active{cursor:grabbing}.planning-bar:hover{filter:brightness(1.05);box-shadow:0 3px 9px #18374928}.planning-bar-copy{min-width:0;pointer-events:none;padding:0 3px}.planning-bar strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:1.4;font-weight:650;color:#fff}.planning-bar small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;line-height:1.5;color:#ffffffe8}.planning-bar.has-conflict{box-shadow:0 0 0 2px #e4a95b}.planning-bar.is-dragging{opacity:.35}.planning-resize{position:absolute;z-index:2;top:0;bottom:0;width:13px;display:flex;align-items:center;justify-content:center;cursor:ew-resize;touch-action:none}.planning-resize::after{content:'';width:2px;height:16px;background:#ffffff83;border-radius:2px;box-shadow:3px 0 #ffffff35}.planning-resize.start{left:0}.planning-resize.end{right:0}.planning-bar.is-readonly{padding:6px 10px}
.planning-board-foot{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:16px 26px;color:#6e8291;font-size:11px;line-height:1.6;border-top:1px solid #e2eaf0}.planning-live-status{color:#157763;font-weight:650}.planning-empty{padding:36px 28px;max-width:650px;font-size:14px;line-height:1.7}.planning-empty p{font-size:13px;color:#687e8e}.planning-extra{margin:0 25px 23px;border:1px solid #dee7ed;border-radius:12px;padding:17px 18px;background:#fbfcfd}.planning-extra.unassigned{border-color:#eeddb8;background:#fffdf6}.planning-extra h3{font-size:13px;margin:0;line-height:1.5}.planning-extra h3 span{display:inline-flex;margin-left:6px;padding:1px 6px;align-items:center;justify-content:center;background:#e8edf3;border-radius:5px;color:#5e7284;font-size:10px}.planning-extra p{margin:5px 0 12px;font-size:11px;line-height:1.6;color:#687988}.planning-extra-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:8px}.planning-extra-item{display:flex;align-items:center;text-align:left;gap:10px;border:1px solid #e1e8ed;border-radius:8px;padding:12px;background:#fff;min-width:0;color:#26465e}.planning-extra-item i{display:block;align-self:stretch;flex-shrink:0;width:4px;border-radius:3px;background:var(--bar-color)}.planning-extra-item span{min-width:0;flex:1}.planning-extra-item strong{display:block;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.planning-extra-item small{display:block;font-size:10px;line-height:1.6;color:#758594;margin-top:3px}.planning-extra-item b{flex-shrink:0;color:#167b6f;font-size:10px;font-weight:650}
.planning-drag-active,.planning-drag-active *{user-select:none!important}.planning-drag-ghost{position:fixed;z-index:9999;max-width:270px;pointer-events:none;padding:12px 15px;background:var(--bar-color);color:#fff;border-radius:9px;box-shadow:0 8px 24px #14374b30;font-size:12px;font-weight:650;line-height:1.5;border:1px solid #ffffff50}
.planning-form-body{display:grid;gap:17px}.planning-form-body .form-grid{gap:16px;margin:0}.planning-form-body label{margin:0;line-height:1.6;font-size:12px;font-weight:650}.planning-form-body input,.planning-form-body select{min-height:46px;margin-top:6px;font-size:14px}.planning-form-body [hidden]{display:none!important}.planning-form-body label[hidden]{display:none!important}.planning-form-body .error:empty{display:none}.planning-duration{margin:-7px 0 0;font-size:11px;line-height:1.6;color:#6d8391}.planning-read-notice{margin:0;border:1px solid #dbe9ef;background:#f2f7fa;padding:12px 14px;color:#47687d;font-size:12px;line-height:1.7;border-radius:9px}.planning-conflict-warning{background:#fff8e9;border:1px solid #eacb8f;border-left:4px solid #d5a344;border-radius:10px;padding:16px;color:#74571f;font-size:12px;line-height:1.6}.planning-conflict-warning>strong{font-size:13px}.planning-conflict-warning p{margin:6px 0 8px}.planning-conflict-warning ul{margin:8px 0 15px;padding-left:18px;line-height:1.8}.planning-conflict-warning .planning-conflict-check{display:flex;align-items:flex-start;gap:10px;background:#fffdf5;border-top:1px solid #eddbb3;padding-top:12px;font-size:12px}.planning-conflict-check input{width:20px;height:20px;min-height:20px;flex-shrink:0;margin:1px 0 0;accent-color:#087f75}.planning-conflict-check span{font-weight:650}.planning-modal-footer{display:flex;align-items:center;gap:14px;justify-content:space-between}.planning-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-left:auto}.planning-delete{border:0;background:transparent;color:#a74450;padding:12px 0;font-size:12px;min-height:44px}.planning-delete:hover{text-decoration:underline}.planning-delete-confirm{background:#fff2f1;border:1px solid #efc7c7;color:#873b45;padding:15px;border-radius:9px;font-size:12px}.planning-delete-confirm p{margin:7px 0 12px;line-height:1.5}.planning-delete-confirm button{margin:0 7px 7px 0}.planning-danger{border:1px solid #a94450;border-radius:8px;background:#a94450;color:#fff;padding:11px 14px;min-height:44px;font-size:12px}
@media(min-width:1450px){.planning-grid{min-width:1130px}.planning-bar strong{font-size:12px}.planning-bar small{font-size:10px}.planning-row{min-height:calc(32px + var(--planning-lanes)*49px)}.planning-days{min-height:calc(32px + var(--planning-lanes)*49px)}.planning-bars{grid-auto-rows:44px}}
@media(max-width:1000px){.planning-toolbar-right>span{display:none}.planning-permission{font-size:10px}.planning-board{--planning-person-width:185px}.planning-person{padding-left:13px;gap:8px}.planning-avatar{width:28px;height:30px}.planning-legend{gap:13px}.planning-conflict-key{margin-left:0}}
@media(max-width:620px){.planning-board{border-radius:12px;--planning-person-width:158px}.planning-intro{padding:20px 17px;align-items:flex-start;flex-direction:column;gap:13px}.planning-intro h2{font-size:24px}.planning-intro p{font-size:12px}.planning-permission{padding:7px 10px;font-size:10px}.planning-toolbar{padding:16px;gap:17px}.planning-week-switch{gap:7px;width:100%;justify-content:space-between}.planning-week-label{min-width:112px}.planning-week-label strong{font-size:17px}.planning-icon{width:42px;height:44px}.planning-today{margin-left:auto;padding:10px 13px}.planning-toolbar-right{width:100%}.planning-toolbar-right .primary{width:100%;justify-content:center}.planning-legend{padding:0 16px 16px;font-size:10px;gap:11px 16px}.planning-conflict-key{width:100%;padding-top:3px}.planning-filter-note{padding:0 16px 14px;font-size:11px}.planning-grid{min-width:918px}.planning-person{padding:13px 9px;gap:7px}.planning-person strong{font-size:11px}.planning-person small{font-size:9px}.planning-avatar{width:27px;height:29px;font-size:10px;flex-shrink:0}.planning-staff-heading{padding:14px 12px;font-size:11px}.planning-team{padding:10px 12px}.planning-resize{width:18px}.planning-bar{padding:6px 18px}.planning-board-foot{padding:13px 16px;display:block;font-size:10px}.planning-extra{margin:0 13px 16px;padding:14px 12px}.planning-extra-list{grid-template-columns:1fr}.planning-extra-item b{font-size:9px}.planning-form-body .form-grid{grid-template-columns:1fr}.planning-form-body input,.planning-form-body select{font-size:16px;min-height:48px}.planning-form-body{gap:15px}.planning-modal-footer{flex-wrap:wrap}.planning-form-actions{gap:8px}.planning-form-actions button{font-size:12px;min-height:46px}.planning-conflict-warning{padding:13px}.planning-conflict-check input{width:24px;height:24px;min-height:24px}}
@media(prefers-reduced-motion:reduce){.planning-board *{transition:none!important}}
.planning-material-warning{margin:0 26px 20px;padding:15px 18px;border:1px solid #edcf9e;border-radius:10px;background:#fff8ec;color:#805d25;font-size:12px;line-height:1.7}.planning-material-warning strong{font-size:13px}.planning-material-warning ul{padding-left:18px;margin:8px 0}.planning-material-warning a{font-weight:650;color:#806023}@media(max-width:620px){.planning-material-warning{margin:0 16px 16px;padding:13px}}

.planning-work-pool{margin-bottom:20px}.planning-work-pool h2 span{font-size:.8em;color:#087a72}.planning-pool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}.planning-pool-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #dbe5ea;border-radius:12px}.planning-pool-card small{color:#526c79}.planning-pool-card button{min-height:44px;align-self:flex-start}
