@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.-T-KAq_className{font-family:Inter,Inter Fallback;font-style:normal}.-T-KAq_variable{--font-inter:"Inter", "Inter Fallback"}
:root{--primary:#2563eb;--primary-soft:#eff6ff;--primary-hover:#1d4ed8;--surface:#fff;--bg:#f8fafc;--bg-elevated:#f1f5f9;--text:#0f172a;--text-secondary:#64748b;--text-tertiary:#94a3b8;--border:#e2e8f0;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--c-work:#fff;--c-holiday:#a7f3d0;--c-fixed:#fdba74;--c-request:#fde68a;--c-paid:#fda4af;--c-sickness:#c4b5fd;--c-off:#f1f5f9;--c-request-text:#a16207;--c-fixed-text:#c2410c;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 16px #0f172a14}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0;padding:0;font-family:Inter,Hiragino Sans,sans-serif}.mock-app{flex-direction:column;height:100vh;min-height:100vh;display:flex;overflow:hidden}.mock-app-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:40;height:56px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex;position:sticky;top:0}.mock-app-header.is-mobile-route{display:none}.mock-app-brand{color:var(--primary);white-space:nowrap;background:var(--primary-soft);border-radius:var(--radius-sm);flex-shrink:0;padding:6px 12px;font-size:15px;font-weight:700}.mock-app-nav{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.mock-nav-item{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500}.mock-nav-item:hover{background:var(--bg);color:var(--text)}.mock-nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.mock-nav-item.mobile-entry{border:1px solid var(--border);margin-left:8px}.mock-nav-item.mobile-entry.active{border-color:var(--primary)}.mock-nav-divider{background:var(--border);width:1px;height:24px;margin:0 4px}.mock-app-meta{flex-shrink:0;align-items:center;gap:12px;display:flex}.mock-app-meta.hidden{display:none}.auth-profile{border-radius:var(--radius-sm);min-width:0;max-width:220px;height:40px;color:var(--text);align-items:center;transition:background .15s;display:flex;position:relative}.auth-profile-trigger{width:100%;min-width:0;height:100%;color:inherit;font:inherit;cursor:pointer;border-radius:inherit;background:0 0;border:none;align-items:center;gap:8px;padding:0 10px;display:flex}.auth-profile:hover,.auth-profile-trigger:hover{background:var(--bg)}.auth-profile-icon{color:var(--text-secondary);flex-shrink:0}.auth-profile-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.auth-profile-name span{line-height:normal;display:block}.auth-profile-chevron{color:var(--text-secondary);flex-shrink:0}.auth-profile-menu{z-index:50;min-width:100%;margin:0;padding:4px 0 0;list-style:none;display:none;position:absolute;top:100%;right:0}.auth-profile-menu:before{content:"";height:6px;position:absolute;top:0;left:0;right:0}.auth-profile:hover .auth-profile-menu,.auth-profile.is-open .auth-profile-menu,.auth-profile-menu:hover{display:block}.auth-profile-menu>li{color:var(--text);cursor:pointer;white-space:nowrap;box-sizing:border-box;background:var(--surface);border-left:1px solid var(--border);border-right:1px solid var(--border);box-shadow:none;border-radius:0;justify-content:center;align-items:center;gap:10px;margin:0;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.auth-profile-menu>li:first-child{border-top:1px solid var(--border);border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.auth-profile-menu>li:last-child{border-bottom:1px solid var(--border);border-bottom-left-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.auth-profile-menu>li+li{border-top:1px solid var(--border)}.auth-profile-menu>li:hover{background:var(--bg);color:var(--primary)}.mock-breadcrumb{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-secondary);padding:10px 20px;font-size:12px;display:none}.mock-breadcrumb strong{color:var(--text);font-weight:600}.mock-breadcrumb.hidden{display:none}.mock-app-main{flex:1;max-width:100%;min-height:0;padding:0;overflow:hidden}.app-screen{display:none}.app-screen.active{flex-direction:column;height:100%;min-height:0;animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-screen-inner{flex-direction:column;flex:1;width:100%;max-width:none;min-height:0;margin:0;padding:16px 20px 20px;display:flex}.app-screen-inner--contained{max-width:1200px;margin:0 auto}.app-screen-inner--contained>.pc-frame{max-width:1100px;margin:0 auto}.pc-frame--embedded{box-shadow:none;border:none;border-radius:0;flex-direction:column;flex:1;max-width:100%;min-height:0;display:flex}.mock-app:has(.app-screen-inner--mobile) .mock-breadcrumb{display:none}.app-screen-inner--mobile{background:var(--bg);flex-direction:column;flex:1;align-items:stretch;max-width:100%;min-height:0;padding:52px 0 0;display:flex;overflow:hidden}.mobile-screen-auth{z-index:80;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-screen-brand{text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}.mobile-screen-auth .auth-profile--mobile{flex-shrink:0;margin-left:auto}.auth-profile--mobile{max-width:min(240px,72vw)}.auth-profile--mobile .auth-profile-menu{min-width:160px}.mobile-display-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:flex}.mobile-display-bar .bar-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-right:4px;font-size:11px;font-weight:600}.mobile-display-toggle{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);padding:3px;display:inline-flex}.mobile-display-toggle button{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600}.mobile-display-toggle button.on{background:var(--primary);color:#fff}.mobile-preview-wrap{justify-content:center;min-height:calc(100vh - 100px);padding:24px 16px 32px;display:flex}.mobile-preview-wrap.frame-off{flex-direction:column;flex:1;align-items:stretch;width:100%;min-height:0;padding:0;display:flex}.mobile-preview-wrap.frame-off .phone{width:100%;max-width:480px;box-shadow:none;background:0 0;border-radius:0;flex-direction:column;flex:1;min-height:0;margin:0 auto;padding:0;display:flex}@media (min-width:577px) and (max-width:1024px){.app-screen-inner--mobile{padding-left:16px;padding-right:16px}.mobile-preview-wrap.frame-off .phone{max-width:100%}.mobile-preview-wrap.frame-off .phone-inner{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.mobile-month-card .cal-grid{gap:8px}.mobile-month-card .cal-cell{font-size:14px}.mobile-month-card .cal-cell .sub{font-size:10px}.mobile-month-card .legend-row{grid-template-columns:repeat(3,minmax(0,1fr));font-size:11px}}.mobile-preview-wrap.frame-off .phone-inner{border-radius:0;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.mobile-title-row.employee-mode{justify-content:space-between}.mobile-title-row.employee-mode .mobile-title{flex:1}.mobile-title-row.employee-mode .mobile-driver-select{display:none!important}.mock-app-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;font-size:11px;display:flex}.mock-app-footer a{color:var(--primary);font-weight:500;text-decoration:none}.mock-app-footer a:hover{text-decoration:underline}.mock-footer-links{flex-wrap:wrap;gap:16px;display:flex}.app-screen-inner--wide{max-width:100%;padding:0}.page-header,.layout,.sidebar,.preview-block h2,.preview-block .desc,.compare-note{display:none!important}.preview-block{margin:0}.preview-block.app-screen.active{flex:1;min-height:0}.previews{gap:0;display:block}.preview-row{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.phone{width:375px;max-width:100%;box-shadow:var(--shadow-md);background:#1e293b;border-radius:40px;padding:10px}.phone-inner{background:var(--bg);border-radius:32px;flex-direction:column;min-height:720px;display:flex;overflow:hidden}.mobile-main-screen{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.mobile-select-screen{-webkit-overflow-scrolling:touch;background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:32px 24px;display:flex;overflow-y:auto}.mobile-top{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;padding:16px 16px 12px}.mobile-title{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700}.mobile-title-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mobile-driver-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);max-width:180px;color:var(--text);flex:1;padding:6px 8px;font-size:12px}.mobile-select-screen label{text-align:center;align-self:stretch;margin-bottom:12px;font-size:15px;font-weight:600}.mobile-select-screen select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;margin-bottom:20px;padding:12px;font-size:14px}.mobile-select-screen .btn-ok{background:var(--primary);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;min-width:120px;padding:12px 32px;font-size:15px;font-weight:600}.mobile-driver-name{color:var(--text);margin:12px 0 6px;font-size:13px;font-weight:600}.mobile-week-list{margin-top:4px}.mobile-week-driver-block{margin-bottom:12px}.mobile-week-driver-name{margin-bottom:8px}.mobile-week-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;overflow:hidden}.mobile-week-table tr:hover{box-shadow:0 0 5px #0000001f}.mobile-week-date-col,.mobile-week-shift-col{vertical-align:middle;border:1px solid #d9d9d9;padding:8px 10px;font-size:14px;line-height:1.4}.mobile-week-date-col{color:#fff;background:#0585d0;width:40%;padding:0}.mobile-week-date-inner{justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.mobile-week-shift-col{width:60%;color:var(--text)}.mobile-all-block{margin-bottom:16px}.mobile-all-block .cal-grid{gap:4px}.mobile-all-block .cal-cell{font-size:11px}.mobile-all-block .cal-cell .sub{font-size:8px}.month-nav{background:var(--bg);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;display:flex}.month-nav button{background:var(--surface);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--primary);cursor:pointer;box-shadow:var(--shadow-sm);border:none;font-size:18px}.month-nav span,.month-nav .month-nav-label{font-size:15px;font-weight:600}.month-nav .month-nav-label{color:var(--primary);cursor:pointer;border-radius:var(--radius-sm);text-align:center;background:0 0;border:none;flex:1;padding:4px 10px}.month-nav .month-nav-label:active:not(:disabled){background:var(--primary-soft)}.mobile-month-picker-overlay{z-index:120}.mobile-month-picker-sheet{max-height:85vh;overflow-y:auto}.mobile-month-picker-sheet .month-picker-grid{margin-top:4px}.seg-control{background:var(--bg);border-radius:var(--radius-full);padding:3px;display:flex}.seg-control button{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;flex:1;padding:8px;font-size:13px;font-weight:600}.seg-control button.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.mobile-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px;overflow-y:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:12px;padding:14px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-head{text-align:center;color:var(--text-tertiary);padding:4px 0;font-size:11px;font-weight:600}.cal-head.sun{color:#ef4444}.cal-head.sat{color:var(--primary)}.cal-cell{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:0;padding:2px 1px;font-size:13px;font-weight:600;transition:border-color .15s;display:flex;overflow:hidden}.cal-cell .sub{opacity:.85;margin-top:2px;font-size:9px;font-weight:500}.cal-cell.empty{visibility:hidden}.cal-cell.locked{cursor:not-allowed;opacity:.55}.cal-cell.work{background:var(--c-work);border-color:var(--border)}.cal-cell.holiday{background:var(--c-holiday)}.cal-cell.fixed{background:var(--c-fixed);color:var(--c-fixed-text)}.cal-cell.request{background:var(--c-request);color:var(--c-request-text)}.cal-cell.paid{background:var(--c-paid);color:#b91c1c}.cal-cell.sickness{background:var(--c-sickness)}.cal-cell.selected{outline:2px solid var(--primary);outline-offset:1px}.mobile-month-calendar{margin-bottom:4px}.mobile-month-card .legend-row{border-top:1px solid var(--border);color:var(--text-secondary);clear:both;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 6px;margin-top:16px;padding-top:12px;font-size:10px;display:grid}.legend-row{color:var(--text-secondary);flex-wrap:wrap;gap:10px;margin-top:12px;font-size:11px;display:flex}.mobile-month-card .legend-row span{white-space:nowrap;align-items:center;gap:4px;min-width:0;display:inline-flex}.legend-row span{align-items:center;gap:4px;display:flex}.mobile-month-card .legend-row i,.legend-row i{border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block}@media (max-width:400px){.mobile-month-card{padding:12px 10px}.mobile-month-card .cal-grid{gap:4px}.mobile-month-card .cal-cell{font-size:11px}.mobile-month-card .cal-cell .sub{margin-top:1px;font-size:8px;line-height:1.1}.mobile-month-card .legend-row{gap:6px 4px;font-size:9px}}.btn-block{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;margin-top:8px;padding:14px;font-size:15px;font-weight:600}.btn-block:hover{background:var(--primary-hover)}.btn-ghost{border:1px solid var(--border);color:var(--text);background:0 0}.sheet-overlay{z-index:50;background:#0f172a66;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}.sheet-overlay.open{display:flex}.sheet-overlay.confirm-overlay{justify-content:center;align-items:center;padding:16px}.sheet.confirm-sheet{border-radius:var(--radius-lg);width:min(340px,100%);padding:24px 20px 28px;animation:.2s confirmFadeIn}.sheet.confirm-sheet .sheet-handle{display:none}@keyframes confirmFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.sheet{background:var(--surface);border-radius:20px 20px 0 0;width:min(375px,100%);padding:8px 20px 28px;animation:.25s slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{background:var(--border);border-radius:var(--radius-full);width:36px;height:4px;margin:0 auto 16px}.sheet h3{text-align:center;margin:0 0 16px;font-size:17px;font-weight:700}.confirm-checkbox{cursor:pointer;justify-content:center;align-items:center;gap:10px;margin:12px 0 24px;font-size:15px;font-weight:600;display:flex}.confirm-actions{justify-content:center;align-items:stretch;gap:12px;max-width:300px;margin:0 auto;padding-bottom:8px;display:flex}.confirm-btn{box-sizing:border-box;border:1px solid var(--border);min-width:0;min-height:44px;color:var(--text);border-radius:var(--radius-full);cursor:pointer;text-align:center;background:#fff;flex:1 1 0;padding:12px 16px;font-size:15px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s}.confirm-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.confirm-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-btn--primary{border:1px solid var(--primary);background:var(--primary);color:#fff}.confirm-btn--primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.chip-list{flex-direction:column;gap:8px;display:flex}.chip{border-radius:var(--radius-md);border:1.5px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:14px 16px;font-size:15px;font-weight:500;display:flex}.chip i{border:1px solid var(--border);border-radius:4px;width:12px;height:12px}.chip.on{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:600}.pc-frame{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:none;box-shadow:var(--shadow-md);overflow:hidden}.pc-navbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 16px;display:flex}.pc-navbar-left{align-items:center;gap:20px;min-width:0;display:flex}.pc-logo{color:var(--primary);white-space:nowrap;background:var(--primary-soft);border-radius:var(--radius-sm);padding:6px 10px;font-size:14px;font-weight:700}.pc-menu{flex-wrap:wrap;gap:2px;font-size:12px;display:flex}.pc-menu .mod{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:default;padding:6px 10px}.pc-menu .mod span{color:var(--text);font-weight:600}.pc-navbar-right{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:12px;font-size:12px;display:flex}.pc-month-pill{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);align-items:center;gap:4px;padding:6px 12px;font-weight:600;display:inline-flex;position:relative}.mock-month-nav-label{color:var(--text);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:6px;min-width:110px;padding:0 6px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.mock-month-nav-label:hover,.mock-month-nav.is-open .mock-month-nav-label{background:var(--primary-soft);color:var(--primary)}.month-picker-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:280px;box-shadow:var(--shadow-md);z-index:60;padding:12px;position:absolute;top:calc(100% + 8px);right:0}.month-picker-year{justify-content:center;align-items:center;gap:6px;margin-bottom:12px;display:flex}.month-picker-year button{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;font-size:14px}.month-picker-year button:hover:not(:disabled){background:var(--primary-soft)}.month-picker-year-input{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;width:88px;color:var(--text);background:var(--surface);padding:6px 8px;font-size:14px;font-weight:700}.month-picker-year-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.month-picker-year-suffix{color:var(--text-secondary);font-size:14px;font-weight:600}.month-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.month-picker-month{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:8px 4px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.month-picker-month:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.month-picker-month.is-current{border-color:var(--primary);color:var(--primary)}.month-picker-month.is-draft{background:var(--primary-soft)}.pc-user{border-radius:var(--radius-sm);background:var(--bg);align-items:center;gap:6px;padding:4px 8px;display:flex}.pc-content{background:var(--bg);flex-direction:column;flex:1;min-height:0;padding:16px 20px 20px;display:flex;overflow:hidden}.pc-content:not(:has(.pc-table-wrap)){overflow-y:auto}.pc-header-block,.pc-divider,.pc-view-hint,.pc-tabs-row,.pc-toolbar,.pc-legend,.filter-bar{flex-shrink:0}.pc-header-block{margin-bottom:12px}.pc-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.pc-title{letter-spacing:-.02em;margin:0 0 12px;font-size:20px;font-weight:700}.pc-title-hint{color:var(--color-muted,#6b7280);cursor:help;vertical-align:middle;margin-left:8px;font-size:14px;font-weight:500}.pc-toolbar-left .pc-title{flex-shrink:0;margin:0 8px 0 0}.pc-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pc-toolbar--start{justify-content:flex-start}.pc-week-month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);flex-shrink:0;margin-bottom:0;padding:3px;display:inline-flex}.pc-week-month button{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;padding:6px 16px;font-size:12px;font-weight:600}.pc-week-month button.on{background:var(--primary);color:#fff}.pc-toolbar-left{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.pc-week-picker{background:var(--surface);border:1px solid var(--primary);border-radius:var(--radius-full);flex-shrink:0;align-items:stretch;min-width:320px;max-width:100%;height:38px;display:none;position:relative;overflow:visible}.pc-week-picker.visible{display:inline-flex}.pc-week-picker button{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:40px;padding:0;font-size:18px;transition:background .15s,color .15s;display:flex}.pc-week-picker button:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}.pc-week-picker button:disabled{color:var(--text-tertiary);opacity:.55;cursor:not-allowed}.pc-week-picker .pc-week-range{min-width:0;color:var(--text);white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:8px;padding:0 4px;font-size:12px;font-weight:600;display:flex}.pc-week-part{flex-direction:column;align-items:center;padding:4px 0;line-height:1.2;display:flex}.pc-week-part .yr{color:var(--text-secondary);font-size:10px;font-weight:500}.pc-week-part .dt{font-size:12px;font-weight:600}.pc-week-dash{color:var(--text-tertiary);padding:0 2px;font-weight:400}.pc-week-cal-btn{font-size:16px!important}.pc-week-nav-btn .toolbar-icon{width:16px;height:16px}.pc-week-cal-popup{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:280px;padding:12px;display:none;position:fixed}.pc-week-cal-popup.open{display:block}.pc-week-cal-popup .cal-nav{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.pc-week-cal-popup .cal-nav button{background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--primary);border:none;font-size:14px}.pc-week-cal-popup .cal-grid-mini{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;font-size:11px;display:grid}.pc-week-cal-popup .cal-grid-mini .hd{color:var(--text-tertiary);padding:4px 0;font-weight:600}.pc-week-cal-popup .cal-grid-mini .dy{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);padding:6px 0}.pc-week-cal-popup .cal-grid-mini .dy:hover{background:var(--primary-soft);color:var(--primary)}.pc-week-cal-popup .cal-grid-mini .dy.mon{color:var(--primary);font-weight:700}.pc-week-cal-popup .cal-grid-mini .dy.sel{background:var(--primary);color:#fff}.pc-week-cal-popup .cal-grid-mini .dy.outside{cursor:default;color:var(--text-tertiary);opacity:.55}.pc-week-cal-popup .cal-grid-mini .dy.outside:hover{color:var(--text-tertiary);background:0 0}.pc-week-cal-popup .cal-grid-mini .dy:disabled:not(.sel):hover{background:0 0}.mock-month-nav.hidden{display:none!important}.pc-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.pc-actions--stacked{align-items:flex-start;gap:0}.pc-actions--stacked .pc-action-btn{border-radius:var(--radius-sm);color:#64748b;white-space:nowrap;text-align:center;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0 20px;font-size:12px;font-weight:600;line-height:1.2}.pc-actions--stacked .pc-action-btn .ico{justify-content:center;align-items:center;width:25px;height:30px;min-height:30px;margin-bottom:0;font-size:25px;display:flex}.pc-actions--stacked .pc-action-btn .toolbar-icon{width:25px;height:25px}.pc-actions--stacked .pc-action-btn .ico.pc-manual-sync-glyph{font-size:22px;font-weight:600;line-height:1}.pc-actions--stacked .pc-action-btn .lbl{text-align:center;font-size:12px;font-weight:600;display:block}.pc-actions--stacked .pc-action-btn:hover:not(:disabled){color:#2563eb;background:#eff6ff;border:none}.pc-actions--stacked .pc-action-btn:disabled{color:#94a3b8;opacity:.55}.pc-actions--stacked .pc-action-btn.unassigned-courses-chip:disabled{color:var(--text-secondary);opacity:.7}.pc-action-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:flex}.pc-action-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.pc-action-btn:disabled{color:var(--text-tertiary);opacity:.55;cursor:not-allowed}.pc-action-btn.unassigned-courses-chip:disabled{color:var(--text-secondary);opacity:1}.pc-action-btn:active:not(:disabled){transform:scale(.98)}.pc-action-btn.primary{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:600}.pc-action-btn .ico{width:20px;height:20px;color:inherit;background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:11px;display:flex}.toolbar-icon{background-color:currentColor;flex-shrink:0;width:18px;height:18px;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.pc-divider{background:var(--border);height:1px;margin:12px 0}.pc-tabs-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pc-table-actions{flex-shrink:0;justify-content:flex-end;margin-bottom:10px;display:flex}.pc-tabs{flex-wrap:wrap;gap:4px;display:flex}.pc-tabs button{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;text-align:center;min-width:110px;padding:8px 14px;font-size:12px;font-weight:500;line-height:1.35}.pc-tabs button:hover{border-color:var(--primary)}.pc-tabs button.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.pc-btn-edit{background:var(--primary);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;padding:8px 20px;font-size:13px;font-weight:600}.pc-btn-edit:hover{background:var(--primary-hover)}.pc-btn-edit:disabled{opacity:.65;cursor:not-allowed}.pc-btn-edit:disabled:hover{background:var(--primary)}.pc-month-pill button{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px}.pc-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:auto}.pc-table-wrap::-webkit-scrollbar{width:8px;height:10px}.pc-table-wrap::-webkit-scrollbar-track{background:var(--bg-elevated);border-radius:4px}.pc-table-wrap::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}.pc-table-wrap::-webkit-scrollbar-thumb:hover{background:#64748b}.shift-table{table-layout:fixed;border-collapse:separate;border-spacing:0;--shift-day-cell-width:150px;--shift-day-cell-height:78px;--col-code:150px;--col-name:var(--col-code);--col-confirm:72px;--col-dayoff-count:64px;--shift-header-row-height:37px;width:max-content;min-width:100%;font-size:12px}.shift-table.shift-table--crew-meta{--col-code:92px;--col-name:128px;--col-confirm:104px;--col-dayoff-count:60px;--sticky-crew-prefix-width:calc(var(--col-code) + var(--col-name) + var(--col-confirm) + var(--col-dayoff-count))}.shift-table th{background:var(--bg);color:var(--text-secondary);text-align:center;vertical-align:middle;border:1px solid var(--border);white-space:normal;z-index:2;box-sizing:border-box;padding:5px 4px;font-weight:600;line-height:1.25;position:sticky;top:0}.shift-table th small{color:var(--text-tertiary);margin-top:2px;font-size:10px;font-weight:500;display:block}.shift-table th.shift-day-col,.shift-table td.data-cell{width:var(--shift-day-cell-width);min-width:var(--shift-day-cell-width);max-width:var(--shift-day-cell-width);box-sizing:border-box}.shift-table:not(.practical-table) td.data-cell{vertical-align:middle;height:var(--shift-day-cell-height);min-height:var(--shift-day-cell-height);max-height:var(--shift-day-cell-height);padding:0;overflow:hidden}.shift-table:not(.practical-table) tbody tr{height:var(--shift-day-cell-height)}.shift-table thead tr:nth-child(2) th{top:var(--shift-header-row-height);z-index:2}.shift-table.shift-table--dual-header{--shift-header-row-height:30px}.shift-table.shift-table--dual-header thead tr:first-child th.shift-day-col--date{vertical-align:middle;padding:4px;font-size:11px;line-height:1.2}.shift-table.shift-table--dual-header thead tr:nth-child(2) th{padding:4px;font-size:11px;line-height:1.2}.shift-table.shift-table--dual-header thead tr:first-child th.shift-day-col--date small{margin-top:0;line-height:1.1}.shift-table.shift-table--dual-header thead tr:nth-child(2) th.shift-day-col--cal{color:var(--text-tertiary);font-size:10px;font-weight:500}.shift-table.shift-table--dual-header thead tr:first-child .sticky-header-span{padding:0;line-height:1}.shift-table th.col-code,.shift-table td.col-code{width:var(--col-code);min-width:var(--col-code);max-width:var(--col-code);text-align:center;letter-spacing:0;white-space:normal;word-break:break-word;padding:5px 6px;font-size:12px}.shift-table th.col-name,.shift-table td.col-name{width:var(--col-name);min-width:var(--col-name);max-width:var(--col-name);text-align:left;white-space:normal;word-break:break-word;padding:5px 10px;font-size:12px}.shift-table.shift-table--crew-meta th.col-confirm,.shift-table.shift-table--crew-meta td.col-confirm{width:var(--col-confirm);min-width:var(--col-confirm);max-width:var(--col-confirm);text-align:center;padding:5px 4px}.shift-table.shift-table--crew-meta th.col-confirm{white-space:nowrap;font-size:11px}.shift-table.shift-table--crew-meta th.col-code,.shift-table.shift-table--crew-meta td.col-code,.shift-table.shift-table--crew-meta th.col-name,.shift-table.shift-table--crew-meta td.col-name,.shift-table.shift-table--crew-meta th.col-confirm,.shift-table.shift-table--crew-meta td.col-confirm,.shift-table.shift-table--crew-meta th.col-dayoff-count,.shift-table.shift-table--crew-meta td.col-dayoff-count,.shift-table.shift-table--crew-meta thead tr:first-child .sticky-header-span{background:var(--bg-elevated)}.shift-table.shift-table--crew-meta th.col-dayoff-count,.shift-table.shift-table--crew-meta td.col-dayoff-count{width:var(--col-dayoff-count);min-width:var(--col-dayoff-count);max-width:var(--col-dayoff-count);text-align:center;padding:5px 4px}.shift-table.shift-table--crew-meta td.col-confirm input[type=checkbox]{pointer-events:none;margin:0}.shift-table.shift-table--crew-meta thead tr:first-child .sticky-header-span{z-index:25;min-width:var(--sticky-crew-prefix-width)}.shift-table.shift-table--crew-meta th.sticky.col-code{z-index:21}.shift-table.shift-table--crew-meta th.sticky.col-name{z-index:22}.shift-table.shift-table--crew-meta th.sticky.col-confirm{z-index:23}.shift-table.shift-table--crew-meta th.sticky.col-dayoff-count{z-index:24}.shift-table.shift-table--crew-meta td.sticky.col-code{z-index:11}.shift-table.shift-table--crew-meta td.sticky.col-name{z-index:12}.shift-table.shift-table--crew-meta td.sticky.col-confirm{z-index:13}.shift-table.shift-table--crew-meta td.sticky.col-dayoff-count{z-index:14}.shift-table.shift-table--crew-meta td.data-cell{z-index:0;position:relative}.shift-table th.sticky,.shift-table td.sticky{background:var(--bg-elevated);z-index:1;position:sticky}.shift-table th.sticky{z-index:3}.shift-table thead tr:nth-child(2) th.sticky,.shift-table.dayoff-table thead tr:nth-child(2) th.col-code,.shift-table.dayoff-table thead tr:nth-child(2) th.col-name{top:var(--shift-header-row-height);z-index:4}.shift-table .sticky-header-span{z-index:3;background:var(--bg);position:sticky;left:0}.shift-table thead tr:first-child .sticky-header-span{z-index:4;top:0}.shift-table.dayoff-table{--shift-header-row-height:37px}.shift-table.dayoff-table thead tr:first-child th{height:var(--shift-header-row-height);max-height:var(--shift-header-row-height);box-sizing:border-box;padding:4px;line-height:1.2;overflow:hidden}.shift-table.dayoff-table thead tr:nth-child(2) th{height:var(--shift-header-row-height);max-height:var(--shift-header-row-height);box-sizing:border-box;padding:4px;line-height:1.2}.shift-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.shift-table .th-sortable-label{justify-content:center;align-items:center;gap:4px;width:100%;display:inline-flex}.shift-table .table-sort-icon{color:#64748b;flex-shrink:0}.shift-table .table-sort-icon--active{color:#0f766e}.shift-table.dayoff-table:not(.dayoff-table--edit) td.data-cell{cursor:default}.shift-table.dayoff-table:not(.dayoff-table--edit) td.data-cell:hover .dayoff-cell,.shift-table.dayoff-table:not(.dayoff-table--edit) td.data-cell:hover .shift-cell{box-shadow:none;outline:none}.shift-table.dayoff-table--edit td.data-cell{cursor:pointer}.shift-table.dayoff-table thead tr:first-child .sticky-header-span{min-width:calc(var(--col-code) + var(--col-name))}.shift-table.dayoff-table th.col-code,.shift-table.dayoff-table th.col-name,.shift-table.dayoff-table td.col-code,.shift-table.dayoff-table td.col-name{color:var(--text);background:#f8fafc}.shift-table.dayoff-table th.col-code,.shift-table.dayoff-table th.col-name{color:var(--text-secondary)}.shift-table thead tr:nth-child(2) .sticky-header-span{top:var(--shift-header-row-height);min-width:calc(var(--col-index) + var(--col-course-id) + var(--col-course-name))}.shift-table th.col-code,.shift-table td.col-code{left:0}.shift-table th.col-name,.shift-table td.col-name{left:var(--col-code);background:var(--surface);box-shadow:2px 0 4px #0f172a0a}.shift-table.shift-table--crew-meta th.col-name,.shift-table.shift-table--crew-meta td.col-name{left:var(--col-code);box-shadow:none}.shift-table.shift-table--crew-meta th.col-confirm,.shift-table.shift-table--crew-meta td.col-confirm{left:calc(var(--col-code) + var(--col-name))}.shift-table.shift-table--crew-meta th.col-dayoff-count,.shift-table.shift-table--crew-meta td.col-dayoff-count{left:calc(var(--col-code) + var(--col-name) + var(--col-confirm));box-shadow:2px 0 4px #0f172a0a}.shift-table.shift-table--edit{--col-code:92px;--col-name:128px}.shift-table.shift-table--edit th.col-code,.shift-table.shift-table--edit td.col-code,.shift-table.shift-table--edit th.col-name,.shift-table.shift-table--edit td.col-name,.shift-table.shift-table--edit thead tr:first-child .sticky-header-span{background:var(--bg-elevated)}.shift-table.shift-table--edit th.col-name,.shift-table.shift-table--edit td.col-name{box-shadow:2px 0 4px #0f172a0a}.shift-table.shift-table--edit thead tr:first-child .sticky-header-span{z-index:23;min-width:calc(var(--col-code) + var(--col-name))}.shift-table.shift-table--edit th.sticky.col-code{z-index:21}.shift-table.shift-table--edit th.sticky.col-name{z-index:22}.shift-table.shift-table--edit td.sticky.col-code{z-index:11}.shift-table.shift-table--edit td.sticky.col-name{z-index:12}.shift-table.shift-table--edit td.data-cell{z-index:0;position:relative}.shift-table td{border:1px solid var(--border);text-align:center;vertical-align:middle;box-sizing:border-box;padding:0}.shift-table td.sticky.col-code,.shift-table td.sticky.col-name,.shift-table td.sticky.col-confirm,.shift-table td.sticky.col-dayoff-count,.shift-table td.sticky.col-index,.shift-table td.sticky.col-course-id,.shift-table td.sticky.col-course-name{height:var(--shift-day-cell-height);min-height:var(--shift-day-cell-height);max-height:var(--shift-day-cell-height)}.shift-table td.data-cell--view{cursor:default}.shift-table td.data-cell--view:hover{box-shadow:none}.shift-table--edit td.data-cell--edit{cursor:pointer}.shift-table td.data-cell.selected,.shift-table--edit td.data-cell--edit.selected{box-shadow:inset 0 0 0 2px var(--primary)}.shift-table td.data-cell.selected .shift-cell{box-shadow:none}.shift-cell{width:100%;height:100%;min-height:0;max-height:var(--shift-day-cell-height);box-sizing:border-box;text-align:center;background:0 0;flex-direction:column;justify-content:center;align-items:center;margin:0 5px;padding:0;font-size:16px;font-weight:600;line-height:1.25;display:flex;position:relative;overflow:hidden}.shift-cell-course,.shift-cell-more-preview{width:100%;min-width:0;max-width:150px;margin-bottom:5px}.shift-cell-course .shift-cell-main,.shift-cell-course .shift-cell-note,.shift-cell-more-preview .shift-cell-main,.shift-cell-more-preview .shift-cell-note{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shift-cell-more-row{flex-shrink:0;justify-content:center;align-items:flex-start;width:100%;min-width:0;max-width:150px;display:flex;position:relative}.shift-cell-more-preview{text-align:center;z-index:1;flex:1;min-width:0;max-width:100px;position:relative}.shift-cell-more-icon{color:var(--primary);z-index:2;cursor:pointer;flex-shrink:0;align-items:flex-start;margin-top:20px;margin-left:5px;display:flex;position:relative}.shift-cell-more-icon-svg{width:18px;height:18px}.shift-cell-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:180px;max-width:260px;box-shadow:var(--shadow-md);text-align:center;pointer-events:auto;padding:8px 10px}.shift-cell-popover--portal{z-index:1200;box-sizing:border-box;width:220px;position:fixed}.shift-cell-popover .shift-cell-note{display:block}.shift-cell-popover-item+.shift-cell-popover-item{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.shift-cell-main{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:16px;font-weight:600;line-height:1.25;overflow:hidden}.shift-cell-note{opacity:.9;white-space:nowrap;text-overflow:ellipsis;width:100%;margin-top:2px;font-size:12px;font-weight:500;line-height:1.25;display:block;overflow:hidden}.shift-cell.dayoff .shift-cell-main{font-size:16px}.shift-cell-other-note{white-space:nowrap;text-overflow:ellipsis;width:100%;max-width:150px;margin-top:2px;font-size:12px;font-weight:500;line-height:1.25;display:block;overflow:hidden}.dayoff-cell{width:100%;height:var(--shift-day-cell-height);min-height:var(--shift-day-cell-height);max-height:var(--shift-day-cell-height);box-sizing:border-box;text-align:center;justify-content:center;align-items:center;padding:4px;font-size:12px;line-height:1.25;display:flex;position:relative;overflow:hidden}.dayoff-cell--readonly{cursor:default}.dayoff-cell--editable{cursor:pointer}.dayoff-cell--editable:hover{outline:2px solid var(--primary);outline-offset:-2px}.dayoff-cell--disabled{cursor:not-allowed;min-height:var(--shift-day-cell-height);background:#c6c6c6!important}.dayoff-cell-courses{width:100%;position:relative}.dayoff-cell-courses:hover .dayoff-cell-popover{display:block}.dayoff-cell-course-line{white-space:nowrap;text-overflow:ellipsis;max-width:150px;margin:0 auto 2px;overflow:hidden}.dayoff-cell-popover{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;min-width:160px;box-shadow:var(--shadow-md);padding:8px;display:none;position:absolute;top:100%;left:50%;transform:translate(-50%)}.dayoff-edit-form{flex-direction:column;gap:12px;display:flex}.dayoff-edit-select{width:100%}.dayoff-edit-radio-group,.dayoff-edit-course-list{flex-direction:column;gap:8px;max-height:240px;display:flex;overflow-y:auto}.dayoff-edit-radio,.dayoff-edit-checkbox{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.dayoff-edit-work{flex-direction:column;gap:10px;display:flex}.dayoff-edit-modal{width:min(480px,100%)}.shift-cell.empty{color:var(--text-tertiary)}.pc-legend{color:var(--text-secondary);flex-wrap:wrap;flex-shrink:0;gap:12px;margin-top:12px;padding-top:4px;font-size:11px;display:flex}.pc-legend span{align-items:center;gap:4px;display:flex}.shift-table td.data-cell.is-disabled{cursor:not-allowed;background-color:#c6c6c6!important}.pc-legend i,.pc-legend .pc-legend-swatch{border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.pc-legend-swatch--work{background:#fff!important}.toast{background:var(--text);color:#fff;border-radius:var(--radius-full);opacity:0;z-index:100;pointer-events:none;padding:10px 20px;font-size:13px;transition:all .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(60px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.compare-note{color:var(--text-secondary);background:var(--primary-soft);border-radius:var(--radius-sm);margin-top:8px;padding:10px 12px;font-size:12px}.pc-popover{z-index:80;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-md);padding:12px 14px;font-size:13px;display:none;position:fixed}.pc-popover.open{display:block}.pc-popover h4{margin:0 0 8px;font-size:14px;font-weight:700}.pc-popover p{color:var(--text-secondary);margin:0 0 4px;font-size:12px}.pc-popover .close-pop{background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;margin-top:10px;padding:6px 12px;font-size:12px}.pc-view-hint{color:var(--text-tertiary);margin:0 0 8px;font-size:12px}.pc-legend.hidden,.pc-btn-edit.hidden,.pc-view-hint.hidden{display:none}.shift-table.course-table{--col-index:150px;--col-course-id:150px;--col-course-name:240px;width:max-content;min-width:calc(var(--col-index) + var(--col-course-id) + var(--col-course-name) + var(--shift-day-cell-width) * 7);table-layout:auto}.shift-table.course-table th.shift-day-col,.shift-table.course-table td.data-cell{width:var(--shift-day-cell-width);min-width:var(--shift-day-cell-width);max-width:var(--shift-day-cell-width);box-sizing:border-box}.shift-table.course-table td.data-cell{cursor:default;vertical-align:middle;padding:0}.shift-table.course-table td.data-cell:hover .course-base-cell-inner,.shift-table.course-table td.data-cell:hover .shift-cell{box-shadow:none;outline:none}.shift-table.course-table .course-base-cell--disabled{cursor:not-allowed!important;background-color:#c6c6c6!important}.shift-table.course-table .course-base-cell-inner{height:var(--shift-day-cell-height);min-height:var(--shift-day-cell-height);max-height:var(--shift-day-cell-height);text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;padding:5px;font-size:12px;font-weight:700;line-height:1.25;display:flex;overflow:hidden}.shift-table.course-table .course-base-cell-inner>div{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.shift-table.course-table .shift-cell{height:var(--shift-day-cell-height);min-height:var(--shift-day-cell-height);max-height:var(--shift-day-cell-height);margin:0;padding:5px;font-size:12px;font-weight:700;line-height:1.25}.shift-table.course-table .shift-cell-main{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.shift-table.course-table th.col-index,.shift-table.course-table td.col-index{width:var(--col-index);min-width:var(--col-index);text-align:center}.shift-table.course-table th.col-course-id,.shift-table.course-table td.col-course-id{width:var(--col-course-id);min-width:var(--col-course-id);text-align:center;font-size:11px}.shift-table.course-table th.col-course-name,.shift-table.course-table td.col-course-name{width:var(--col-course-name);min-width:var(--col-course-name);text-align:left;padding:5px 10px}.shift-table.course-table th.col-index,.shift-table.course-table td.col-index{left:0}.shift-table.course-table th.col-course-id,.shift-table.course-table td.col-course-id{left:var(--col-index)}.shift-table.course-table th.col-course-name,.shift-table.course-table td.col-course-name{left:calc(var(--col-index) + var(--col-course-id));box-shadow:2px 0 4px #0f172a0a}.shift-table.practical-table{table-layout:fixed;width:max-content;min-width:0}.shift-table.practical-table tbody tr{height:auto}.shift-table.practical-table th,.shift-table.practical-table td{white-space:nowrap;box-sizing:border-box;vertical-align:middle;text-align:center;width:150px;min-width:150px;max-width:150px;height:auto;min-height:0;max-height:none;padding:5px}.shift-table.practical-table thead tr th:first-child,.shift-table.practical-table thead tr th:nth-child(2){z-index:13;background:var(--bg);position:sticky;top:0}.shift-table.practical-table thead tr th:first-child{left:0}.shift-table.practical-table thead tr th:nth-child(2){left:150px}.shift-table.practical-table tbody tr td:first-child,.shift-table.practical-table tbody tr td:nth-child(2){z-index:10;background:var(--primary-soft);font-weight:700;position:sticky}.shift-table.practical-table tbody tr td:first-child{left:0}.shift-table.practical-table tbody tr td:nth-child(2){z-index:11;left:150px}.shift-table.practical-table tbody tr td:nth-child(n+3){background:var(--surface)}.shift-table.practical-table td.num{text-align:right;font-variant-numeric:tabular-nums}.pc-modal-overlay{z-index:90;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.pc-modal-overlay.open{display:flex}.pc-modal{background:var(--surface);border-radius:var(--radius-lg);width:min(960px,100%);max-height:85vh;box-shadow:var(--shadow-md);border:1px solid var(--border);flex-direction:column;display:flex}.pc-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pc-modal-header h3{margin:0;font-size:18px;font-weight:700}.pc-modal-close{background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border:none;font-size:18px}.pc-modal-body{padding:16px 20px 20px;overflow:auto}.pc-modal-footer{justify-content:center;gap:10px;padding:0 20px 20px;display:flex}.pc-modal-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-full);cursor:pointer;padding:8px 18px;font-size:13px;font-weight:600}.pc-modal-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.pc-modal-btn:disabled{opacity:.5;cursor:not-allowed}.pc-modal-center{text-align:center}.pc-modal-center h4{margin:0 0 8px;font-size:15px;font-weight:700}.pc-modal-radio{align-items:center;gap:8px;margin-top:12px;font-size:13px;display:inline-flex}.pc-modal-text{margin:0;font-size:14px;line-height:1.6}.pc-calendar-month{align-items:center;gap:12px;padding:12px 0;display:flex}.pc-calendar-month-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pc-calendar-month-btn:hover{border-color:var(--primary)}.pc-calendar-month-icon{width:20px;height:20px;color:var(--text-secondary);display:flex}.pc-calendar-month-range{flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.pc-calendar-month-part{text-align:center;min-width:0}.pc-calendar-month-year{color:var(--text-secondary);font-size:11px}.pc-calendar-month-date{font-size:13px;font-weight:600}.pc-calendar-month-split{color:var(--text-secondary);flex-shrink:0;font-size:14px}.pc-calendar-month-dropdown{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:280px;padding:12px;position:fixed}.pc-month-picker-label{text-align:center;margin-bottom:8px;font-size:14px;font-weight:700}.pc-month-picker-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;display:grid}.pc-month-picker-weekday{text-align:center;color:var(--text-secondary);font-size:11px;font-weight:600}.pc-month-picker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.pc-month-picker-day{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:0 0;border:none;padding:6px 0;font-size:12px}.pc-month-picker-day:hover:not(:disabled){background:var(--bg)}.pc-month-picker-day.selected{background:var(--primary);color:#fff}.pc-month-picker-day.today:not(.selected){border:1px solid var(--primary)}.pc-month-picker-day.outside{color:var(--text-secondary);opacity:.5}.pc-month-picker-day:disabled{opacity:.35;cursor:not-allowed}.pc-month-picker-help{color:var(--text-secondary);text-align:center;margin:8px 0 0;font-size:10px}.pc-modal--narrow{width:min(480px,100%)}.pc-modal-period-picker{border-radius:var(--radius-md);background:var(--surface);border:2px solid #cbd5e1;width:60%;margin:8px auto 0;padding:12px 10px}.pc-modal-period-picker .pc-calendar-month{justify-content:flex-start;gap:8px;padding:0}.pc-modal-period-picker .pc-calendar-month-range{flex:0 auto;justify-content:flex-start;gap:6px}.pc-modal-type-select{text-align:center}.pc-modal-type-select h4{margin:0 0 16px;font-size:15px;font-weight:700}.pc-modal-type-option{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;background:var(--bg);margin-bottom:10px;padding:14px 16px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s}.pc-modal-type-option:hover{border-color:var(--primary);background:var(--surface)}.pc-modal-type-option:last-child{margin-bottom:0}.pc-modal-list{max-height:240px;margin:12px 0 0;padding-left:1.25rem;font-size:14px;line-height:1.6;overflow-y:auto}.pc-log-pagination{justify-content:center;align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.pc-log-detail-list{max-height:min(60vh,420px);color:var(--text-secondary);flex-direction:column;gap:8px;padding-right:4px;font-size:13px;display:flex;overflow-y:auto}.pc-log-detail-summary{border-bottom:1px solid var(--border);color:var(--text);flex-shrink:0;margin:0;padding-bottom:10px;font-size:14px;font-weight:600}.pc-log-detail-row{flex-shrink:0}.pc-log-detail-item{border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.35em;margin:0;padding:8px 10px;line-height:1.55;display:flex}.pc-log-detail-date{font-variant-numeric:tabular-nums;color:var(--text);flex-shrink:0;font-weight:600}.pc-log-detail-course{color:#854d0e;word-break:break-word;background:#fef9c3;border-radius:6px;max-width:100%;padding:2px 10px;font-weight:600}.pc-log-detail-muted{color:var(--text-tertiary);flex-shrink:0}.pc-week-cal-popup .cal-grid-mini button.dy{font:inherit;background:0 0;border:none}.pc-log-table{border-collapse:collapse;width:100%;font-size:12px}.pc-log-table th,.pc-log-table td{border:1px solid var(--border);text-align:left;padding:8px 10px}.pc-log-table th{background:var(--bg);color:var(--text-secondary);white-space:nowrap;font-weight:600}.log-badge{border-radius:var(--radius-full);cursor:pointer;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.log-badge.success{color:#166534;background:#dcfce7}.log-badge.error{color:#991b1b;background:#fee2e2}.log-badge.check{color:#854d0e;background:#fef9c3}.log-badge.on{background:var(--primary-soft);color:var(--primary)}.pc-actions--stacked .unassigned-courses-chip .ico{position:relative}.unassigned-courses-chip__count{z-index:1;color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-5px;right:-10px;box-shadow:0 1px 2px #00000026}.pc-table-wrap--processing{position:relative}.app-loading-overlay{z-index:95;background:#ffffffad;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-loading-overlay-content{color:var(--text-secondary);flex-direction:column;align-items:center;gap:8px;font-size:15px;display:flex}.app-loading-overlay-icon{font-size:40px;line-height:1}.app-loading-overlay-label{color:var(--text);text-align:center;margin:0;font-size:15px;font-weight:700;line-height:1.4}.pc-table-overlay{z-index:20;border-radius:var(--radius-md);background:#ffffffe0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pc-table-overlay-content{color:var(--text-secondary);flex-direction:column;align-items:center;gap:8px;font-size:14px;display:flex}.pc-table-overlay-icon{font-size:32px;line-height:1}.pc-ai-response-modal{width:min(480px,100%)}.pc-ai-response-title{border-radius:var(--radius-sm);color:#fff;background:#94a3b8;justify-content:center;margin-bottom:24px;padding:8px 12px;font-weight:700;display:flex}.pc-ai-response-title.success{background:var(--primary)}.pc-ai-response-title.error{background:#ef4444}.pc-ai-response-title.check{color:#422006;background:#eab308}.pc-ai-response-text{text-align:center;color:var(--text);margin:24px 0 32px;line-height:1.6}.pc-ai-response-external-warning{border-radius:var(--radius-sm);color:var(--text);text-align:left;background:#fef2f2;border:1px solid #fecaca;margin:0 0 32px;padding:12px 16px;font-size:.9rem;line-height:1.6}.pc-ai-response-external-warning strong{color:#991b1b;margin-bottom:8px;display:block}.pc-ai-response-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:8px;padding-bottom:4px;display:flex}.pc-ai-response-actions .pc-modal-btn{min-width:120px}.data-table tr.row-retired td{color:#991b1b;background:#fef2f2}.flow-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.flow-intro{color:var(--text-secondary);margin:0 0 16px;font-size:13px;line-height:1.6}.flow-pillars{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}@media (max-width:800px){.flow-pillars{grid-template-columns:1fr}}.flow-pillar{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);padding:14px}.flow-pillar h4{color:var(--primary);margin:0 0 6px;font-size:13px;font-weight:700}.flow-pillar .num{text-align:center;background:var(--primary-soft);width:20px;height:20px;color:var(--primary);border-radius:50%;margin-right:6px;font-size:11px;font-weight:700;line-height:20px;display:inline-block}.flow-pillar p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.flow-pillar code{background:var(--surface);border-radius:3px;padding:1px 4px;font-size:10px}.flow-arrow{text-align:center;color:var(--text-tertiary);margin:8px 0 16px;font-size:12px}.flow-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.flow-mode{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);padding:3px;display:inline-flex}.flow-mode button{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-size:12px;font-weight:600}.flow-mode button.on{background:var(--primary);color:#fff}.flow-s3-status{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.flow-s3-chip{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg);padding:5px 10px;font-size:11px}.flow-s3-chip.ok{color:#166534;background:#f0fdf4;border-color:#86efac}.flow-s3-chip.ng{color:#991b1b;background:#fef2f2;border-color:#fecaca}.flow-files{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;overflow:hidden}.flow-files table{border-collapse:collapse;width:100%;font-size:12px}.flow-files th,.flow-files td{border-bottom:1px solid var(--border);text-align:left;padding:8px 12px}.flow-files th{background:var(--bg);color:var(--text-secondary);font-size:11px;font-weight:600}.flow-files tr:last-child td{border-bottom:none}.flow-files .src{color:var(--text-tertiary);font-size:11px}.flow-steps{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.flow-step{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;min-width:100px;color:var(--text-tertiary);background:var(--bg);flex:1;padding:10px;font-size:11px}.flow-step.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:600}.flow-step.done{color:#166534;background:#f0fdf4;border-color:#86efac}.flow-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.flow-run-btn{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;padding:10px 20px;font-size:13px;font-weight:600}.flow-run-btn:disabled{opacity:.5;cursor:not-allowed}.flow-run-btn:hover:not(:disabled){background:var(--primary-hover)}.flow-code-ref{background:var(--bg);border-radius:var(--radius-sm);color:var(--text-secondary);margin-top:16px;padding:12px;font-size:11px;line-height:1.6}.flow-code-ref code{background:var(--surface);border-radius:3px;padding:1px 5px;font-size:10px}.flow-wizard-overlay{z-index:95;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.flow-wizard-overlay.open{display:flex}.flow-wizard{background:var(--surface);border-radius:var(--radius-lg);width:min(520px,100%);box-shadow:var(--shadow-md);border:1px solid var(--border);padding:24px}.flow-wizard h3{margin:0 0 8px;font-size:18px}.flow-wizard p{color:var(--text-secondary);margin:0 0 16px;font-size:13px}.flow-wizard .progress-bar{background:var(--bg);border-radius:var(--radius-full);height:6px;margin-bottom:16px;overflow:hidden}.flow-wizard .progress-fill{background:var(--primary);width:0%;height:100%;transition:width .4s}.flow-wizard .wizard-log{color:var(--text-secondary);min-height:80px;margin-bottom:16px;font-size:12px;line-height:1.7}.flow-wizard .wizard-close{background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:8px 16px;font-size:13px}.preview-block--anchor{scroll-margin-top:24px}.apply-guide{background:var(--primary-soft);border-radius:var(--radius-md);color:var(--text);border:1px solid #bfdbfe;margin-bottom:16px;padding:14px 16px;font-size:13px;line-height:1.6}.apply-guide strong{color:var(--primary)}.apply-guide code{background:var(--surface);border-radius:4px;padding:1px 5px;font-size:11px}.component-gallery{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:16px;display:grid}.component-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.component-card h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:12px;font-weight:600}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ui-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-md);cursor:default;white-space:nowrap;padding:8px 14px;font-size:12px;font-weight:500}.ui-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.ui-btn.soft{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:600}.ui-btn.ghost{background:0 0}.ui-btn.danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.form-stack{flex-direction:column;gap:10px;display:flex}.form-group label{color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:8px 10px;font-family:inherit;font-size:13px}.form-group textarea{resize:vertical;min-height:120px;line-height:1.6}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.badge{border-radius:var(--radius-full);align-items:center;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.ok{color:#047857;background:#ecfdf5}.badge.warn{color:#a16207;background:#fef9c3}.badge.muted{background:var(--bg);color:var(--text-secondary)}.filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.filter-bar-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.filter-bar-leading{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.filter-bar--driver{justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-bar--driver .search-input{flex-shrink:0;width:300px;max-width:100%}.filter-bar--driver .filter-tabs,.filter-bar--driver .pc-btn-edit{flex-shrink:0}@media (max-width:640px){.filter-bar--driver{flex-direction:column;align-items:stretch}.filter-bar--driver .search-input{width:100%}}.filter-tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:3px;display:inline-flex}.filter-tabs button{color:var(--text-secondary);border-radius:var(--radius-full);cursor:default;background:0 0;border:none;padding:6px 14px;font-size:12px;font-weight:600}.filter-tabs button.on{background:var(--primary);color:#fff}.search-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:200px;padding:8px 12px;font-size:13px}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{background:var(--bg);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;z-index:2;padding:10px 12px;font-weight:600;position:sticky;top:0}.data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table .th-sortable-label{align-items:center;gap:4px;display:inline-flex}.data-table.course-list-table{--course-header-row-1-height:41px}.data-table.course-list-table thead tr:first-child th{z-index:3;top:0}.data-table.course-list-table thead tr:nth-child(2) th{top:var(--course-header-row-1-height);z-index:3}.data-table.course-list-table th.col-time,.data-table.course-list-table td.col-time{text-align:center;box-sizing:border-box;width:100px;min-width:100px;max-width:100px}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.data-table tr:hover td{background:var(--primary-soft)}.data-table th.col-action,.data-table td.col-action{text-align:center;white-space:nowrap;vertical-align:middle;width:52px;min-width:52px;max-width:52px;padding:8px 4px;display:table-cell}.data-table .actions{text-align:center;white-space:nowrap;vertical-align:middle}.link-btn{color:var(--primary);cursor:default;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:12px;font-weight:600}.link-btn:hover{background:var(--primary-soft)}.table-icon-btn svg{flex-shrink:0;display:block}.table-header-icon{color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.table-header-icon--danger{color:#b91c1c}.table-icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.table-icon-btn:hover{background:var(--primary-soft)}.table-icon-btn--danger{color:#b91c1c}.table-icon-btn--danger:hover{background:#fee2e2}.form-section-label{color:var(--text-secondary);margin:0 0 12px;font-size:13px;font-weight:700}.schedule-table td.schedule-td{text-align:center;vertical-align:middle;min-width:50px;padding:.75rem .5rem}.shift-table.schedule-table thead tr:first-child th.shift-day-col--date{white-space:nowrap;padding:6px 4px;font-size:11px;line-height:1.2}.shift-table.schedule-table thead tr:nth-child(2) th.shift-day-col--cal{color:var(--text-tertiary);font-size:10px;font-weight:500}.schedule-status-icon{vertical-align:middle;color:var(--text);display:inline-block}.shift-table.course-table.schedule-table--edit{--col-index:0;--col-course-id:120px;--col-course-name:300px;min-width:calc(var(--col-course-id) + var(--col-course-name) + var(--shift-day-cell-width) * 7)!important}.shift-table.course-table.schedule-table--edit thead tr:first-child .sticky-header-span{min-width:calc(var(--col-course-id) + var(--col-course-name))}.shift-table.course-table.schedule-table--edit th.col-course-id,.shift-table.course-table.schedule-table--edit td.col-course-id{width:var(--col-course-id);min-width:var(--col-course-id);max-width:var(--col-course-id);left:0}.shift-table.course-table.schedule-table--edit th.col-course-name,.shift-table.course-table.schedule-table--edit td.col-course-name{left:var(--col-course-id);width:var(--col-course-name);min-width:var(--col-course-name);max-width:var(--col-course-name)}.schedule-table td.schedule-td--off{background:#f0f0f0!important}.schedule-table td.schedule-td--out-of-range{cursor:not-allowed;background:#c6c6c6!important}.schedule-table--edit td.schedule-td--editable{cursor:pointer}.schedule-table--edit td.schedule-td--editable:hover{color:#fff;background:var(--primary)!important}.schedule-edit-radio-group{justify-content:center;gap:32px;margin-top:16px;display:flex}.schedule-edit-radio{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.schedule-edit-radio input[type=radio]{flex-shrink:0;width:16px;height:16px;margin:0}.schedule-edit-warning{text-align:center;margin:0 0 8px;padding:8px 12px;font-weight:600}.schedule-edit-warning--warn{color:#8a6b0d;background-color:#fff4d0}.schedule-edit-warning--error{color:#721c24;background-color:#f9dbdd}.schedule-import-modal{min-width:420px}.schedule-import-file-row{grid-template-columns:80px 1fr;align-items:center;gap:12px;margin:24px 0;display:grid}.schedule-import-label{font-weight:600}.schedule-import-file-picker{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;background:var(--surface);width:100%;min-height:50px;color:var(--text-tertiary);cursor:pointer;padding:10px 16px}.schedule-import-file-picker:hover{border-color:var(--primary)}.schedule-import-hidden-input{display:none}.schedule-import-error{color:#dc2626;text-align:center;margin:0 0 16px;font-weight:600}.schedule-import-failed-modal{max-height:60vh;overflow-y:auto}.color-compare{flex-wrap:wrap;gap:12px;margin-top:8px;font-size:12px;display:flex}.color-compare span{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.color-compare i{border:1px solid var(--border);border-radius:4px;width:14px;height:14px}.sidebar a.anchor-link{color:var(--primary);font-weight:500;text-decoration:none}.sidebar a.anchor-link:hover{text-decoration:underline}th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sortable-label{align-items:center;gap:6px;display:inline-flex}.table-sort-icon{color:var(--text-tertiary);flex-shrink:0}.table-sort-icon--idle{opacity:.85}.table-sort-icon--active{color:var(--primary)}.shift-table--edit .data-cell--edit{cursor:pointer}.shift-table--edit .data-cell--edit:hover{color:#fff;background-color:var(--primary)!important}.shift-table--edit .data-cell--edit:hover .shift-cell,.shift-table--edit .data-cell--edit:hover .shift-cell-main,.shift-table--edit .data-cell--edit:hover .shift-cell-note,.shift-table--edit .data-cell--edit:hover .shift-cell-more-icon{color:#fff}.shift-edit-detail-modal,.shift-edit-form-modal{width:100%;max-width:640px}.shift-edit-detail-item{text-align:center;margin-bottom:16px}.shift-edit-detail-type{margin-bottom:8px;font-size:18px;font-weight:700}.shift-edit-detail-meta{font-size:14px;line-height:1.6}.shift-edit-node-form{flex-direction:column;gap:12px;display:flex}.shift-edit-node-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:12px}.shift-edit-node-row{align-items:center;gap:8px;display:flex}.shift-edit-node-remove{color:#fff;cursor:pointer;background:#dc3545;border:none;border-radius:50%;flex-shrink:0;width:32px;height:32px;font-size:18px;line-height:1}.shift-edit-node-type-select{flex:1;min-width:0}.shift-edit-node-times{flex-direction:column;gap:10px;margin-top:10px;display:flex}.shift-edit-node-time-row{grid-template-columns:110px 1fr;align-items:center;gap:8px;display:grid}.shift-edit-node-time-row label{font-size:13px;font-weight:600}.shift-edit-node-times .search-input:disabled,.shift-edit-node-times .select-multiple-input:disabled{background:var(--bg);color:var(--text-secondary);opacity:1;cursor:not-allowed}.shift-edit-node-add{margin-top:20px}.shift-edit-node-add-line{align-items:center;width:100%;display:flex}.shift-edit-node-add-line:before,.shift-edit-node-add-line:after{content:"";border-bottom:2px solid var(--text);flex:1;height:0}.shift-edit-node-add-line span{background:var(--surface);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;padding:0 10px;font-size:30px;font-weight:700;line-height:1}.shift-edit-node-add.disabled{opacity:.5}.shift-edit-node-add.disabled .shift-edit-node-add-line span{cursor:not-allowed}.shift-trip-block{border-radius:var(--radius-sm);background:#f5f3ff;border:1px dashed #7c3aed;margin-top:10px;padding:10px}.shift-trip-block-label{align-items:start}.shift-trip-block-label>label{color:#7c3aed;padding-top:2px}.shift-trip-sort{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.shift-trip-sort label{cursor:pointer;align-items:center;gap:4px;font-weight:500;display:inline-flex}.shift-trip-list{flex-direction:column;gap:6px;display:flex}.shift-trip-option{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;width:100%;color:inherit;background:#fff;grid-template-columns:20px 74px minmax(0,1fr) 96px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:grid}.shift-trip-option:hover:not(:disabled){border-color:var(--primary)}.shift-trip-option.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:var(--primary-soft,#eff6ff)}.shift-trip-option.taken,.shift-trip-option:disabled{cursor:not-allowed;color:var(--text-tertiary,#94a3b8);background:var(--bg,#f8fafc)}.shift-trip-fid{font-weight:700}.shift-trip-owner{text-align:right;font-size:11px}.shift-trip-night{color:#7c3aed;margin-left:4px;font-size:11px;font-weight:700}.shift-trip-msg{border-radius:var(--radius-sm);margin-top:8px;padding:6px 10px;font-size:12px}.shift-trip-msg.info{background:var(--primary-soft,#eff6ff);color:var(--primary)}.shift-trip-msg.warn{color:#b45309;background:#fffbeb;border:1px solid #fcd34d}.shift-trip-msg.err{color:#dc2626;background:#fef2f2}.shift-trip-end{align-items:center;gap:8px;min-width:0;display:flex}.shift-trip-end .select-multiple{flex:1;min-width:0}.shift-trip-next-day{color:#7c3aed;white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:700}.shift-trip-unlinked{color:#b45309;background:#fffbeb;border:1px solid #fcd34d;border-radius:999px;margin-top:3px;padding:0 6px;font-size:10px;font-weight:700;display:inline-block}.shift-trip-hover{text-align:left;pointer-events:none}.shift-trip-hover h4{margin:0 0 6px;font-size:13px}.shift-trip-hover dl{grid-template-columns:64px 1fr;gap:3px 6px;margin:0;display:grid}.shift-trip-hover dt{color:var(--text-secondary);font-weight:500}.shift-trip-hover dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.shift-trip-hover-warn{color:#b45309;font-weight:600}.shift-trip-hover-item+.shift-trip-hover-item{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.select-multiple{width:100%;position:relative}.select-multiple-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:100%;padding:8px 12px}.select-multiple-input:disabled{opacity:.7;cursor:not-allowed}.select-multiple-list{z-index:2;border:1px solid var(--text);border-radius:var(--radius-sm);background:var(--surface);padding:8px;display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #0000001f}.select-multiple-list--portal{z-index:100;width:auto;padding:5px;display:flex;position:fixed;right:auto}.select-multiple-list.open{display:block}.select-multiple-list--portal.open{display:flex}.select-multiple-cols{flex-direction:row;gap:4px;width:100%;display:flex}.select-multiple-col{flex:1 1 0;min-width:56px}.select-multiple-options{max-height:100px;margin:0;padding:5px 10px 0;list-style:none;overflow:hidden auto}.select-multiple-option{background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;text-align:center;white-space:nowrap;border:none;width:100%;margin-bottom:5px;padding:10px 16px;font-weight:600}.select-multiple-option.active{background:var(--primary);color:#fff}.select-multiple-option.disabled{opacity:.5;cursor:not-allowed}.driver-course-edit{--driver-course-header-row-1-height:41px}.driver-course-table-wrap{overflow:auto visible}.driver-course-table{border-collapse:collapse;width:100%}.driver-course-table th,.driver-course-table td{vertical-align:middle;padding:8px}.driver-course-table thead tr:first-child th{z-index:10;position:sticky;top:0}.driver-course-table thead tr:nth-child(2) th{top:var(--driver-course-header-row-1-height);z-index:10;position:sticky}.driver-course-table tbody td{z-index:3;background:var(--surface);position:relative}.driver-course-th-remove{text-align:center;width:3%}.driver-course-th-course{width:13%}.driver-course-th-departure{text-align:center;width:14%}.driver-course-th-time{width:7%;min-width:120px}.driver-course-th-vehicle{width:8%}.driver-course-th-days{width:26%}.driver-course-table select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:6px 8px;font-size:12px}.driver-course-action-cell{text-align:center}.driver-course-departure-cell{text-align:center;min-width:120px}.driver-course-day-group{flex-wrap:wrap;gap:8px;display:flex}.driver-course-day-item{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.driver-form-tabs{width:100%;max-width:420px}.driver-form-tabs button{text-align:center;flex:1;min-width:0}.driver-course-add-row{margin-top:10px}.driver-course-add-btn{justify-content:center;width:100%;padding:8px;font-size:18px;font-weight:600}.text-danger{color:#dc2626}.driver-working-conditions{gap:16px;display:grid}.driver-select-with-suffix{align-items:center;gap:8px;display:flex}.driver-select-with-suffix select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:120px;padding:8px 12px;font-size:13px}.driver-holiday-checkboxes{flex-wrap:wrap;gap:10px 14px;display:flex}.driver-holiday-check-item{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.driver-form-actions{margin-top:32px}.driver-retirement-notes-card{flex-direction:column;gap:16px;margin-bottom:16px;display:flex}.driver-retirement-section{margin-bottom:0}.driver-retirement-section input[type=date]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;max-width:280px;color:var(--text);padding:8px 10px;font-family:inherit;font-size:13px}.driver-notes-section{margin-bottom:0}.driver-notes-field{resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:160px;box-shadow:none;color:var(--text);background:#fff;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.6}.driver-notes-field:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.driver-notes-content{white-space:pre-wrap;color:var(--text);margin:0;font-size:13px;line-height:1.6}.driver-notes-readonly{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);white-space:pre-wrap;min-height:120px;margin:0;padding:10px 12px;line-height:1.6}

