:root{--bg: #f4f7fb;--panel: rgba(255, 255, 255, .86);--ink: #20272f;--muted: #6a7480;--line: rgba(170, 184, 198, .42);--accent: #4a8f96;--accent-dark: #2f6870;--danger: #b83f38;--success: #2d7c55;--sidebar: rgba(247, 250, 253, .76);--gold: #f0c66a;--glass: rgba(255, 255, 255, .58);--glass-strong: rgba(255, 255, 255, .82);--mac-blue: #6aa8ff;--mac-mint: #83d5c8;--mac-lavender: #b8a6ff;--mac-rose: #ff9fba;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 8%,rgba(106,168,255,.18),transparent 28%),radial-gradient(circle at 88% 12%,rgba(184,166,255,.16),transparent 30%),linear-gradient(135deg,#f7f9fc,#eef4f8 45%,#f8fbfa);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:282px minmax(0,1fr);min-height:100vh;padding:14px;gap:14px}.sidebar{position:sticky;top:14px;height:calc(100vh - 28px);border:1px solid rgba(255,255,255,.64);border-radius:22px;background:linear-gradient(145deg,#ffffffd1,#f5f9fc94),var(--sidebar);color:var(--ink);box-shadow:0 22px 50px #394a5c24,inset 0 1px #ffffffe6;backdrop-filter:blur(24px) saturate(1.45);-webkit-backdrop-filter:blur(24px) saturate(1.45);padding:20px 16px;display:flex;flex-direction:column;gap:24px;overflow:hidden}.brand{display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.66);border-radius:18px;padding:12px;background:#ffffff75;box-shadow:inset 0 1px #ffffffb3}.brand-mark{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--mac-blue),var(--mac-mint));color:#fff;box-shadow:0 12px 24px #4a8f963d;font-weight:800}.brand strong,.brand span{display:block}.brand span{color:var(--muted);font-size:13px}.nav{display:grid;gap:6px}.nav-link{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#4d5964;text-decoration:none;padding:11px 12px;border-radius:16px;font-weight:800;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}.nav-button{width:100%;border:0;background:transparent;cursor:pointer;text-align:left}.nav-link.active{background:#ffffffb8;color:var(--accent-dark);box-shadow:0 12px 26px #4a8f9621,inset 0 1px #ffffffd6}.nav-link:hover{background:#ffffff8a;color:var(--ink);transform:translateY(-1px)}.nav-accordion{display:grid;gap:0}.nav-divider{height:1px;margin:12px 8px;background:linear-gradient(90deg,transparent,rgba(74,143,150,.24),transparent)}.nav-accordion-trigger{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;border-radius:16px;padding:11px 12px;background:transparent;color:#4d5964;cursor:pointer;font-weight:800;text-align:left;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}.nav-accordion-trigger:hover,.nav-accordion-trigger.open{background:#ffffffa3;color:var(--accent-dark);box-shadow:0 12px 26px #4a8f961f,inset 0 1px #ffffffd6;transform:translateY(-1px)}.nav-item-label{display:flex;align-items:center;gap:10px;min-width:0}.nav-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:11px;background:linear-gradient(135deg,#6aa8ff38,#83d5c833);color:var(--accent-dark);font-size:12px;font-weight:900;box-shadow:inset 0 1px #fffc}.nav-icon.image-icon img{width:18px;height:18px;object-fit:contain}.nav-caret{display:inline-block;font-size:20px;line-height:1;transform:rotate(0);transition:transform .16s ease}.nav-accordion-trigger.open .nav-caret{transform:rotate(90deg)}.nav-submenu{display:grid;gap:4px;max-height:0;overflow:hidden;padding-left:13px;border-left:1px solid rgba(74,143,150,.16);margin-left:26px;transition:max-height .18s ease,padding-top .18s ease}.nav-submenu.open{max-height:280px;padding-top:6px}.nav-sublink{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:14px;padding:9px 12px;background:transparent;color:#586672;cursor:pointer;font-weight:750;text-align:left;transition:background .18s ease,color .18s ease,transform .18s ease}.nav-sublink:hover{background:#ffffff94;color:var(--accent-dark);transform:translate(2px)}.nav-sublink.active{background:#ffffffb3;color:var(--accent-dark);box-shadow:0 10px 22px #4a8f961f,inset 0 1px #ffffffdb}.nav-sublink.disabled{color:#58667285;cursor:default}.nav-sublink.disabled:hover{background:transparent;color:#58667285;transform:none}.nav-dot{width:7px;height:7px;border-radius:999px;background:linear-gradient(135deg,var(--mac-lavender),var(--mac-blue));box-shadow:0 0 12px #6aa8ff66}.nav-subicon{display:grid;place-items:center;width:14px;height:14px;flex:0 0 14px}.nav-subicon img{width:14px;height:14px;object-fit:contain}.tenant-box{margin-top:auto;border:1px solid rgba(255,255,255,.64);border-radius:18px;padding:12px;background:#ffffff7a;box-shadow:inset 0 1px #ffffffb8}.tenant-box span,.tenant-box strong{display:block}.tenant-box span{color:var(--muted);font-size:12px}.main{min-width:0;padding:14px 14px 28px}.topbar,.page-header,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar{margin-bottom:26px;color:var(--muted)}.language-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.language-toggle button{border:0;background:transparent;padding:9px 12px;cursor:pointer;color:var(--muted);font-weight:700}.language-toggle button.selected{background:var(--accent);color:#fff}.page-header{margin-bottom:18px}.page-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:12px;text-transform:uppercase}h1,h2{margin:0}h1{font-size:32px}h2{font-size:18px}.stats{min-width:120px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel);text-align:right}.stats span,.stats small{display:block}.stats span{font-size:26px;font-weight:800}.stats small{color:var(--muted)}.notice{border-radius:8px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);background:var(--panel)}.notice.success{color:var(--success);border-color:#2d7c5547}.notice.error{color:var(--danger);border-color:#b83f3847}.notice.warning{color:#9a6716;border-color:#d99c2757;background:#fff7e4c7}.list-layout{display:grid;gap:20px}.dashboard-grid{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(160px,.7fr) minmax(160px,.7fr) minmax(280px,1.6fr);gap:14px}.dashboard-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;min-height:120px;border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--panel);box-shadow:0 14px 32px #1e292714;cursor:pointer}.dashboard-card>span{display:block;color:var(--muted);font-size:13px;font-weight:800}.dashboard-card>strong{display:block;margin-top:8px;font-size:34px}.dashboard-card.active{border-color:#176f7361;outline:3px solid rgba(23,111,115,.12)}.danger-card>strong{color:var(--danger)}.success-card>strong{color:var(--success)}.loss-card>strong{color:var(--gold)}.reason-card p{margin:14px 0 0;color:var(--muted)}.reason-list{display:grid;gap:8px;margin-top:12px}.reason-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:0;background:transparent;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;color:var(--muted);cursor:pointer;padding:0;text-align:left}.reason-item strong{display:grid;place-items:center;min-width:28px;height:24px;border-radius:999px;background:#f8e8e6;color:var(--danger);font-size:12px}.reason-item.active span{color:var(--accent-dark);font-weight:800}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 14px 32px #1e292714}.form-panel{display:grid;gap:14px}.form-subsection{display:grid;gap:10px}.form-subsection>strong{color:var(--ink);font-size:13px}.checkbox-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.checkbox-option{display:flex;align-items:center;gap:8px;min-height:42px;border:1px solid var(--line);border-radius:8px;background:#ffffffb8;padding:9px 10px}.checkbox-option input{width:16px;height:16px;margin:0}.checkbox-option span,.empty-inline{color:var(--muted);font-size:13px}.date-picker{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#ffffffc2;color:var(--ink);padding:0 12px}.calendar-nav{display:flex;align-items:center;gap:8px}.today-button{min-height:42px;padding:0 14px}.scheduler-layout{display:grid;align-items:start;gap:18px;grid-template-columns:minmax(280px,360px) 1fr}.scheduler-builder{position:sticky;top:18px}.scheduler-calendar{min-width:0;overflow:hidden;padding:0}.weekly-calendar{overflow-x:auto}.weekly-grid{position:relative;display:grid;min-width:1220px;background:#ffffff70}.weekly-corner,.weekly-day,.weekly-line-label,.weekly-cell{border-right:1px solid rgba(135,149,150,.2);border-bottom:1px solid rgba(135,149,150,.2)}.weekly-corner{position:sticky;left:0;z-index:4;display:flex;align-items:center;min-height:70px;background:#f4f8f7f5;color:var(--muted);font-size:12px;font-weight:800;padding:12px;text-transform:uppercase}.weekly-day{display:grid;align-content:center;gap:4px;min-height:70px;border-top:0;border-left:0;background:#ffffffb8;color:var(--ink);cursor:pointer;padding:12px;text-align:left}.weekly-day span{color:var(--muted);font-size:12px;text-transform:capitalize}.weekly-day strong{font-size:16px}.weekly-day.selected{background:#def3eeeb;box-shadow:inset 0 -3px #347d706b}.weekly-line-label{position:sticky;left:0;z-index:3;display:grid;align-content:center;gap:4px;min-height:118px;background:#f4f8f7f5;padding:12px}.weekly-line-label strong,.weekly-line-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-line-label strong{display:flex;align-items:center;gap:8px}.line-color-dot{width:10px;height:10px;flex:0 0 auto;border-radius:999px}.weekly-line-label span{color:var(--muted);font-size:12px}.weekly-row-track{position:relative;display:grid;min-height:118px}.weekly-cell{min-height:118px;background:#ffffff85;padding:8px}.schedule-bar{position:absolute;z-index:2;display:grid;gap:4px;align-self:start;height:68px;left:0;right:0;border:1px solid rgba(52,125,112,.24);border-radius:999px;background:linear-gradient(90deg,#2773c2f5,#3b8acdf5,#599c88e6);box-shadow:0 8px 20px #1c363129;color:#fff;margin:0 8px;padding:9px 32px 9px 12px}.schedule-bar-content{display:grid;gap:2px;min-width:0}.schedule-bar strong,.schedule-bar span,.schedule-bar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-bar span,.schedule-bar small{color:#ffffffd1;font-size:12px;margin:0}.schedule-order-line{display:flex;align-items:center;gap:7px;min-width:0}.schedule-order-line b{color:#fff;font-size:12px;flex:0 0 auto}.schedule-order-line span{min-width:0}.schedule-order-line span:before{content:"|";color:#ffffff85;margin-right:7px}.schedule-order-line .schedule-order-name{color:#111827;font-weight:800}.schedule-order-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch;margin-top:12px;padding:12px;border:1px solid rgba(116,135,151,.18);border-radius:16px;background:#ffffff9e}.schedule-order-actions div{display:grid;gap:2px;grid-column:1 / -1;min-width:0}.schedule-order-actions span,.schedule-order-actions small{color:var(--muted);font-size:12px}.schedule-order-actions strong{color:var(--text)}.schedule-order-actions .primary-button,.schedule-order-actions .secondary-button{min-height:48px;width:100%;white-space:normal;line-height:1.15;text-align:center}.time-pair{display:grid;grid-template-columns:minmax(140px,.8fr) 1fr 1fr;gap:12px;align-items:end;padding:12px;border:1px solid rgba(116,135,151,.18);border-radius:12px;background:#ffffff94}.time-pair>strong{color:var(--text);padding-bottom:12px}.time-pair-error{border-color:#b83f3875;background:#fff0edc2}.field-error-message{grid-column:1 / -1;color:var(--danger);font-size:12px;font-weight:800}.work-log-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.work-log-summary div{display:grid;gap:4px;border:1px solid rgba(116,135,151,.18);border-radius:12px;background:#ffffffad;padding:10px}.work-log-summary span{color:var(--muted);font-size:12px;font-weight:750}.work-log-summary strong{color:var(--accent-dark);font-size:18px}.work-log-summary.project-summary{margin-top:12px}.process-summary-list{display:grid;gap:8px;margin-top:12px}.process-summary-list div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(116,135,151,.16);padding-top:8px}.process-summary-list span{color:var(--muted);font-weight:750}.process-summary-list strong{color:var(--text)}.production-time-panel{display:grid;gap:16px;margin-bottom:18px}.production-time-header{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.production-time-header div{display:grid;gap:4px;border:1px solid rgba(116,135,151,.18);border-radius:12px;background:#ffffff9e;padding:11px}.production-time-header span,.production-time-metrics span{color:var(--muted);font-size:12px;font-weight:750}.production-time-header strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.project-line-progress-card{display:grid;gap:8px;border:1px solid rgba(23,111,214,.2);border-radius:14px;background:linear-gradient(90deg,#e1f1ffd1,#e8f9f1c2);padding:12px}.project-line-progress-card>div:not(.work-progress-track){border:0;border-radius:0;background:transparent;padding:0}.project-line-progress-card>div:first-child:not(.work-progress-track){display:flex;align-items:center;justify-content:space-between;gap:12px}.project-line-progress-card strong{color:#176fd6;font-size:20px;font-weight:950}.project-line-progress-card p{margin:0;color:var(--muted);font-size:12px;font-weight:850}.production-time-summary{margin-top:0}.production-time-print-title{display:none}.production-time-table{display:grid;gap:8px}.production-project-groups{display:grid;gap:18px}.production-project-group{display:grid;gap:10px;border:1px solid rgba(116,135,151,.18);border-radius:14px;background:#ffffff6b;padding:12px}.production-project-group-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(116,135,151,.16);padding-bottom:10px}.production-project-group-header div{display:grid;gap:3px;min-width:0}.production-project-group-header strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.production-project-group-header .production-project-name{color:var(--ink);font-size:22px;font-weight:900}.production-project-code{width:fit-content;border-radius:999px;background:#e6f2f1;color:var(--accent-dark)!important;padding:4px 8px;font-size:12px;font-weight:900!important}.production-project-group-header span{color:var(--muted);font-size:12px;font-weight:750}.production-time-head,.production-time-row{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.35fr auto;gap:12px;align-items:center}.production-time-head{padding:0 12px;color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.production-time-row{border:1px solid rgba(116,135,151,.18);border-left:7px solid rgba(74,143,150,.3);border-radius:14px;background:#ffffffa3;padding:12px}.production-line-time-group{display:grid;gap:8px;margin-bottom:18px;border:1px solid rgba(116,135,151,.14);border-radius:18px;background:#f8fbfc85;padding:10px}.production-line-time-group+.production-line-time-group{margin-top:12px}.production-line-progress-row{display:grid;grid-template-columns:1.1fr 3.65fr;gap:14px;align-items:center;border:1px solid rgba(30,101,158,.22);border-left:7px solid #1f6fa8;border-radius:14px;background:linear-gradient(90deg,#e1f1ffc7,#e8f9f1b8);padding:12px}.production-line-progress-row>div{display:grid;gap:5px;min-width:0}.production-line-progress-row span{color:var(--muted);font-size:12px;font-weight:850}.production-line-progress-row strong{overflow:hidden;color:#176fd6;font-size:17px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.production-line-progress-bar div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.process-completion-mark{justify-self:end;min-width:96px;border:1px solid rgba(116,135,151,.22);border-radius:12px;background:#ffffffa8;padding:8px 10px;text-align:right}.process-completion-mark span{color:var(--muted);font-size:11px;font-weight:900}.process-completion-mark strong{color:#176fd6;font-size:18px;font-weight:950}.process-completion-mark.completed{border-color:#32b36b52;background:#e8f9f1d1}.process-completion-mark.completed span{color:#2f7a57}.process-completion-mark.below-target{border-color:#ca343f57;background:#ffe8eae6}.process-completion-mark.below-target span,.process-completion-mark.below-target strong{color:#b4232f}.production-line-subtotal-row{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.35fr auto;gap:12px;align-items:center;border:1px solid rgba(30,101,158,.28);border-left:7px solid #1f6fa8;border-radius:14px;background:linear-gradient(90deg,#d6ebfaf5,#e2f7efe6);margin-top:4px;padding:12px;box-shadow:inset 0 0 0 1px #ffffff9e,0 8px 18px #1f6fa81a}.production-line-subtotal-row div{display:grid;gap:4px;min-width:0}.production-line-subtotal-row span{color:var(--muted);font-size:12px;font-weight:800}.production-line-subtotal-row strong{overflow:hidden;color:#1f5f9f;font-size:15px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.line-subtotal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.production-time-row.editable-row{cursor:pointer}.production-time-row.editable-row:hover{border-color:#347d7057;box-shadow:0 12px 26px #1c36311a;transform:translateY(-1px)}.production-time-row div{display:grid;gap:4px;min-width:0}.production-time-row strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.production-time-row span{color:var(--muted);font-size:12px}.production-time-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.production-time-metrics strong{color:var(--accent-dark)}.process-progress-metrics{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;column-gap:12px;row-gap:8px}.finalized-row{border-color:#32b36b5c;background:linear-gradient(90deg,#32b36b24,#ffffffb8 42%)}.work-process-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px}.work-process-actions .primary-button,.work-process-actions .secondary-button{min-width:76px}.line-work-progress{display:grid;gap:8px;margin-top:14px;border:1px solid rgba(23,111,214,.18);border-radius:14px;background:linear-gradient(90deg,#e1f1ffc7,#e8f9f1b8);padding:12px}.line-work-progress div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.line-work-progress span,.line-work-progress small{color:var(--muted);font-size:12px;font-weight:800}.line-work-progress strong{color:#176fd6;font-size:18px;font-weight:900}.work-project-cell strong{color:#176fd6;font-size:19px;font-weight:900;letter-spacing:0}.work-project-cell span{color:#0f5db8;font-size:18px;font-weight:900;line-height:1.1}.work-progress-bar{grid-column:1 / -1;display:grid;gap:6px;min-width:0}.work-progress-bar span,.work-progress-bar strong{color:#176fd6;font-size:13px;font-weight:900}.work-progress-track{height:10px;overflow:hidden;border-radius:999px;background:#176fd624;box-shadow:inset 0 0 0 1px #176fd61f}.work-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#176fd6,#2aa8ef,#32b36b);box-shadow:0 6px 16px #32b36b47}.work-admin-filters{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:14px}.work-admin-table .production-time-head,.work-admin-table .production-time-row{grid-template-columns:.86fr 1.06fr .92fr .96fr 1.55fr auto}.work-admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.work-admin-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px}.over-target-row{border-color:#b83f3859}.over-target-text,.over-target-text strong{color:var(--danger)!important}.danger-input{border-color:var(--danger)!important;color:var(--danger)}.field-warning{color:var(--danger)}.status-chip.in-progress{background:#d99c271f;color:#9a6716}.schedule-bar button{position:absolute;top:10px;right:8px;width:22px;height:22px;border:0;border-radius:999px;background:#ffffff38;color:#fff;cursor:pointer;font-weight:800}.order-gantt,.gantt-empty{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.gantt-empty{color:var(--muted);font-size:13px}.schedule-metrics{display:grid;gap:10px;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.metric-total{display:grid;gap:2px;border:1px solid rgba(135,149,150,.18);border-radius:8px;background:#ffffffa8;padding:12px}.metric-total span,.metric-total small{color:var(--muted);font-size:12px}.metric-total strong{color:var(--ink);font-size:24px}.metric-lines{display:grid;gap:8px}.metric-line{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(135,149,150,.16);border-radius:8px;background:#ffffff80;padding:9px 10px}.metric-line span{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:12px}.metric-line span i{width:9px;height:9px;flex:0 0 auto;border-radius:999px}.metric-line strong{color:var(--ink);flex:0 0 auto;font-size:12px}.order-gantt{display:grid;gap:10px}.order-gantt-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.order-gantt-header div{display:grid;gap:2px}.order-gantt-header span,.order-gantt-header small{color:var(--muted);font-size:12px}.order-gantt-header strong{color:var(--ink)}.gantt-scale,.gantt-row{display:grid;min-width:680px}.order-gantt{overflow-x:auto}.gantt-scale{color:var(--muted);font-size:11px;gap:4px}.gantt-scale span{text-align:center}.gantt-rows{display:grid;gap:8px}.gantt-row{position:relative;align-items:stretch;gap:4px;min-height:54px}.gantt-label{display:grid;align-content:center;gap:2px;border:1px solid rgba(135,149,150,.2);border-radius:8px;background:#ffffffad;padding:8px}.gantt-label strong,.gantt-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-label span{color:var(--muted);font-size:11px}.gantt-day-cell{min-height:54px;border:1px solid rgba(135,149,150,.16);border-radius:8px;background:#ffffff6b;padding:4px}.gantt-bar{display:grid;gap:2px;height:100%;border-radius:7px;background:#347d7024;color:var(--ink);padding:7px}.gantt-bar strong,.gantt-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-bar strong{font-size:11px}.gantt-bar span,.gantt-pending{color:var(--muted);font-size:11px}.gantt-pending{position:absolute;top:0;right:0;bottom:0;left:144px;display:grid;place-items:center;border:1px dashed rgba(135,149,150,.34);border-radius:8px;pointer-events:none}.calendar-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:14px;padding:24px;text-align:center}.weekly-empty{left:170px;top:70px}@media(max-width:980px){.scheduler-layout{grid-template-columns:1fr}.scheduler-builder{position:static}}.form-section{display:grid;gap:10px}.section-title{margin:0;color:var(--ink);font-size:13px;font-weight:850}.field-grid,.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.date-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.image-picker-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.image-preview{display:grid;place-items:center;overflow:hidden;border:2px solid rgba(23,111,115,.22);border-radius:999px;background:#f1f8f7;color:var(--accent-dark);font-weight:900}.image-preview img,.project-avatar img,.unit-icon img{width:100%;height:100%;object-fit:cover}.project-preview{width:74px;height:74px}.icon-preview{width:54px;height:54px}.image-picker-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-button{display:inline-flex;width:fit-content;border-radius:8px;padding:9px 12px;background:#e9efec;color:var(--ink);cursor:pointer;font-size:13px;font-weight:800}.file-button input{display:none}.delay-summary{display:flex;align-items:center;gap:10px;width:fit-content;border:1px solid rgba(184,63,56,.22);border-radius:8px;padding:10px 12px;background:#fff6f4;color:var(--danger)}.delay-summary strong{font-size:20px}.delay-summary span{color:var(--danger);font-size:13px;font-weight:800}label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;color:var(--ink);background:#fff}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:3px solid rgba(23,111,115,.15)}input[aria-invalid=true]{border-color:var(--danger)}input[aria-invalid=true]:focus{outline-color:#b83f3829}.field-error{color:var(--danger);font-size:12px;font-weight:750}.field-help{color:var(--muted);font-size:12px;font-weight:650}.primary-button{border:0;border-radius:8px;padding:11px 14px;background:var(--accent);color:#fff;font-weight:800;cursor:pointer}.primary-button:hover{background:var(--accent-dark)}.primary-button:disabled{opacity:.62;cursor:not-allowed}.secondary-button:disabled,.danger-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button,.danger-button{border:0;border-radius:8px;padding:11px 14px;font-weight:800;cursor:pointer}.secondary-button{background:#e9efec;color:var(--ink)}.danger-button{background:#f8e8e6;color:var(--danger)}.compact{padding:8px 10px;font-size:13px;white-space:nowrap}.approve-icon-button{display:inline-grid;place-items:center;width:34px;height:34px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;font-size:18px;font-weight:900;line-height:1}.approve-icon-button:hover{background:var(--accent-dark)}.approve-icon-button:disabled{opacity:.62;cursor:not-allowed}.button-row,.table-actions{display:flex;gap:10px;flex-wrap:wrap}.type-item .table-actions{flex-shrink:0;flex-wrap:nowrap}.status-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0 16px;width:fit-content;max-width:100%;border:1px solid rgba(255,255,255,.66);border-radius:18px;padding:6px;background:linear-gradient(145deg,#ffffffc7,#f5f9fc85);box-shadow:0 16px 34px #394a5c1f,inset 0 1px #ffffffe0;backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35)}.status-tab{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:8px;min-height:42px;border:0;border-radius:14px;padding:10px 13px 14px;background:transparent;color:#61707c;cursor:pointer;font-weight:750;overflow:hidden;transition:color .22s ease,transform .22s ease,background .22s ease}.status-tab:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:#ffffffc7;box-shadow:0 12px 26px #4a8f9621,inset 0 1px #ffffffe6;opacity:0;transform:scaleX(.72);transform-origin:center;transition:opacity .22s ease,transform .22s ease}.status-tab:after{content:"";position:absolute;left:24%;right:24%;bottom:5px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--mac-blue),var(--mac-mint));box-shadow:0 0 12px #6aa8ff6b,0 0 24px #83d5c847;opacity:0;transform:translateY(8px) scaleX(.4);transition:opacity .24s ease,transform .24s ease}.status-tab:hover{background:#ffffff8f;color:var(--ink);transform:translateY(-1px)}.tab-icon{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#6aa8ff24;color:inherit;font-size:11px;font-weight:950;line-height:1;transition:background .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease}.status-tab strong{min-width:24px;border-radius:999px;padding:2px 7px;background:#ffffff94;color:inherit;font-size:12px;text-align:center;transition:background .2s ease,color .2s ease}.status-tab.active{color:var(--accent-dark);transform:translateY(-1px)}.status-tab.active:before{opacity:1;transform:scaleX(1)}.status-tab.active:after{opacity:1;transform:translateY(0) scaleX(1)}.status-tab.active strong{background:#4a8f961f;color:var(--accent-dark)}.status-tab.active .tab-icon{background:linear-gradient(135deg,#6aa8ff3d,#83d5c838);box-shadow:0 0 18px #6aa8ff3d;color:var(--accent-dark);transform:translateY(-1px)}.status-select{min-width:150px;border-color:#176f733d;background:#f6fbfa;color:var(--accent-dark);font-size:13px;font-weight:800;padding:8px 9px}.active-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;border:1px solid rgba(23,111,115,.22);border-radius:8px;padding:10px 12px;background:#f0f8f7;color:var(--accent-dark);font-weight:800}.active-filter button{border:0;border-radius:8px;padding:7px 10px;background:#dcecea;color:var(--accent-dark);cursor:pointer;font-weight:800}.icon-button{width:36px;height:36px;border:0;border-radius:8px;background:#e9efec;color:var(--ink);cursor:pointer;font-size:18px;font-weight:800;line-height:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:24px;background:#111b196b}.modal{width:min(860px,100%);max-height:min(860px,calc(100vh - 48px));overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 24px 70px #111b193d;padding:18px}.compact-modal{width:min(560px,100%)}.project-view-modal{width:min(920px,100%)}.large-modal{width:min(980px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.confirmation-modal{width:min(420px,100%);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 24px 70px #111b193d;padding:24px;text-align:center}.confirmation-modal p{margin:10px 0 20px;color:var(--muted)}.master-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.sort-tabs{position:relative;display:inline-flex;overflow:hidden;gap:4px;border:1px solid rgba(255,255,255,.66);border-radius:18px;padding:6px;background:linear-gradient(145deg,#ffffffc7,#f5f9fc85);box-shadow:0 12px 26px #394a5c1f,inset 0 1px #ffffffe0;backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35)}.sort-tabs button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;border:0;border-radius:14px;padding:9px 12px 13px;background:transparent;color:#61707c;font-weight:850;cursor:pointer;overflow:hidden;transition:color .2s ease,transform .2s ease,background .2s ease,box-shadow .2s ease}.sort-tabs button:last-child{border-right:0}.sort-tabs button:hover{background:#ffffff8f;color:var(--ink);transform:translateY(-1px)}.sort-tabs button.active{background:#ffffffc7;box-shadow:0 12px 26px #4a8f9621,inset 0 1px #ffffffe6;color:var(--accent-dark);transform:translateY(-1px)}.sort-tabs button.active:after{content:"";position:absolute;left:24%;right:24%;bottom:5px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--mac-blue),var(--mac-mint));box-shadow:0 0 12px #6aa8ff6b,0 0 24px #83d5c847}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.type-list{display:grid;gap:8px;margin-top:18px}.type-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fbfcfb;cursor:pointer;transition:background .16s ease,border-color .16s ease}.type-item:hover{border-color:#176f733d;background:#f6fbfa}.type-item strong{overflow-wrap:anywhere}.customer-list-info{display:grid;gap:5px;min-width:0}.customer-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.customer-actions{display:grid;grid-template-columns:auto auto;flex-wrap:nowrap;justify-content:end;white-space:nowrap}.customer-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.customer-code,.status-chip{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:850}.customer-code{background:#e6f2f1;color:var(--accent-dark)}.status-chip{background:#e6f2ed;color:var(--success)}.status-chip.scheduled{background:#dff3e8;color:#2d7c55}.status-chip.pending-schedule{background:#fff3d8;color:#8b6414}.status-chip.inactive{background:#edf3f2;color:var(--muted)}.unit-title{display:flex;align-items:center;gap:10px}.unit-icon{display:grid;place-items:center;overflow:hidden;width:36px;height:36px;border-radius:999px;background:#f1f8f7;color:var(--accent-dark);font-size:13px;font-weight:900}.unit-select-row{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px}.quantity-meta{display:inline-flex;align-items:center;gap:6px}.inline-unit-icon{display:inline-grid;place-items:center;overflow:hidden;width:18px;height:18px;border-radius:999px;background:#f1f8f7;color:var(--accent-dark);font-size:10px;font-weight:900}.inline-unit-icon img{width:100%;height:100%;object-fit:cover}.stacked-list{display:grid;gap:10px}.stacked-item{display:grid;grid-template-columns:54px minmax(220px,1fr) minmax(150px,auto) minmax(160px,auto) auto;align-items:center;gap:16px;min-height:86px;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#fff;box-shadow:0 10px 24px #1e29270d;cursor:pointer;transition:background .16s ease,transform .16s ease}.stacked-item:hover{background:#fbfcfb}.project-avatar{display:grid;place-items:center;overflow:hidden;width:46px;height:46px;border:2px solid rgba(23,111,115,.24);border-radius:999px;background:#f1f8f7;color:var(--accent-dark);font-size:13px;font-weight:900}.project-title-row,.project-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-title-row strong{color:var(--ink);font-size:15px}.project-title-row span{color:var(--accent-dark);font-size:13px;font-weight:850}.project-meta-row{margin-top:5px}.project-meta-row span{color:var(--muted);font-size:12px}.project-meta-row span+span:before{content:"•";margin-right:8px;color:#a9b4b0}.stacked-badges,.stacked-status,.stacked-actions{display:grid;gap:6px;justify-items:end}.stacked-actions{grid-template-columns:auto auto;align-items:center}.offered-item .stacked-actions{grid-template-columns:auto auto auto}.priority-badge,.delay-badge{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850}.priority-badge.low{background:#edf3f2;color:var(--muted)}.priority-badge.normal{background:#e6f2f1;color:var(--accent-dark)}.priority-badge.high{background:#fff3d8;color:#8b6414}.priority-badge.urgent{background:#fff0ed;color:var(--danger)}.delay-badge{background:#e6f2ed;color:var(--success)}.delay-badge.delayed{background:#fff0ed;color:var(--danger)}.production-order-item.scheduled{border-color:#2d7c5547;background:linear-gradient(90deg,#dff3e8b3,#ffffffc7 38%)}.production-order-item.pending-schedule{border-color:#d99c2757;background:linear-gradient(90deg,#fff3d8d1,#ffffffc7 38%)}.status-hint{color:var(--success);font-size:12px;font-weight:850}.status-hint.delayed{color:var(--danger)}.confirmation-icon{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 14px;border-radius:999px;background:#e6f2ed;color:var(--success);font-size:24px;font-weight:900}.project-view-hero{display:grid;grid-template-columns:86px minmax(0,1fr) minmax(120px,auto);align-items:center;gap:16px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfb}.project-view-image{display:grid;place-items:center;overflow:hidden;width:72px;height:72px;border:2px solid rgba(23,111,115,.24);border-radius:999px;background:#f1f8f7;color:var(--accent-dark);font-weight:900}.project-view-image img{width:100%;height:100%;object-fit:cover}.project-view-summary{display:grid;gap:5px}.project-view-summary strong{font-size:18px}.project-view-summary span,.project-view-metric span{color:var(--muted);font-size:13px}.project-view-metric{display:grid;justify-items:end;gap:2px}.project-view-metric strong{color:var(--danger);font-size:30px}.master-view-hero{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfb}.master-view-icon{display:grid;place-items:center;overflow:hidden;width:58px;height:58px;border:2px solid rgba(23,111,115,.24);border-radius:999px;background:#f1f8f7;color:var(--accent-dark);font-size:18px;font-weight:900}.master-view-icon img{width:100%;height:100%;object-fit:cover}.master-view-summary{display:grid;gap:6px;min-width:0}.master-view-summary strong{overflow-wrap:anywhere;font-size:18px}.master-view-summary span{color:var(--muted);font-size:13px}.progress-line{position:relative;margin-top:22px;padding:8px 10px 0}.progress-track{position:absolute;top:21px;left:44px;right:44px;height:5px;overflow:hidden;border-radius:999px;background:#e7eeeb}.progress-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width .22s ease}.progress-line.rejected .progress-track{background:#f8e8e6}.progress-line.rejected .progress-fill{width:100%!important;background:var(--danger)}.progress-markers{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.progress-marker{display:grid;justify-items:center;gap:8px;color:var(--muted);text-align:center}.progress-marker span{display:grid;place-items:center;width:28px;height:28px;border:3px solid #ffffff;border-radius:999px;background:#edf3f2;box-shadow:0 0 0 1px var(--line);color:var(--muted);font-size:12px;font-weight:900}.progress-marker strong{font-size:13px}.progress-marker.done{color:var(--success)}.progress-marker.done span{background:var(--success);box-shadow:0 0 0 1px #2d7c5547;color:#fff}.progress-marker.current{color:var(--accent-dark)}.progress-marker.current span{width:34px;height:34px;margin-top:-3px;background:var(--accent);box-shadow:0 0 0 5px #176f7324;color:#fff}.progress-marker.rejected{color:var(--danger)}.progress-marker.rejected span{background:var(--danger);box-shadow:0 0 0 5px #b83f3824;color:#fff}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.readonly-top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.compact-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.detail-item{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:#fff}.detail-item span{color:var(--muted);font-size:12px;font-weight:750}.detail-item strong{color:var(--ink);font-size:14px}.read-only-note{display:grid;gap:6px;margin-top:14px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfb}.read-only-note p{margin:0;color:var(--muted)}.table-wrap{overflow:auto}.date-stack{display:grid;gap:3px}.delay-cell{display:grid;gap:4px}.date-stack span,.delay-cell span,.delay-text{color:var(--muted);font-size:12px}.delay-text{margin-top:6px;color:var(--danger);font-weight:800}.delay-days{display:inline-block;width:fit-content;margin-top:5px;border-radius:999px;padding:4px 8px;background:#fff0ed;color:var(--danger);font-size:12px}.delay-days.on-time{background:#e6f2ed;color:var(--success)}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}td span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.pill{display:inline-flex;width:fit-content;border-radius:999px;background:#e6f2f1;color:var(--accent-dark);padding:5px 9px;font-weight:800;font-size:12px}.empty{border:1px dashed var(--line);border-radius:8px;padding:18px;color:var(--muted);background:#fbfcfb}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.dashboard-grid{grid-template-columns:1fr}.stacked-item{grid-template-columns:48px minmax(0,1fr);align-items:start}.stacked-badges,.stacked-status,.stacked-actions{grid-column:2;justify-items:start}.stacked-actions{grid-template-columns:auto auto}.project-view-hero,.master-view-hero,.detail-grid,.readonly-top-grid,.compact-detail-grid{grid-template-columns:1fr}.progress-markers{gap:4px}.progress-marker strong{font-size:11px}.progress-track{left:28px;right:28px}.project-view-metric{justify-items:start}}@media(max-width:640px){.main{padding:18px}.page-header,.topbar{align-items:stretch;flex-direction:column}.page-actions{justify-content:stretch}.page-actions .primary-button,.page-actions .secondary-button,.page-actions .stats{width:100%}.inline-form,.field-grid,.date-grid,.work-admin-filters,.work-admin-table .production-time-head,.work-admin-table .production-time-row{grid-template-columns:1fr}}@media print{@page{size:letter landscape;margin:.28in}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff!important;color:#1f2a33!important;font-size:10px}.app-shell{display:block;min-height:auto;background:#fff!important}.sidebar,.topbar,.page-actions,.production-time-project-filter,.print-report-button,.modal-backdrop{display:none!important}.main{display:block;width:100%;padding:0!important;overflow:visible}.page-header{display:none}.production-time-print-title{display:grid;grid-template-columns:1fr auto;gap:2px 16px;align-items:end;margin-bottom:8px;border-bottom:2px solid #176fd6;padding-bottom:6px}.production-time-print-title p,.production-time-print-title span{margin:0;color:#5f6b78;font-size:9px;font-weight:800;text-transform:uppercase}.production-time-print-title h1{grid-column:1;color:#1f2a33;font-size:18px;line-height:1}.production-time-print-title span{grid-column:2;grid-row:1 / span 2}.panel,.production-time-panel,.production-project-group,.production-line-time-group{break-inside:avoid;box-shadow:none!important}.panel{border:1px solid #d8e3ea;border-radius:10px;background:#fff!important;padding:8px!important}.production-time-panel{gap:7px;margin-bottom:8px}.section-heading h2{font-size:13px}.section-heading{margin-bottom:0}.production-time-row,.production-line-subtotal-row,.production-line-progress-row,.project-line-progress-card,.work-log-summary>div,.production-time-header div{break-inside:avoid;box-shadow:none!important}.production-time-header{gap:6px}.production-time-header div,.work-log-summary>div{border-color:#d8e3ea;border-radius:8px;padding:6px 7px}.production-time-header span,.work-log-summary span,.production-time-metrics span,.production-time-head,.production-line-subtotal-row span,.production-line-progress-row span,.project-line-progress-card p{font-size:8.5px}.production-time-header strong,.work-log-summary strong{font-size:11px}.project-line-progress-card{gap:5px;border-radius:9px;padding:7px}.project-line-progress-card strong{font-size:14px}.work-progress-track{height:7px}.production-time-table{gap:4px}.production-line-time-group{gap:4px;margin-bottom:7px;border-radius:10px;padding:5px}.production-line-time-group+.production-line-time-group{margin-top:5px}.production-line-progress-row{grid-template-columns:1fr 3.2fr;gap:8px;border-radius:9px;padding:6px 8px}.production-time-row,.production-line-subtotal-row{border-radius:9px;padding:6px 8px}.production-time-head,.production-time-row,.production-line-subtotal-row{grid-template-columns:1.15fr .9fr 1fr 1.25fr .68fr;gap:7px}.production-time-header,.work-log-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.production-time-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.production-time-row strong,.production-line-subtotal-row strong,.production-line-progress-row strong{font-size:10.5px}.production-time-row span{font-size:8.5px}.production-time-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 6px}.process-completion-mark{min-width:58px;border-radius:8px;padding:5px 6px}.process-completion-mark span{font-size:8px}.process-completion-mark strong{font-size:12px}.production-line-subtotal-row{margin-top:1px}.line-subtotal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}h1,h2,h3,p{break-after:avoid}.secondary-button,.primary-button,.danger-button,.icon-button{display:none!important}}
