:root{--bg:#f6f5f1;--surface:#fff;--surface-2:#fafaf7;--surface-3:#f1efe9;--ink-1:#15171a;--ink-2:#3b3f45;--ink-3:#6a6f76;--ink-4:#9ca0a6;--line:#e6e3da;--line-2:#ededea;--line-strong:#d6d1c4;--brand:#1a6b3a;--brand-2:#14552e;--brand-soft:#e7efe7;--brand-ink:#103f23;--warn:#b25a09;--warn-soft:#fbe9cf;--warn-ink:#6a3304;--danger:#b1271b;--danger-soft:#f8d9d4;--danger-ink:#6c160e;--info:#1f5aa8;--info-soft:#dfe8f5;--info-ink:#133b70;--r-sm:4px;--r-md:6px;--r-lg:10px}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink-1);-webkit-font-smoothing:antialiased;font-family:Inter,Noto Sans JP,system-ui,sans-serif;font-size:13px;line-height:1.45}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace}html[data-fontsize=large] body{zoom:1.15}html[data-contrast=high]{--bg:#fff;--surface-2:#fff;--surface-3:#ececec;--ink-2:#1c1f22;--ink-3:#3a3f44;--ink-4:#555b61;--line:#b9bdb6;--line-2:#c4c8c1;--line-strong:#8f948c;--brand:#115530;--brand-ink:#0b3a20}@keyframes fieldShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (prefers-reduced-motion:reduce){.field-skeleton{animation:none!important}}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}@keyframes fieldToastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){[style*=fieldToastIn]{animation:none!important}}*{box-sizing:border-box}:root{--color-primary:var(--brand);--color-primary-hover:var(--brand-2);--color-primary-light:var(--brand-soft);--color-bg:var(--bg);--color-surface:var(--surface);--color-border:var(--line);--color-border-strong:var(--line-strong);--color-text-primary:var(--ink-1);--color-text-secondary:var(--ink-3);--color-text-tertiary:var(--ink-4);--color-danger:var(--danger);--color-warning:var(--warn);--color-info:var(--info);--color-success:var(--brand);--color-status-pending-bg:var(--warn-soft);--color-status-pending-fg:var(--warn-ink);--color-status-pending-border:var(--warn);--color-status-approved-bg:var(--brand-soft);--color-status-approved-fg:var(--brand-ink);--color-status-approved-border:var(--brand);--color-status-rejected-bg:var(--danger-soft);--color-status-rejected-fg:var(--danger-ink);--color-status-rejected-border:var(--danger);--color-status-draft-bg:var(--surface-3);--color-status-draft-fg:var(--ink-2);--color-status-draft-border:var(--line-strong);--color-status-active-bg:var(--brand-soft);--color-status-active-fg:var(--brand-ink);--color-status-active-border:var(--brand);--color-status-inactive-bg:var(--surface-3);--color-status-inactive-fg:var(--ink-3);--color-status-inactive-border:var(--line-strong);--shadow-subtle:0 1px 2px #0000000d;--shadow-card:0 1px 3px #11182714}body{background:var(--bg);color:var(--ink-1);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Noto Sans JP,system-ui,sans-serif;font-size:13px;line-height:1.45}a{color:inherit}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:24px;font-weight:700;line-height:1.3}h2,h3{font-size:16px;font-weight:700;line-height:1.3}.shell{place-items:center;min-height:100vh;padding:24px;display:grid}.panel,.card,.task-card,.plan-task-card,.allocation-task-row,.allocation-task-column,.worker-card,.allocation-worker-card,.allocation-machine-card,.child-task-card,.machine-label{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:8px}.panel{width:min(100%,420px);padding:24px}.card{padding:24px}.card h2{margin-bottom:16px}.stack,.readiness-list,.worker-list,.plan-task-list,.allocation-task-list,.allocation-column-body,.parent-assignment-section,.child-task-stack,.record-list,.photo-preview-grid,.master-option-list{gap:16px;display:grid}.field{gap:8px;display:grid}.field label,.field>span{color:var(--color-text-secondary);font-size:12px;font-weight:700}.field input,.field select,.field textarea{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-primary);border-radius:6px;width:100%;min-height:40px;padding:8px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #15803d1f}.field textarea{resize:vertical}.checkbox-field,.mini-checkbox{align-items:center;gap:8px;min-height:44px;display:flex}.checkbox-field input,.mini-checkbox input{width:16px;height:16px}.button{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-height:40px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .12s,border-color .12s,box-shadow .12s,color .12s;display:inline-flex}.button:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button.secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)}.button.secondary:hover,.button.tertiary:hover,.button.tiny:hover{background:#f3f4f6}.button.tertiary,.button.tiny{color:var(--color-text-secondary);background:0 0;border-color:#0000;min-height:32px;padding:8px 12px}.button.active,.tabs .button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.button.danger{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.button.danger:hover{background:#fef2f2}.button:disabled{cursor:not-allowed;opacity:.45}.button:focus-visible,.sidebar-link:focus-visible,.text-button:focus-visible,.sidebar-logout:focus-visible{outline:none;box-shadow:0 0 0 3px #15803d29}.text-button,.sidebar-logout{color:var(--color-primary);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.error,.success{border-radius:6px;padding:12px}.error{color:var(--color-danger);background:#fef2f2;border:1px solid #fecaca}.success{background:var(--color-primary-light);color:var(--color-success);border:1px solid #bbf7d0}.app{background:#f6f7f9;grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.app-main{min-width:0;padding:32px}.app-header{justify-content:space-between;align-items:flex-start;gap:16px;max-width:1280px;margin:0 auto 24px;display:flex}.app-header h1{margin-bottom:8px}.app-header p,.task-meta,.list,.worker-body span{color:var(--color-text-secondary)}.brand{color:var(--color-primary);margin-bottom:8px;font-size:12px;font-weight:700}.app-action{flex:none}.app-content{width:100%;max-width:1280px;margin:0 auto}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;gap:24px;width:240px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--color-border);padding-bottom:16px}.sidebar-brand a{color:var(--color-primary);font-size:16px;font-weight:700;text-decoration:none}.sidebar-nav,.option-grid{gap:8px;display:grid}.sidebar-link{color:var(--color-text-secondary);border-left:3px solid #0000;border-radius:6px;align-items:center;gap:12px;min-height:40px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-text-primary);background:#f3f4f6}.sidebar-link.active{background:var(--color-primary-light);border-left-color:var(--color-primary);color:var(--color-primary)}.sidebar-user{border-top:1px solid var(--color-border);align-items:center;gap:12px;margin-top:auto;padding-top:16px;display:flex}.sidebar-avatar,.worker-avatar,.machine-icon{border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.sidebar-avatar{background:var(--color-primary-light);color:var(--color-primary);width:32px;height:32px}.sidebar-user strong,.sidebar-user span{display:block}.sidebar-user strong{font-size:14px;font-weight:700;line-height:1.3}.sidebar-user span,.sidebar-logout{color:var(--color-text-secondary);font-size:12px}.sidebar-menu-button,.sidebar-close{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;display:none}.sidebar-overlay,.bottom-nav{display:none}.dashboard-grid,.module-grid,.label-sheet{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.wide-card{grid-column:1/-1}.metric{color:var(--color-text-primary);margin:8px 0;font-size:32px;font-weight:700;line-height:1.3}.page-header{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:24px;display:flex}.page-header h1{margin-bottom:0}.eyebrow,.muted,.status-text{color:var(--color-text-secondary);font-size:12px}.eyebrow{margin-bottom:4px;font-weight:700}.secondary-button{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-height:40px;padding:8px 16px;font-size:14px;font-weight:500;display:inline-flex}.secondary-button:hover{background:#f3f4f6}.row-between{justify-content:space-between;align-items:center;gap:16px;display:flex}.list{margin:12px 0 0;padding-left:16px}.card-heading,.action-row,.form-row,.break-row,.master-option-row,.toolbar,.allocation-toolbar,.daily-task-create,.inline-create-form,.allocation-column-actions{gap:16px;display:flex}.card-heading{justify-content:space-between;align-items:center}.page-toolbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:minmax(180px,.75fr) minmax(180px,1fr) minmax(240px,1.35fr) auto;align-items:end;gap:16px;padding:16px;display:grid}.page-toolbar-heading{gap:4px;display:grid}.page-toolbar-heading strong{font-size:16px}.page-toolbar-heading span{color:var(--color-text-secondary);font-size:12px}.page-toolbar-section{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.page-toolbar-section .field{min-width:160px}.toolbar-tabs{gap:8px;margin:0}.page-toolbar-center{justify-content:flex-start}.page-toolbar-right{justify-content:flex-end}.form-row>*,.inline-create-form>*,.toolbar>*{flex:1 1 0}.inline-actions{margin-left:auto}.record-list{margin:16px 0 0;padding:0;list-style:none}.record-list li,.todo-record-list li{border-top:1px solid var(--color-border);grid-template-columns:minmax(120px,1fr) repeat(4,minmax(80px,1fr));align-items:center;gap:8px;padding-top:12px;display:grid}.record-list li:hover,.todo-record-list li:hover{background:#fafafa}.todo-record-list li{grid-template-columns:minmax(160px,1fr) repeat(5,minmax(80px,1fr)) auto}.break-editor,.inline-create-form,.assigned-worker-list,.empty-drop-zone{border:1px solid var(--color-border);border-radius:8px;padding:16px}.break-row,.master-option-row,.toolbar,.allocation-toolbar,.inline-create-form{align-items:end}.break-row,.master-option-row{display:grid}.break-row{grid-template-columns:minmax(160px,1fr) 120px 120px auto}.master-option-row{grid-template-columns:minmax(120px,1fr) minmax(160px,1fr) 96px 120px auto}.account-record-list li{grid-template-columns:minmax(160px,1fr) minmax(100px,auto) minmax(160px,1fr) minmax(96px,auto) minmax(80px,auto) auto auto}.badge,.role-badge,.status-pill{border-radius:4px;width:fit-content;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge{color:var(--color-info);background:#eff6ff}.badge.danger{color:var(--color-danger);background:#fef2f2}.status-badge{white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.status-badge.pending{background:var(--color-status-pending-bg);border-color:var(--color-status-pending-border);color:var(--color-status-pending-fg)}.status-badge.approved{background:var(--color-status-approved-bg);border-color:var(--color-status-approved-border);color:var(--color-status-approved-fg)}.status-badge.rejected{background:var(--color-status-rejected-bg);border-color:var(--color-status-rejected-border);color:var(--color-status-rejected-fg)}.status-badge.draft{background:var(--color-status-draft-bg);border-color:var(--color-status-draft-border);color:var(--color-status-draft-fg)}.status-badge.active{background:var(--color-status-active-bg);border-color:var(--color-status-active-border);color:var(--color-status-active-fg)}.status-badge.inactive{background:var(--color-status-inactive-bg);border-color:var(--color-status-inactive-border);color:var(--color-status-inactive-fg)}.status-pill.draft,.role-badge.foreman{color:var(--color-warning);background:#fffbeb}.status-pill.published,.role-badge.operator{background:var(--color-primary-light);color:var(--color-primary)}.role-badge.signalman{color:var(--color-danger);background:#fef2f2}.role-badge.supervisor{color:var(--color-info);background:#eff6ff}.role-badge.worker{color:var(--color-text-secondary);background:#f3f4f6}.tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.tabs .button{color:var(--color-text-secondary);background:0 0;border-color:#0000}.tabs .button:not(.active):hover{color:var(--color-text-primary);background:#f3f4f6}.daily-task-create{grid-template-columns:minmax(280px,1fr) minmax(420px,1.4fr);align-items:stretch;display:grid}.inline-create-form{background:var(--color-surface)}.inline-create-form:nth-child(2){grid-template-columns:minmax(160px,.7fr) minmax(240px,1fr) auto;display:grid}.kanban-board,.assignment-board,.work-plan-board{gap:24px;display:grid}.kanban-board{grid-template-columns:repeat(4,minmax(0,1fr))}.assignment-board,.work-plan-board{grid-template-columns:320px minmax(0,1fr)}.kanban-column{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;min-height:224px;padding:16px}.task-card,.plan-task-card{gap:8px;margin-top:8px;padding:16px;display:grid}.child-overview-card{background:#eff6ff;border-color:#bfdbfe;margin-left:24px}.task-meta{flex-wrap:wrap;gap:8px;font-size:14px;display:flex}.photo-preview-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.photo-preview-grid img,.machine-thumb{background:var(--color-bg);border:1px solid var(--color-border);object-fit:cover;border-radius:8px;width:100%}.photo-preview-grid img{aspect-ratio:4/3}.machine-thumb{aspect-ratio:4/3;max-width:96px}.machine-detail-photo{aspect-ratio:4/3;background:var(--color-bg);border:1px solid var(--color-border);object-fit:cover;border-radius:8px;width:100%}.qr-image{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:160px;padding:8px}.qr-scan-help{background:var(--color-status-pending-bg);border:1px solid var(--color-status-pending-border);color:var(--color-status-pending-fg);border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.6}.machine-label{grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;min-height:136px;padding:16px;display:grid}.machine-label img{width:112px}.app-content.allocation-content{max-width:1280px}.allocation-board-page{gap:24px;min-height:calc(100vh - 240px);display:flex}.allocation-mobile-board{display:none}.allocation-board-page>.card:first-child{flex:0 0 320px;width:320px}.allocation-column-scroll{flex:auto;min-width:0;padding-bottom:8px;overflow-x:auto}.allocation-columns{align-items:stretch;gap:16px;min-width:max-content;min-height:calc(100vh - 280px);display:flex}.allocation-toolbar{grid-template-columns:minmax(180px,240px) minmax(240px,1fr) auto auto auto;display:grid}.date-strip,.date-stepper,.allocation-bench-tabs,.task-card-actions{flex-wrap:wrap;gap:8px;display:flex}.date-stepper{flex-wrap:nowrap}.bench-panel{position:sticky;top:24px}.bench-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.worker-list{gap:8px}.worker-card,.allocation-worker-card,.allocation-machine-card,.plan-worker-card{cursor:grab;grid-template-columns:40px 40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:12px;display:grid}.worker-card,.plan-worker-card,.allocation-worker-card.assigned{grid-template-columns:40px minmax(0,1fr) auto}.allocation-machine-card{grid-template-columns:40px 40px minmax(0,1fr) auto}.allocation-machine-card.assigned{grid-template-columns:40px minmax(0,1fr) auto}.worker-card.selected,.allocation-worker-card.selected,.plan-worker-card.selected{background:var(--color-primary-light);border-color:var(--color-primary)}.worker-avatar{background:var(--color-text-tertiary);color:#fff}.worker-avatar.warn,.machine-icon{background:var(--color-warning);color:#fff}.worker-avatar.critical{background:var(--color-danger)}.worker-body{gap:4px;min-width:0;display:grid}.allocation-machine-card{background:#fffbeb}.allocation-worker-card.search-hit,.allocation-machine-card.search-hit{border-color:var(--color-info);background:#eff6ff;box-shadow:0 0 0 2px #bfdbfe}.allocation-worker-card .mini-checkbox{justify-content:center}.allocation-task-column{flex-direction:column;flex:0 0 360px;min-height:640px;display:flex;overflow:hidden}.allocation-task-row.priority-high,.allocation-task-column.priority-high,.child-task-card.priority-high{border-left:4px solid var(--color-danger)}.allocation-task-row.priority-medium,.allocation-task-column.priority-medium,.child-task-card.priority-medium{border-left:4px solid var(--color-warning)}.allocation-task-row.priority-low,.allocation-task-column.priority-low,.child-task-card.priority-low{border-left:4px solid var(--color-primary)}.allocation-column-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:start;gap:16px;padding:16px;display:flex}.allocation-column-header.parent{background:#fdf2f8}.allocation-column-header div,.child-task-header div{gap:4px;min-width:0;display:grid}.allocation-column-header span,.allocation-task-meta span,.child-task-header span,.section-label{color:var(--color-text-secondary);font-size:12px}.allocation-task-meta,.allocation-column-actions,.parent-assignment-section{border-bottom:1px solid var(--color-border);padding:16px}.allocation-task-meta{background:var(--color-bg);gap:4px;display:grid}.allocation-column-actions{grid-template-columns:1fr;display:grid}.allocation-column-actions.compact{grid-template-columns:1fr}.allocation-column-body,.parent-assignment-section,.child-task-stack{padding:16px}.child-task-stack{flex:1;align-content:start;overflow-y:auto}.section-label{font-weight:700}.child-task-card{background:#eaf6ff;border-color:#bfdbfe;display:grid;overflow:hidden}.child-task-card.collapsed{background:#e0f2fe}.child-task-header{justify-content:space-between;align-items:start;gap:8px;padding:16px;display:flex}.task-title-editor{min-width:180px}.allocation-add-column{background:var(--color-surface);border:2px dashed var(--color-border-strong);color:var(--color-text-secondary);cursor:pointer;border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-self:start;align-items:center;gap:8px;width:160px;min-height:240px;font-size:24px;font-weight:700;display:inline-flex}.allocation-add-column:hover{border-color:var(--color-primary);color:var(--color-primary);background:#f3f4f6}.allocation-add-column span{font-size:12px}.allocation-mobile-summary,.allocation-mobile-board,.allocation-mobile-task-list,.allocation-mobile-child-list,.allocation-mobile-assignment-list,.allocation-mobile-subsection{gap:16px}.allocation-mobile-summary{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.allocation-mobile-summary-card,.allocation-mobile-task-card,.allocation-mobile-child-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.allocation-mobile-summary-card{gap:4px;padding:16px;display:grid}.allocation-mobile-summary-card span,.allocation-mobile-task-header span,.allocation-mobile-subheading span{color:var(--color-text-secondary);font-size:12px}.allocation-mobile-summary-card strong{font-size:24px}.allocation-mobile-task-list,.allocation-mobile-child-list,.allocation-mobile-assignment-list,.allocation-mobile-subsection{display:grid}.allocation-mobile-task-card,.allocation-mobile-child-card{gap:16px;padding:16px;display:grid}.allocation-mobile-child-card{background:#eff6ff;border-color:#bfdbfe}.allocation-mobile-child-card.collapsed{background:#e0f2fe}.allocation-mobile-task-header,.allocation-mobile-actions,.allocation-mobile-subheading{justify-content:space-between;align-items:center;gap:8px;display:flex}.allocation-mobile-task-header>div{gap:4px;min-width:0;display:grid}.allocation-mobile-actions{flex-wrap:wrap;justify-content:flex-start}.allocation-mobile-subheading{border-bottom:1px solid var(--color-border);padding-bottom:8px}.assigned-worker-list,.empty-drop-zone{color:var(--color-text-secondary);border-style:dashed;min-height:96px}.empty-drop-zone{text-align:center;justify-content:center;align-items:center;display:flex}.drop-target{outline:2px dashed var(--brand);outline-offset:4px;background:var(--brand-soft)!important}body[data-dragging] .drop-zone{border-color:var(--brand)!important;background:var(--brand-soft)!important;color:var(--brand-ink)!important}.gantt-scroll{border:1px solid var(--color-border);border-radius:8px;max-width:100%;padding-bottom:8px;overflow-x:auto}.gantt-grid{background:var(--color-surface);min-width:780px;display:grid;position:relative}.month-gantt-grid{min-width:1440px}.gantt-header,.gantt-task-name{background:var(--color-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);min-height:40px;padding:8px;font-size:12px;font-weight:500}.gantt-header{text-align:center}.gantt-header.holiday{color:var(--color-danger)}.gantt-header.task-label,.gantt-task-name{text-align:left}.gantt-row-fragment{display:contents}.gantt-task-name{z-index:1;align-content:center;gap:4px;min-width:0;display:grid;position:sticky;left:0}.gantt-task-name.parent{background:var(--color-surface)}.gantt-task-name.child{background:#eff6ff;padding-left:24px}.gantt-task-heading{align-items:center;gap:8px;min-width:0;display:flex}.gantt-task-heading strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-children-icon{background:var(--color-info);border-radius:6px;flex:none;width:12px;height:12px;display:inline-block}.gantt-task-name span{font-size:12px;font-weight:400}.gantt-bar,.gantt-bar.status-review,.gantt-bar.status-done,.gantt-bar.status-in_progress{background:var(--color-primary);color:#fff;opacity:.9;border-radius:6px;justify-content:center;align-self:center;align-items:center;gap:8px;min-height:32px;padding:4px 16px;font-size:12px;font-weight:700;display:flex;position:relative;overflow:hidden}.gantt-bar.parent{background:var(--color-primary)}.gantt-bar.child{background:var(--color-info);opacity:.82}.gantt-bar-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.gantt-bar-expand{color:#fff;cursor:pointer;z-index:2;background:#ffffff2e;border:1px solid #ffffff7a;border-radius:6px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:16px;font-weight:700;display:inline-flex;position:relative}.resize-handle{cursor:ew-resize;background:#ffffff59;border:0;width:16px;position:absolute;top:0;bottom:0}.resize-handle.left{left:0}.resize-handle.right{right:0}.instruction-page{gap:24px;display:grid}.instruction-sheet{gap:16px;display:grid;overflow-x:auto}.instruction-control-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;display:grid}.instruction-table-header{border:1px solid var(--color-border-strong);grid-template-columns:1.2fr 1.2fr 1fr 1fr;display:grid}.instruction-title-cell,.instruction-table-header dl{border-right:1px solid var(--color-border-strong);margin:0;display:grid}.instruction-title-cell{background:#fef9c3;gap:8px;padding:12px}.instruction-title-cell span,.instruction-table-header dt,.instruction-info-table span,.instruction-child-summary span,.instruction-section>span,.instruction-section-heading>span,.instruction-child-detail>span{color:var(--color-text-secondary);font-size:12px;font-weight:700}.instruction-title-cell strong{font-size:20px;line-height:1.3}.instruction-table-header dl:last-child{border-right:0}.instruction-table-header div{grid-template-columns:112px minmax(0,1fr);min-height:40px;display:grid}.instruction-table-header dt,.instruction-table-header dd{border-bottom:1px solid var(--color-border-strong);align-items:center;margin:0;padding:8px;display:flex}.instruction-table-header dt{border-right:1px solid var(--color-border-strong);color:var(--color-text-primary);background:#dbeafe}.instruction-table-header div:last-child dt,.instruction-table-header div:last-child dd{border-bottom:0}.instruction-main-grid{grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:16px;display:grid}.instruction-info-table{border:1px solid var(--color-border-strong);display:grid}.instruction-info-table label,.instruction-info-table>div{border-bottom:1px solid var(--color-border-strong);grid-template-columns:144px minmax(0,1fr);min-height:40px;display:grid}.instruction-info-table label:last-child,.instruction-info-table>div:last-child{border-bottom:0}.instruction-info-table span{border-right:1px solid var(--color-border-strong);color:var(--color-text-primary);background:#dbeafe;align-items:center;padding:8px;display:flex}.instruction-info-table input,.instruction-info-table select,.instruction-info-table textarea{resize:vertical;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;width:100%;min-height:40px;padding:8px}.instruction-info-table input:focus,.instruction-info-table select:focus,.instruction-info-table textarea:focus,.input-emphasis input:focus,.input-emphasis select:focus,.input-emphasis textarea:focus{border-color:var(--color-primary);background:#fff;outline:none;box-shadow:0 0 0 3px #15803d1f}.instruction-photo-area{grid-template-columns:repeat(3,minmax(120px,1fr));gap:16px;display:grid}.instruction-photo-placeholder{aspect-ratio:4/3;border:1px solid var(--color-border-strong);color:var(--color-text-secondary);text-align:center;background:#e0f2fe;border-radius:8px;justify-content:center;align-items:center;min-height:112px;display:flex;overflow:hidden}.instruction-photo-placeholder.clickable{cursor:pointer;position:relative}.instruction-photo-placeholder.clickable:hover{border-color:var(--color-info);background:#f0f9ff}.instruction-photo-placeholder input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.instruction-photo-placeholder img{object-fit:cover;width:100%;height:100%}.instruction-photo-input{grid-column:1/-1}.instruction-section-grid{grid-template-columns:1fr 1.2fr;gap:16px;display:grid}.instruction-section-label{border-left:3px solid var(--color-primary);color:var(--color-text-primary);margin:16px 0 8px;padding-left:12px;font-size:16px;font-weight:700;line-height:1.3}.instruction-collapsible-section{gap:8px;display:grid}.section-toggle-heading{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;font:inherit;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:12px 16px;display:flex}.section-toggle-heading:hover{background:var(--color-status-draft-bg)}.section-toggle-heading span{font-size:14px;font-weight:700}.section-toggle-heading strong{color:var(--color-text-secondary);font-size:12px;font-weight:500}.instruction-section{border:1px solid var(--color-border-strong);gap:8px;padding:12px;display:grid}.input-emphasis{background:#fff7ed;border-color:#fed7aa}.input-emphasis>span,.input-emphasis label>span{color:var(--color-warning)}.pagination-row{justify-content:flex-end;align-items:center;gap:16px;padding-top:16px;display:flex}.pagination-row span{color:var(--color-text-secondary);font-size:14px}#splash{z-index:9999;background:var(--bg,#f6f5f1);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#splash.show{opacity:1;pointer-events:auto}#splash.fading{animation:.45s forwards splashOut}@keyframes splashOut{to{opacity:0}}.wordmark{letter-spacing:-.045em;color:var(--ink-1,#15171a);-webkit-user-select:none;user-select:none;align-items:baseline;font-family:Inter,sans-serif;font-size:clamp(80px,14vw,220px);font-weight:800;line-height:1;display:flex}.wordmark .letter{opacity:0;will-change:transform, opacity;display:inline-block;transform:translate(28vw)}.wordmark .l-L{color:var(--brand,#1a6b3a)}#splash.play .wordmark .letter{animation:.85s cubic-bezier(.2,.78,.22,1) forwards letterIn,.75s cubic-bezier(.5,.04,.7,.2) forwards letterOut}#splash.play .wordmark .l-d{animation-delay:0s,2.35s}#splash.play .wordmark .l-L{animation-delay:90ms,2.25s}#splash.play .wordmark .l-e{animation-delay:.18s,2.15s}#splash.play .wordmark .l-i{animation-delay:.27s,2.05s}#splash.play .wordmark .l-F{animation-delay:.36s,1.95s}@keyframes letterIn{0%{opacity:0;transform:translate(28vw)}60%{opacity:1;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes letterOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-30vw)}}.rule{background:var(--ink-5,#c8c4b7);opacity:0;width:0;height:1px;margin-top:22px}.tag{color:var(--ink-3,#6a6f76);letter-spacing:.42em;text-transform:uppercase;white-space:nowrap;opacity:0;margin-top:28px;font:500 13px/1.4 Inter,sans-serif;transform:translateY(6px)}.tag .hl{color:var(--brand,#1a6b3a);font-weight:700}.tag .mute{color:var(--ink-4,#9ca0a6)}.tag .amp{color:var(--ink-4,#9ca0a6);margin:0 .1em}#splash.play .rule{animation:.55s cubic-bezier(.2,.7,.2,1) .95s forwards ruleIn,.45s ease-in 2.05s forwards ruleOut}#splash.play .tag{animation:.55s cubic-bezier(.2,.7,.2,1) 1.1s forwards tagIn,.45s ease-in 2.05s forwards tagOut}@keyframes ruleIn{to{opacity:.55;width:320px}}@keyframes ruleOut{to{opacity:0;transform:translate(-30px)}}@keyframes tagIn{to{opacity:1;transform:translateY(0)}}@keyframes tagOut{to{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.wordmark .letter,.tag,.rule{opacity:1!important;animation:none!important;transform:none!important}.rule{width:320px;opacity:.55!important}}.instruction-section.procedure{grid-row:span 2}.instruction-section.remarks{grid-column:2}.instruction-section textarea,.instruction-child-detail textarea,.instruction-kym-form textarea{border:1px solid var(--color-border);resize:vertical;border-radius:6px;width:100%;min-height:96px;padding:8px}.instruction-section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.instruction-section-heading select{border:1px solid var(--color-border);border-radius:6px;min-height:40px;padding:8px}.instruction-kym-table{gap:8px;display:grid}.instruction-kym-table>div{border:1px solid var(--color-border);grid-template-columns:120px minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.instruction-allocation-list,.instruction-skill-grid,.instruction-skill-summary{flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.instruction-text-link{color:var(--color-text-secondary);text-underline-offset:2px;font-size:12px;font-weight:500;text-decoration:underline}.instruction-skill-summary>span{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:100%;min-height:32px;padding:4px 8px;font-size:12px;display:inline-flex;overflow:hidden}.modal-backdrop{z-index:100;background:#11182752;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-subtle);border-radius:8px;width:min(720px,100%);max-height:calc(100vh - 64px);padding:24px;overflow:auto}.instruction-draft-modal{width:min(880px,100%)}.instruction-draft-preview{gap:16px;margin:16px 0 24px;display:grid}.instruction-draft-preview section{border:1px solid var(--color-border);border-radius:8px;gap:8px;padding:16px;display:grid}.instruction-draft-preview h3{margin:0;font-size:16px}.instruction-draft-preview ul,.instruction-draft-preview ol{gap:8px;margin:0;padding-left:24px;display:grid}.instruction-draft-preview li{line-height:1.6}.instruction-draft-preview li span,.instruction-draft-preview li em{color:var(--color-text-secondary);font-size:12px;font-style:normal;display:block}.instruction-skill-list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:16px;display:grid}.instruction-allocation-chip{background:var(--color-primary-light);color:var(--color-primary);border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:8px;min-height:32px;padding:4px 8px;font-size:12px;font-weight:500;display:inline-flex}.instruction-allocation-chip button{color:var(--color-danger);cursor:pointer;background:0 0;border:0;padding:0;font-size:16px;font-weight:700}.instruction-empty{color:var(--color-text-secondary);padding:8px;font-size:12px}.instruction-child-area{gap:12px;display:grid}.instruction-child-row{border:1px solid var(--color-border-strong);grid-template-columns:minmax(320px,.8fr) minmax(360px,1.2fr);gap:16px;padding:12px;display:grid}.instruction-child-row.compact{grid-template-columns:1fr}.instruction-child-summary{gap:8px;display:grid}.instruction-child-summary>div{border:1px solid var(--color-border);grid-template-columns:112px minmax(0,1fr);display:grid}.instruction-child-summary span{border-right:1px solid var(--color-border);color:var(--color-text-primary);background:#dbeafe}.instruction-child-detail{gap:8px;display:grid}.instruction-form-footer{justify-content:flex-end;display:flex}.instruction-kym-compact summary{cursor:pointer;font-size:16px;font-weight:700}.instruction-kym-form{grid-template-columns:repeat(4,minmax(160px,1fr)) auto;gap:16px;margin-top:16px;display:grid}.instruction-kym-template-list{gap:8px;margin-top:24px;display:grid}.kym-template-record-list li{grid-template-columns:minmax(160px,1fr) minmax(96px,.5fr) minmax(180px,1fr) minmax(180px,1fr) auto}.print-title{justify-content:space-between;align-items:center;gap:16px;display:none}.month-calendar-grid{border:1px solid var(--color-border);border-radius:8px;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px;display:grid;overflow:hidden}.calendar-scroll{max-width:100%;padding-bottom:8px;overflow-x:auto}.month-calendar-weekday{background:var(--color-bg);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);color:var(--color-text-secondary);text-align:center;padding:8px;font-size:12px;font-weight:700}.month-calendar-weekday.holiday{color:var(--color-danger)}.month-calendar-cell{background:var(--color-surface);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);min-height:120px;padding:8px}.month-calendar-cell.muted{color:var(--color-text-tertiary);background:#f3f4f6}.month-calendar-cell.holiday .month-calendar-date{color:var(--color-danger)}.month-calendar-date{margin-bottom:8px;font-size:12px;font-weight:700}.month-calendar-tasks{gap:4px;display:grid}.month-task-pill{background:var(--color-primary-light);color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;border:1px solid #bbf7d0;border-radius:6px;padding:2px 4px;font-size:12px;display:block;overflow:hidden}.month-task-more{color:var(--color-text-secondary);cursor:pointer;text-align:left;background:0 0;border:0;padding:2px 4px;font-size:12px}.month-task-more:hover{color:var(--color-primary)}.worker-gantt-scroll{max-width:100%;padding-bottom:8px;overflow-x:auto}.worker-gantt-grid{border:1px solid var(--color-border);border-radius:8px;min-width:1180px;display:grid;overflow:hidden}.worker-gantt-row-fragment{display:contents}.worker-gantt-name{background:var(--color-surface);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);z-index:1;align-content:center;gap:4px;min-height:44px;padding:8px;display:grid;position:sticky;left:0}.worker-gantt-name span{color:var(--color-text-secondary);font-size:12px}.worker-gantt-bar{background:var(--color-primary);color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;align-self:center;min-height:26px;padding:5px 8px;font-size:12px;font-weight:700;overflow:hidden}.worker-gantt-bar.child-source{background:#2563eb}.leave-page-grid{grid-template-columns:minmax(320px,480px) minmax(320px,1fr);align-items:start}.leave-application-card,.leave-balance-card,.leave-request-card{min-width:0;overflow-x:hidden}.leave-request-card{overflow-x:auto}.leave-form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.leave-balance-list li{grid-template-columns:minmax(180px,1fr) repeat(4,minmax(64px,auto))}.leave-request-list li{grid-template-columns:minmax(180px,1.1fr) minmax(80px,.7fr) minmax(200px,1.6fr) minmax(120px,.8fr) minmax(96px,auto) minmax(120px,auto) auto}.leave-request-list .inline-actions{justify-self:end;margin-left:0}@media (max-width:1180px){.leave-page-grid{grid-template-columns:1fr}}@media (max-width:1023px){.app{display:block}.app>.sidebar{display:none}.app-main{padding:32px 16px}.sidebar-menu-button{z-index:50;display:flex;position:fixed;top:16px;left:16px}.app-header{padding-left:48px}.sidebar-overlay{z-index:80;display:block;position:fixed;inset:0}.sidebar-backdrop{background:#11182752;border:0;position:absolute;inset:0}.sidebar-drawer{background:var(--color-surface);width:85vw;max-width:320px;height:100%;position:absolute;top:0;left:0}.sidebar-drawer .sidebar{width:100%;height:100%;display:flex;position:static}.sidebar-close{z-index:2;display:flex;position:absolute;top:16px;right:16px}}@media (max-width:767px){.app-main{padding:24px 16px}.app-header{flex-direction:column;align-items:flex-start;padding-left:48px}.dashboard-grid,.module-grid,.leave-page-grid,.leave-form-grid,.instruction-control-grid,.instruction-table-header,.instruction-main-grid,.instruction-photo-area,.instruction-section-grid,.instruction-child-row,.instruction-kym-form,.kanban-board,.assignment-board,.work-plan-board,.daily-task-create,.allocation-toolbar,.page-toolbar,.inline-create-form,.inline-create-form:nth-child(2),.break-row,.master-option-row,.record-list li,.todo-record-list li{grid-template-columns:1fr}.form-row,.action-row,.date-stepper,.allocation-desktop-board,.card-heading{flex-direction:column;align-items:stretch}.allocation-desktop-board{display:none}.allocation-mobile-board{display:grid}.bench-panel{position:static}.allocation-board-page>.card:first-child{flex:none;width:100%}.allocation-task-column{flex:0 0 320px;min-height:420px}.allocation-mobile-board .allocation-add-column{flex-direction:row;width:100%;min-height:64px}.allocation-mobile-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.allocation-mobile-bench-list{gap:8px;max-height:360px;display:grid;overflow-y:auto}.allocation-mobile-board .allocation-worker-card,.allocation-mobile-board .allocation-machine-card{width:100%;min-height:64px}.allocation-mobile-board .machine-icon,.allocation-mobile-board .worker-avatar{width:40px;height:40px}.allocation-column-actions{grid-template-columns:1fr}.allocation-add-column{flex-direction:row;width:100%;min-height:64px}.page-toolbar-section,.page-toolbar-right{flex-direction:column;justify-content:stretch;align-items:stretch}.page-toolbar-section .field{min-width:0}.instruction-section.remarks{grid-column:auto}.instruction-table-header div,.instruction-info-table label,.instruction-info-table>div,.instruction-child-summary>div{grid-template-columns:1fr}.instruction-info-table span,.instruction-child-summary span,.instruction-table-header dt{border-right:0}}@media print{@page{margin:8mm;size:A4 landscape}body{background:#fff}.app{display:block}.app-main{padding:0}.app-header,.sidebar,.sidebar-menu-button,.bottom-nav,.print-hidden{display:none}.app-content{max-width:none}.print-work-schedule .app-content>:not(.work-print-area),.print-work-schedule .module-grid,.print-work-schedule .print-hidden{display:none}.print-work-schedule .work-print-area{border:0;padding:0}.print-work-schedule .print-title{margin-bottom:8px;font-size:14px;display:flex}.print-work-schedule .gantt-scroll,.print-work-schedule .month-calendar-grid{border-radius:0;overflow:visible}.print-work-schedule .gantt-grid{min-width:0;grid-template-columns:36mm repeat(7,1fr)!important}.print-work-schedule .month-gantt-grid{grid-template-columns:36mm repeat(30,1fr)!important}.print-work-schedule .gantt-header,.print-work-schedule .gantt-task-name{min-height:32px;padding:4px;font-size:12px}.print-work-schedule .gantt-bar{min-height:24px;padding:2px 8px}.print-work-schedule .calendar-scroll{padding-bottom:0;overflow:visible}.print-work-schedule .resize-handle,.print-work-schedule .gantt-bar-expand{display:none}.print-work-schedule .month-calendar-grid{grid-template-columns:repeat(7,1fr)}.print-work-schedule .month-calendar-weekday,.print-work-schedule .month-calendar-cell{padding:4px;font-size:12px}.print-work-schedule .month-calendar-cell{min-height:28mm}.print-work-schedule .month-task-pill{padding:2px 4px;font-size:12px}.label-sheet{grid-template-columns:repeat(2,1fr);gap:8mm;margin:0}.machine-label{break-inside:avoid;border:1px solid #000;border-radius:0;min-height:38mm;padding:8mm}}
