html,body,#root{color:#0f172a;background:#f8fafc;height:100%;margin:0;padding:0}:root{--bg:#0048d4;--sidebar:#0048d4;--sidebar-hover:#ffffff26;--content-bg:#f8fafc;--card:#fff;--surface:#f1f5f9;--border:#e2e8f0;--text:#0f172a;--text-muted:#64748b;--accent:#3b82f6;--accent-light:#3b82f61f;--red:#ef4444;--red-bg:#ef44441a;--green:#10b981;--green-bg:#10b9811f;--purple:#8b5cf6;--purple-bg:#8b5cf61f;--amber:#f59e0b;--amber-bg:#f59e0b1f;--blue-light:#3b82f62e}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:13px}.loading-screen{background:#f8fafc;justify-content:center;align-items:center;height:100vh;display:flex}.loading-spinner{border:3px solid #e2e8f0;border-top-color:#0048d4;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:linear-gradient(135deg,#0048d4 0%,#0a1f6e 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:16px;width:360px;padding:48px 40px;box-shadow:0 20px 60px #0003}.login-logo{justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.login-logo-img{object-fit:contain;width:80px;height:80px}.login-title{color:#0f172a;margin-bottom:8px;font-size:20px;font-weight:700}.login-sub{color:#64748b;margin-bottom:28px;font-size:13px}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:12px}.login-btn{color:#fff;cursor:pointer;background:#0048d4;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,transform .1s;display:flex}.login-btn:hover{background:#0035a0;transform:translateY(-1px)}.login-note{color:#94a3b8;margin-top:16px;font-size:11px}.header-user{align-items:center;gap:10px;margin-left:auto;display:flex}.user-avatar{border:2px solid #fff6;border-radius:50%;width:28px;height:28px}.user-name{color:#ffffffe6;font-size:13px}.logout-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:12px;transition:background .15s}.logout-btn:hover{background:#ffffff40}.app{flex-direction:column;height:100vh;display:flex}.app-header{background:#0048d4;border-bottom:1px solid #ffffff26;flex-shrink:0;align-items:center;height:48px;padding:0 20px;display:flex}.app-header h1{color:#fff;letter-spacing:.02em;font-size:15px;font-weight:700}.header-logo{flex-shrink:0;width:30px;height:30px;margin-right:10px}.app-body{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--sidebar);border-right:1px solid #ffffff1f;flex-direction:column;flex-shrink:0;gap:2px;width:180px;padding:12px 8px;transition:width .2s,padding .2s;display:flex;overflow-y:auto}.sidebar.collapsed{width:48px;padding:12px 6px}.sidebar-top{justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;display:flex}.sidebar.collapsed .sidebar-top{flex-direction:column;justify-content:flex-start}.sidebar-collapse-btn{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:6px;flex-shrink:0;width:28px;height:28px;padding:0;font-family:inherit;font-size:12px;font-weight:700;line-height:1}.sidebar-collapse-btn:hover{background:#ffffff2e}.sidebar.collapsed .sidebar-section-label,.sidebar.collapsed .sidebar-btn span,.sidebar.collapsed .sidebar-divider{display:none}.sidebar.collapsed .sidebar-btn{justify-content:center;padding:8px 4px;font-size:11px}.sidebar.collapsed .sidebar-btn.active:before{display:none}.sidebar-section-label{color:#fff;letter-spacing:.08em;padding:8px 10px 4px;font-size:11px;font-weight:700}.sidebar-btn{text-align:left;color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,background .15s;display:flex}.sidebar-btn:hover{color:#fff;background:var(--sidebar-hover)}.sidebar-btn.active{color:#fff;background:var(--sidebar-hover);font-weight:600}.sidebar-btn.active:before{content:"";background:#fff;border-radius:2px;flex-shrink:0;width:3px;height:16px;margin-right:4px;display:inline-block}.main-content{background:var(--content-bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.tab-content{flex-direction:column;flex:1;padding:16px 20px;display:flex;overflow:hidden}.screen-header{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:16px;margin-bottom:12px;display:flex}.screen-header h2{color:var(--text);font-size:15px;font-weight:700}.filter-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-row label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.filter-row select{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;outline:none;padding:4px 10px;font-family:inherit;font-size:12px;transition:border-color .15s}.filter-row select:focus{border-color:var(--accent)}.staff-app .app-header{position:relative}.staff-view-badge{color:#bfdbfe;background:#ffffff26;border:1px solid #ffffff59;border-radius:999px;margin-left:12px;padding:4px 12px;font-size:12px;font-weight:600}.staff-app .staff-main{background:var(--content-bg);flex:1;min-height:0;padding:16px 20px 24px;overflow:auto}.staff-app .staff-main .tab-content{max-width:none}.legend-red{color:var(--red);background:var(--red-bg);border:1px solid #fb2c364d;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.table-scroll{border:1px solid var(--border);background:var(--card);border-radius:10px;flex:1;overflow:auto}.table-scroll.grid-framed-scroll{background:#fff;border:1px solid #475569;border-radius:8px}.shift-table.grid-framed{--grid-border:#475569;border-collapse:collapse}.shift-table.grid-framed th,.shift-table.grid-framed td{box-sizing:border-box;background-clip:padding-box;border:1px solid var(--grid-border)!important}.shift-table.grid-framed .col-affiliation,.shift-table.grid-framed .col-category,.shift-table.grid-framed .col-employee-no,.shift-table.grid-framed .col-name,.shift-table.grid-framed .col-time-start,.shift-table.grid-framed .col-time-end,.shift-table.grid-framed .col-holiday-count,.provisional-table .col-affiliation,.provisional-table .col-category,.provisional-table .col-employee-no,.provisional-table .col-name,.provisional-table .col-holiday-count,.provisional-table .ps-label-col{box-shadow:inset -1px 0 0 var(--grid-border,#475569)}.time-table .col-affiliation,.time-table .col-category,.time-table .col-employee-no,.time-table .col-name,.time-table .col-time-start,.time-table .col-time-end{border-right:1px solid #334155!important}.shift-table.grid-framed thead th{color:#334155;background:#e2e8f0!important}.shift-table.grid-framed.confirmed-table .col-day-header.sat,.shift-table.grid-framed .col-day-header.sat{color:#1d4ed8!important;background:#dbeafe!important}.shift-table.grid-framed.confirmed-table .col-day-header.sun,.shift-table.grid-framed .col-day-header.sun{color:#b91c1c!important;background:#fee2e2!important}.shift-table.grid-framed .sat-col{background:#eff6ff!important}.shift-table.grid-framed .sun-col{background:#fef2f2!important}.shift-table.grid-framed .cell-shortage{border-color:#b91c1c!important}.shift-table.grid-framed.time-table thead .req-summary-row th,.shift-table.grid-framed.time-table thead .work-summary-row th{background:#f8fafc!important}.shift-table.grid-framed.time-table thead .shortage-summary-row th{background:#ffedd5!important;border-bottom:2px solid #1e293b!important}.shift-table.grid-framed.time-table thead .shortage-label{background:inherit!important}.shift-table{border-collapse:collapse;white-space:nowrap;min-width:100%}.shift-table th,.shift-table td{border:1px solid var(--border);text-align:center;vertical-align:middle;padding:5px 8px;font-size:12px}.shift-table thead th{background:var(--surface);color:var(--text-muted);z-index:2;letter-spacing:.03em;font-size:11px;font-weight:600;position:sticky;top:0}.shift-table tbody tr{background:var(--card)}.shift-table tbody tr:nth-child(2n){background:#f8fafc}.shift-table tbody tr:hover{background:#f1f5f9}.col-date{width:64px}.col-day{width:36px}.col-store{width:90px}.col-category{width:56px}.col-affiliation{white-space:nowrap;text-overflow:ellipsis;width:88px;min-width:72px;font-size:11px;font-weight:600;overflow:hidden}.col-employee-no{width:44px;min-width:40px;color:var(--text-muted);font-size:11px}.col-name{text-align:left;width:120px;padding-left:10px}.affil-home{color:#1d4ed8}.affil-help{color:#c2410c;background:#ffedd5!important}.col-time-range{white-space:nowrap;font-variant-numeric:tabular-nums;text-overflow:clip;box-sizing:border-box;width:78px;min-width:78px;max-width:90px;font-size:12px;overflow:visible;padding-left:6px!important;padding-right:6px!important}.col-holiday-count{width:48px}.col-day-header{width:56px;min-width:54px}.weekend-row td{background:#ffffff04}.cell-shortage{font-weight:700;background:var(--red-bg)!important;color:var(--red)!important;border-color:#fb2c364d!important}.cell-shortage-clickable{cursor:pointer;transition:background .15s}.cell-shortage-clickable:hover{background:#fb2c3647!important}.col-slot{width:38px;min-width:38px;padding:3px 1px;font-size:10px}.slot-shortage-header{color:var(--red)!important;background:#fb2c3640!important}.slot-cell{width:38px;min-width:38px;height:26px;padding:0}.slot-working{background:var(--blue-light)}.shortage-summary-row td{border-top:2px solid var(--border);color:var(--red);font-weight:700;background:#f99c0014!important}.shortage-label{text-align:right;color:var(--text-muted);font-size:11px;font-weight:600}.shortage-mark{font-size:11px;font-weight:700}.confirmed-table .col-day-header{font-size:10px;line-height:1.4}.confirmed-table .col-day-header.sat{color:#77d4ff!important;background:#1447e640!important}.confirmed-table .col-day-header.sun{color:var(--red)!important;background:#fb2c3633!important}.cs-cell{white-space:pre-line;vertical-align:middle;min-width:68px;max-width:90px;padding:2px 3px;font-size:9px;line-height:1.4}.sat-col{background:#1447e626!important}.sun-col{background:#fb2c361a!important}.cs-holiday{font-weight:700;background:var(--green-bg)!important;color:var(--green)!important;border-color:#00bb7f40!important}.cs-off{font-weight:700;color:var(--text-muted)!important;background:#f1f5f9!important}.cs-paid{font-weight:700;background:var(--purple-bg)!important;color:var(--purple)!important;border-color:#ac4bff40!important}.cs-winter{font-weight:700;background:var(--accent-light)!important;color:#77d4ff!important;border-color:#1447e640!important}.cs-special{font-weight:700;background:var(--amber-bg)!important;color:var(--amber)!important;border-color:#f99c0040!important}.cs-dash{color:#fff3}.cs-shift{color:var(--text);font-size:10px}.cs-legend{align-items:center;gap:6px;display:flex}.cs-leg{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.shift-table .col-affiliation,.shift-table .col-category,.shift-table .col-employee-no,.shift-table .col-name{z-index:1;background:var(--card);position:sticky}.shift-table .col-affiliation{background:var(--card);left:0}.shift-table .col-category{background:var(--card);left:88px}.shift-table .col-employee-no{background:var(--card);left:144px}.shift-table .col-name{background:var(--card);left:188px}.confirmed-table:not(.provisional-table){--cf-affil:88px;--cf-cat:56px;--cf-no:44px;--cf-name:120px}.confirmed-table:not(.provisional-table) .col-affiliation{width:var(--cf-affil);min-width:var(--cf-affil);max-width:var(--cf-affil);left:0}.confirmed-table:not(.provisional-table) .col-category{left:var(--cf-affil);width:var(--cf-cat);min-width:var(--cf-cat);max-width:var(--cf-cat)}.confirmed-table:not(.provisional-table) .col-employee-no{left:calc(var(--cf-affil) + var(--cf-cat));width:var(--cf-no);min-width:var(--cf-no);max-width:var(--cf-no)}.confirmed-table:not(.provisional-table) .col-name{left:calc(var(--cf-affil) + var(--cf-cat) + var(--cf-no));width:var(--cf-name);min-width:var(--cf-name);max-width:var(--cf-name);box-shadow:3px 0 6px -2px #0f172a33;border-right:2px solid #1e293b!important}.confirmed-table:not(.provisional-table) .col-holiday-count{display:none}.confirmed-table:not(.provisional-table) .col-day-header:first-of-type,.confirmed-table:not(.provisional-table) tbody td.cs-cell:nth-child(5){min-width:58px}.time-table .col-name{box-shadow:inset -1px 0 #334155}.time-table .col-time-start,.time-table .col-time-end{z-index:1;background:var(--card);position:sticky}.time-table .col-time-start{left:308px;box-shadow:inset -1px 0 #334155}.time-table .col-time-end{left:386px;box-shadow:inset -1px 0 #334155,2px 0 4px #00000012}.time-table thead .col-time-start,.time-table thead .col-time-end{z-index:3;background:var(--surface)}.time-table tbody tr:nth-child(2n) td.col-time-start,.time-table tbody tr:nth-child(2n) td.col-time-end{background:#f8fafc}.time-table tbody tr:hover td.col-time-start,.time-table tbody tr:hover td.col-time-end{background:#f1f5f9}.time-table thead{z-index:20;position:sticky;top:0}.time-table thead .req-summary-row th,.time-table thead .work-summary-row th{background:#f8fafc;font-size:11px;font-weight:600}.time-table thead .shortage-summary-row th{color:var(--red);background:#f99c001f;font-size:11px;font-weight:700}.time-table thead .shortage-label{text-align:right;z-index:21;background:inherit;position:sticky;left:0;box-shadow:2px 0 4px #0000000f}.shift-table thead .col-affiliation,.shift-table thead .col-category,.shift-table thead .col-employee-no,.shift-table thead .col-name{z-index:3;background:var(--surface)}.shift-table tbody tr:nth-child(2n) td.col-affiliation,.shift-table tbody tr:nth-child(2n) td.col-category,.shift-table tbody tr:nth-child(2n) td.col-employee-no,.shift-table tbody tr:nth-child(2n) td.col-name{background:#f8fafc}.shift-table tbody tr:hover td.col-affiliation,.shift-table tbody tr:hover td.col-category,.shift-table tbody tr:hover td.col-employee-no,.shift-table tbody tr:hover td.col-name{background:#f1f5f9}.shift-table tbody tr:nth-child(2n) td.affil-help,.shift-table tbody tr:hover td.affil-help{background:#ffedd5!important}*{scrollbar-width:auto;scrollbar-color:#94a3b8 #e2e8f0}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:#e8eef5;border-radius:8px}::-webkit-scrollbar-thumb{background:#94a3b8 padding-box padding-box;border:3px solid #e8eef5;border-radius:8px;min-height:40px}::-webkit-scrollbar-thumb:hover{background:#64748b padding-box padding-box;border:3px solid #e8eef5}::-webkit-scrollbar-corner{background:#e8eef5}.table-scroll,.provisional-scroll,.staff-main{scrollbar-width:auto;scrollbar-color:#64748b #dde5ef}.table-scroll::-webkit-scrollbar{width:16px;height:16px}.provisional-scroll::-webkit-scrollbar{width:16px;height:16px}.staff-main::-webkit-scrollbar{width:16px;height:16px}.table-scroll::-webkit-scrollbar-thumb{background:#64748b padding-box padding-box;border:3px solid #dde5ef;border-radius:9px}.provisional-scroll::-webkit-scrollbar-thumb{background:#64748b padding-box padding-box;border:3px solid #dde5ef;border-radius:9px}.staff-main::-webkit-scrollbar-thumb{background:#64748b padding-box padding-box;border:3px solid #dde5ef;border-radius:9px}.table-scroll::-webkit-scrollbar-thumb:hover{background:#475569 padding-box padding-box;border:3px solid #dde5ef}.provisional-scroll::-webkit-scrollbar-thumb:hover{background:#475569 padding-box padding-box;border:3px solid #dde5ef}.staff-main::-webkit-scrollbar-thumb:hover{background:#475569 padding-box padding-box;border:3px solid #dde5ef}.provisional-scroll{background:#fff}.provisional-table{--ps-affil:88px;--ps-cat:56px;--ps-no:44px;--ps-name:122px;--ps-holiday:50px;--ps-label:46px;--ps-left-cat:var(--ps-affil);--ps-left-no:calc(var(--ps-affil) + var(--ps-cat));--ps-left-name:calc(var(--ps-left-no) + var(--ps-no));--ps-left-holiday:calc(var(--ps-left-name) + var(--ps-name));--ps-left-label:calc(var(--ps-left-holiday) + var(--ps-holiday));--ps-border:#475569;--ps-green-solid:#bbf7d0;--ps-orange-solid:#fed7aa;--ps-green-cell:#dcfce7;--ps-orange-cell:#ffedd5;border-collapse:collapse}.provisional-table tbody tr:hover{background:inherit}.provisional-table th,.provisional-table td{box-sizing:border-box;background-clip:padding-box;border:1px solid var(--ps-border)!important}.provisional-table thead{z-index:30;position:sticky;top:0}.provisional-table thead th{top:unset!important;background:#e2e8f0!important}.provisional-table thead tr.ps-shortage-header-row th{padding:2px 1px;font-size:10px;font-weight:700;background:#dbeafe!important;border-bottom:3px solid #1e293b!important}.provisional-table thead tr.ps-shortage-header-row th.ps-shortage-spacer{width:var(--ps-label);min-width:var(--ps-label);max-width:var(--ps-label);padding:0}.provisional-table tbody tr:first-child td{border-top:2px solid #1e293b!important}.provisional-table .col-affiliation{width:var(--ps-affil);min-width:var(--ps-affil);max-width:var(--ps-affil);z-index:10;position:sticky;left:0;box-shadow:inset -1px 0 #334155;background:#fff!important;border-right:1px solid #334155!important}.provisional-table .col-category{left:var(--ps-left-cat);width:var(--ps-cat);min-width:var(--ps-cat);max-width:var(--ps-cat);z-index:11;position:sticky;box-shadow:inset -1px 0 #334155;background:#fff!important;border-right:1px solid #334155!important}.provisional-table .col-employee-no{left:var(--ps-left-no);width:var(--ps-no);min-width:var(--ps-no);max-width:var(--ps-no);z-index:12;position:sticky;box-shadow:inset -1px 0 #334155;background:#fff!important;border-right:1px solid #334155!important}.provisional-table .col-name{left:var(--ps-left-name);width:var(--ps-name);min-width:var(--ps-name);max-width:var(--ps-name);z-index:13;position:sticky;box-shadow:inset -1px 0 #334155;background:#fff!important;border-right:1px solid #334155!important}.provisional-table .col-holiday-count{left:var(--ps-left-holiday);width:var(--ps-holiday);min-width:var(--ps-holiday);max-width:var(--ps-holiday);z-index:14;position:sticky;box-shadow:inset -1px 0 #334155;background:#fff!important;border-right:1px solid #334155!important}.provisional-table .ps-label-col{left:var(--ps-left-label);width:var(--ps-label);min-width:var(--ps-label);max-width:var(--ps-label);white-space:nowrap;text-align:center;z-index:15;padding:3px 4px;font-size:12px;font-weight:700;position:sticky;box-shadow:inset -1px 0 #334155,4px 0 8px -2px #0f172a2e;background:#fff!important;border-right:2px solid #334155!important}.provisional-table .col-affiliation,.provisional-table .col-category,.provisional-table .col-employee-no,.provisional-table .col-name,.provisional-table .col-holiday-count,.provisional-table .ps-label-col,.provisional-table .ps-shortage-row-label,.provisional-table .ps-shortage-spacer{position:sticky;transform:translateZ(0)}.provisional-table thead .col-affiliation,.provisional-table thead .col-category,.provisional-table thead .col-employee-no,.provisional-table thead .col-name,.provisional-table thead .col-holiday-count,.provisional-table thead .ps-label-col,.provisional-table thead .ps-shortage-row-label,.provisional-table thead .ps-shortage-spacer{z-index:40}.provisional-table thead tr.ps-shortage-header-row .ps-shortage-row-label{width:calc(var(--ps-affil) + var(--ps-cat) + var(--ps-no) + var(--ps-name) + var(--ps-holiday));text-align:right;color:#1e3a8a;font-size:9px;font-weight:700;left:0;padding-right:6px!important}.provisional-table thead tr.ps-shortage-header-row .ps-shortage-spacer{left:var(--ps-left-label)}.provisional-table tbody .col-affiliation,.provisional-table tbody .col-category,.provisional-table tbody .col-employee-no,.provisional-table tbody .col-name,.provisional-table tbody .col-holiday-count{background:#fff!important}.provisional-table tbody .col-affiliation.affil-help{background:#ffedd5!important}.provisional-table tbody .ps-desired-row td.ps-label-col{color:#14532d;background:var(--ps-green-solid)!important}.provisional-table tbody .ps-planned-row td.ps-label-col{color:#9a3412;background:var(--ps-orange-solid)!important}.provisional-table tbody td.ps-cell,.provisional-table thead th.col-day-header,.provisional-table thead th.ps-shortage-cell{z-index:1;position:relative}.provisional-table .col-day-header.sat{color:#1e3a8a!important;background:#93c5fd!important}.provisional-table .col-day-header.sun{color:#991b1b!important;background:#fca5a5!important}.provisional-table thead tr.ps-shortage-header-row th.ps-shortage-cell.sat{color:#1e40af!important;background:#bfdbfe!important}.provisional-table thead tr.ps-shortage-header-row th.ps-shortage-cell.sun{color:#991b1b!important;background:#fecaca!important}.provisional-table thead tr.ps-shortage-header-row th.ps-shortage-cell.has-shortage{color:#7f1d1d!important;background:#f87171!important;border-color:#b91c1c!important}.provisional-table .sat-col{background:#dbeafe!important}.provisional-table .sun-col{background:#fee2e2!important}.provisional-table.shift-table .col-affiliation{width:var(--ps-affil);min-width:var(--ps-affil);max-width:var(--ps-affil);left:0}.provisional-table.shift-table .col-category{left:var(--ps-left-cat);width:var(--ps-cat);min-width:var(--ps-cat);max-width:var(--ps-cat)}.provisional-table.shift-table .col-employee-no{left:var(--ps-left-no);width:var(--ps-no);min-width:var(--ps-no);max-width:var(--ps-no)}.provisional-table.shift-table .col-name{left:var(--ps-left-name);width:var(--ps-name);min-width:var(--ps-name);max-width:var(--ps-name);box-shadow:none}.provisional-table.shift-table .col-holiday-count{left:var(--ps-left-holiday);width:var(--ps-holiday);min-width:var(--ps-holiday);max-width:var(--ps-holiday)}.provisional-table.shift-table thead .col-affiliation,.provisional-table.shift-table thead .col-category,.provisional-table.shift-table thead .col-employee-no,.provisional-table.shift-table thead .col-name{background:#e2e8f0!important}.ps-label-col{width:var(--ps-label,46px);min-width:var(--ps-label,46px);white-space:nowrap;text-align:center;padding:3px 4px;font-size:12px;font-weight:700}.ps-desired-label{color:#14532d;font-size:12px;font-weight:700}.ps-planned-label{color:#9a3412;font-size:12px;font-weight:700}.ps-desired-row td.ps-cell{background-color:var(--ps-green-cell)!important}.ps-planned-row td.ps-cell{background-color:var(--ps-orange-cell)!important;border-top:1px dashed #94a3b8!important}.ps-cell{font-size:8px}.ps-shortage-cell{text-align:center;min-width:68px}.ps-shortage-cell.has-shortage{cursor:pointer;font-weight:700;background:var(--red-bg)!important;color:var(--red)!important;border:1px solid #fb2c3666!important}.ps-shortage-cell.has-shortage:hover{background:#fb2c3638!important}.print-only{display:none}.pdf-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#dc2626;border:none;border-radius:6px;align-items:center;gap:4px;padding:5px 12px;font-size:.75rem;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #00000026}.pdf-btn:hover{background:#b91c1c}.pdf-btn:disabled{opacity:.7;cursor:wait}.pdf-capture-root{z-index:-9999;pointer-events:none;background:#fff;position:fixed;top:0;left:0;overflow:visible}.pdf-capture-root .confirmed-pdf-sheet{box-sizing:border-box;color:#0f172a;background:#fff;width:1580px;padding:14px 16px;font-family:Segoe UI,Hiragino Sans,Meiryo,sans-serif}.pdf-capture-root .pdf-sheet-block{box-sizing:border-box;width:100%}.pdf-capture-root .confirmed-pdf-header{margin-bottom:10px}.pdf-capture-root .confirmed-pdf-header h1{color:#0f172a;margin-bottom:4px;font-size:20px;font-weight:700}.pdf-capture-root .confirmed-pdf-header p{color:#334155;margin:0;font-size:14px}.pdf-capture-root .pdf-sheet-block+.pdf-sheet-block{border-top:3px solid #1e293b;margin-top:14px;padding-top:12px}.pdf-capture-root .confirmed-pdf-table{border-collapse:collapse;table-layout:fixed;white-space:nowrap;box-sizing:border-box;border:2px solid #1e293b;font-size:11px;border-right:2px solid #1e293b!important}.pdf-capture-root .confirmed-pdf-table th:last-child,.pdf-capture-root .confirmed-pdf-table td:last-child,.pdf-capture-root .confirmed-pdf-table .col-last-day{border-right:2px solid #1e293b!important}.pdf-capture-root .confirmed-pdf-table th,.pdf-capture-root .confirmed-pdf-table td{vertical-align:middle;text-align:center;color:#0f172a;line-height:1.35;z-index:auto!important;box-shadow:none!important;border:1px solid #475569!important;padding:5px 4px!important;position:static!important;top:auto!important;left:auto!important}.pdf-capture-root .confirmed-pdf-table thead th{font-size:11px;font-weight:700;background:#cbd5e1!important;border-color:#1e293b!important}.pdf-capture-root .confirmed-pdf-table tbody .col-category,.pdf-capture-root .confirmed-pdf-table tbody .col-name,.pdf-capture-root .confirmed-pdf-table tbody .col-holiday-count{font-weight:600;background:#e2e8f0!important}.pdf-capture-root .confirmed-pdf-table tbody tr:nth-child(2n) td:not(.sat-col):not(.sun-col):not(.cs-holiday):not(.cs-off):not(.cs-paid):not(.cs-winter):not(.cs-special){background:#f8fafc}.pdf-capture-root .confirmed-pdf-table tbody tr:nth-child(2n) .col-category,.pdf-capture-root .confirmed-pdf-table tbody tr:nth-child(2n) .col-name,.pdf-capture-root .confirmed-pdf-table tbody tr:nth-child(2n) .col-holiday-count{background:#dbeafe!important}.pdf-capture-root .confirmed-pdf-table .col-category{text-align:center}.pdf-capture-root .confirmed-pdf-table .col-name{text-align:left;padding-left:8px!important}.pdf-capture-root .confirmed-pdf-table .cs-cell{white-space:nowrap;overflow:hidden;min-width:0!important;max-width:none!important;font-size:10px!important}.pdf-capture-root .confirmed-pdf-table .cs-shift{font-weight:500;font-size:10px!important}.pdf-capture-root .col-day-header.sat{color:#1e3a8a!important;background:#60a5fa!important}.pdf-capture-root .col-day-header.sun{color:#7f1d1d!important;background:#f87171!important}.pdf-capture-root .sat-col{background:#bfdbfe!important}.pdf-capture-root .sun-col{background:#fecaca!important}.pdf-capture-root .cs-holiday{font-weight:700;color:#14532d!important;background:#86efac!important}.pdf-capture-root .cs-off{font-weight:700;color:#475569!important;background:#e2e8f0!important}.pdf-capture-root .cs-paid{font-weight:700;color:#581c87!important;background:#d8b4fe!important}.pdf-capture-root .cs-winter{font-weight:700;color:#1e3a8a!important;background:#93c5fd!important}.pdf-capture-root .cs-special{font-weight:700;color:#92400e!important;background:#fcd34d!important}.excel-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#16a34a;border:none;border-radius:6px;align-items:center;gap:4px;padding:5px 12px;font-size:.75rem;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #00000026}.excel-btn:hover{background:#15803d}@media print{@page{size:A3 landscape;margin:4mm}body.printing-confirmed .app-header,body.printing-confirmed .sidebar,body.printing-confirmed .screen-header,body.printing-confirmed .pdf-btn,body.printing-confirmed .excel-btn{display:none!important}body.printing-confirmed{background:#fff!important}body.printing-confirmed .app,body.printing-confirmed .app-body,body.printing-confirmed .main-content,body.printing-confirmed .tab-content{background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}body.printing-confirmed .print-only{display:block!important}body.printing-confirmed .confirmed-print-header{margin-bottom:4px}body.printing-confirmed .confirmed-print-header h1{margin-bottom:2px;font-size:11px;font-weight:700}body.printing-confirmed .confirmed-print-header p{color:#334155;margin:0;font-size:8px}body.printing-confirmed .print-paper-hint{color:#64748b;margin-top:2px;font-size:7px}body.printing-confirmed .table-scroll{border:none!important;max-height:none!important;overflow:visible!important}body.printing-confirmed .confirmed-shift-panel{min-height:100vh;flex-direction:column!important;display:flex!important}body.printing-confirmed .shift-table{border-collapse:collapse;table-layout:fixed;flex:1;width:100%;font-size:8px}body.printing-confirmed .shift-table th,body.printing-confirmed .shift-table td{-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;line-height:1.35;overflow:hidden;border:1px solid #334155!important;padding:3px 2px!important}body.printing-confirmed .shift-table thead th{font-size:8px;font-weight:700;background:#e2e8f0!important;padding:4px 2px!important;position:static!important}body.printing-confirmed .shift-table .col-category,body.printing-confirmed .shift-table .col-name{width:7%;box-shadow:none!important;position:static!important}body.printing-confirmed .shift-table .col-holiday-count{width:4%}body.printing-confirmed .shift-table .col-day-header{width:auto;min-width:0;font-size:7.5px}body.printing-confirmed .cs-cell{white-space:nowrap;min-width:0!important;max-width:none!important;font-size:7.5px!important}body.printing-confirmed .cs-shift{font-weight:600;font-size:7.5px!important}body.printing-confirmed tbody tr{page-break-inside:avoid;height:2.2em}body.printing-confirmed tbody td{height:2.2em}}.data-loading-banner{color:#1a3a6b;background:#eef4ff;border:1px solid #b8cdf0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px;padding:12px 16px;font-size:.95rem;font-weight:600;display:flex}.data-loading-sub{color:#4a628a;font-size:.85rem;font-weight:400}.data-loading-spinner{border:2.5px solid #c5d6f5;border-top-color:#0048d4;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.75s linear infinite spin}.data-loading-badge{color:#0048d4;background:#eef4ff;border:1px solid #b8cdf0;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.data-loading-dot{background:#0048d4;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite data-loading-pulse}@keyframes data-loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.table-loading-dim{opacity:.45;pointer-events:none;transition:opacity .15s}.data-status{color:var(--text-muted,#666);padding:12px 16px}.data-error{color:#c0392b;background:#fdecea;border-radius:6px;margin:0 16px 12px;padding:12px 16px}.legend-hint{color:var(--text-muted,#666);font-size:12px}.ps-editable{cursor:pointer}.ps-editable:hover{outline-offset:-2px;outline:2px solid #4a90d9}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:#fff;border-radius:10px;width:min(420px,92vw);padding:24px;box-shadow:0 8px 32px #0000002e}.modal-panel h3{margin:0 0 8px}.modal-meta{color:#666;margin:0 0 16px;font-size:14px}.modal-mode-tabs{gap:8px;margin-bottom:16px;display:flex}.modal-mode-tabs button{cursor:pointer;background:#f8f8f8;border:1px solid #ddd;border-radius:6px;flex:1;padding:8px}.modal-mode-tabs button.active{color:#fff;background:#4a90d9;border-color:#4a90d9}.modal-fields{gap:12px;margin-bottom:16px;display:flex}.modal-fields label{flex-direction:column;flex:1;gap:6px;font-size:13px;display:flex}.modal-fields select{border:1px solid #ccc;border-radius:6px;padding:8px}.modal-error{color:#c0392b;margin:0 0 12px;font-size:13px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal-actions button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:8px 16px}.modal-actions .btn-primary{color:#fff;background:#4a90d9;border-color:#4a90d9}.modal-actions .btn-danger{color:#c0392b;background:#fff;border-color:#c0392b;margin-right:auto}.header-title-block{flex-direction:column;gap:0;line-height:1.2;display:flex}.header-title-block h1{margin:0;font-size:1.25rem}.header-subtitle{opacity:.85;font-size:.7rem;font-weight:400}.sidebar-divider{background:#ffffff26;height:1px;margin:12px 16px}.sidebar-btn-guide{font-size:.9rem}.guide-page{max-width:760px;padding:0 16px 32px}.guide-lead{color:#555;margin:4px 0 0;font-size:.92rem}.guide-tabs{border-bottom:1px solid #d8e2ec;flex-wrap:wrap;gap:6px;margin:16px 0 18px;padding-bottom:12px;display:flex}.guide-tab{color:#1a5276;cursor:pointer;background:#fff;border:1px solid #c5d4e3;border-radius:999px;padding:7px 14px;font-size:.88rem;line-height:1.2}.guide-tab:hover{background:#f0f6fb}.guide-tab.active{color:#fff;background:#0048d4;border-color:#0048d4;font-weight:600}.guide-panel{min-height:220px}.guide-section{margin-bottom:22px}.guide-section h3{color:#1a5276;margin:0 0 10px;font-size:1.08rem}.guide-section p{color:#333;margin:0 0 10px;line-height:1.55}.guide-section ul,.guide-section ol{margin:0;padding-left:1.25rem}.guide-section li{color:#333;margin-bottom:8px;line-height:1.5}.guide-steps{padding-left:1.35rem}.guide-timeline{padding-left:0;list-style:none}.guide-timeline li{align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.guide-day{color:#0048d4;flex:0 0 72px;font-weight:700}.guide-tip{background:#fff8e8;border-left:3px solid #e6a817;border-radius:4px;padding:10px 12px;font-size:.9rem;color:#5a4a20!important;margin-top:14px!important}.guide-note{color:#555;background:#f4f8fb;border-radius:8px;margin-top:8px;padding:14px 16px;font-size:.9rem}.guide-note p{color:#555;margin:0}.data-badge{border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.data-badge-ok{color:#2e7d32;background:#e8f5e9}.data-badge-warn{color:#e65100;background:#fff3e0}.data-error-inline{color:#c0392b;margin:0 16px 8px;font-size:13px}.btn-refresh{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:4px 12px;font-size:13px}.empty-table-msg{text-align:center;color:#666;padding:24px}.period-select{margin-left:auto;margin-right:12px}.period-select label{color:#fff;align-items:center;gap:6px;font-size:13px;display:flex}.period-select select{color:#fff;background:#ffffff1f;border:1px solid #ffffff59;border-radius:6px;padding:4px 8px}.period-select select option{color:#222}.name-link-btn{color:#1a6bbf;cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.name-link-btn:hover{color:#0d47a1}.contact-hint{margin:0 16px 8px}.req-summary-row td,.work-summary-row td{color:#555;font-size:11px}.staff-contact-profile{align-items:center;gap:12px;margin-bottom:14px;display:flex}.staff-contact-avatar{color:#fff;background:#4a90d9;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;font-weight:700;display:flex}.staff-contact-name{margin:0;font-weight:700}.staff-contact-meta{color:#666;margin:2px 0 0;font-size:13px}.staff-contact-draft-label{color:#555;margin-bottom:6px;font-size:12px;display:block}.staff-contact-draft{box-sizing:border-box;resize:vertical;color:#1e293b;background:#fff;border:1px solid #94a3b8;border-radius:8px;width:100%;margin-bottom:10px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.5}.staff-contact-draft:focus{border-color:#0048d4;outline:none;box-shadow:0 0 0 3px #0048d426}.staff-contact-ok{color:#047857;background:#ecfdf5;border-radius:6px;margin:0 0 10px;padding:8px 10px;font-size:13px}.btn-secondary{background:#f0f4f8;border:1px solid #ccd}.staff-contact-actions{flex-wrap:wrap;gap:8px}.staff-contact-modal{width:calc(100% - 32px);max-width:520px}
