:root{--accent:#28a8e8;--blue:#14516f;--ink:#203544;--muted:#647783;--line:#d9e2e8;--header:#eaf2f7;--paper:#fff;--total:#edf0f2;--editable:#fffbed;--red:#b53036;--green:#16704c}
*{box-sizing:border-box}body{margin:0;background:#f3f6f8;color:var(--ink);font:14px/1.5 'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-decoration:none}button{cursor:pointer}input,select,textarea{border:1px solid #c8d5dd;border-radius:5px;padding:9px 10px;color:var(--ink);background:white;max-width:100%}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:disabled,textarea:disabled{opacity:1;color:var(--ink);-webkit-text-fill-color:var(--ink);background:transparent;border-color:transparent}button:disabled{opacity:.5;cursor:default}.navbar{background:white;min-height:84px;padding:17px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);box-shadow:0 2px 12px #17374806}.brand{display:flex;align-items:center;gap:21px;color:var(--ink)}.brand-logo{display:inline-flex;align-items:center;flex-shrink:0}.brand-logo img{height:40px;width:auto;object-fit:contain;max-width:180px}.logo-fallback{display:none;font-weight:800;font-size:24px;color:var(--blue)}.logo-missing .logo-fallback{display:inline}.brand-title{font-size:16px;font-weight:650;letter-spacing:-.3px}.nav-controls{display:flex;gap:17px;align-items:center}.date-control{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.date-control input{padding:7px;font-weight:600}.badge{font-size:10px;letter-spacing:.7px;background:#e6f4fb;color:var(--blue);padding:5px 7px;border-radius:4px;margin-left:7px}.identity{white-space:nowrap}.nav-link{font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid #c8d7e1;border-radius:6px;padding:9px 15px;color:var(--blue);background:#fff;font-size:13px;font-weight:600;white-space:nowrap}.button:hover{background:#eef6fb}.button.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 2px 3px #16374b12}.button.primary:hover{background:#0d4059}.button.save{padding:6px 13px;background:#fff}.button.quiet{background:transparent}.button.danger{color:var(--red)}.container{max-width:1820px;padding:28px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:4px 0 26px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.8px;color:var(--blue);margin:0 0 8px}h1{font-size:29px;font-weight:650;letter-spacing:-.8px;line-height:1.2;margin:0 0 8px}h2{font-size:16px;font-weight:650;margin:0}.muted{color:var(--muted);margin:0}.page-actions{display:flex;gap:10px}.report-status{display:flex;align-items:center;gap:24px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding:14px 0 19px}.report-status span:last-child{margin-left:auto}.report-status strong{color:var(--ink);margin-left:8px}.status-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:6px}.panel{background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:24px;overflow:hidden;box-shadow:0 2px 5px #263d4c03}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 20px}.section-heading>div:first-child{display:flex;gap:12px;align-items:center}.section-number{font-size:11px;font-weight:700;color:var(--blue);border:1px solid #d6e8f3;border-radius:4px;background:#f0f7fb;padding:3px 6px}.section-actions{display:flex;align-items:center;gap:13px}.edit-hint,.readonly-badge{font-size:11px;color:var(--muted)}.readonly-badge{background:#f0f3f5;padding:4px 9px;border-radius:4px}.table-scroll{overflow:auto;max-height:650px}table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;font-variant-numeric:tabular-nums}th,td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 12px;text-align:right;vertical-align:middle;min-width:105px}th:last-child,td:last-child{border-right:none}thead th{background:var(--header);color:var(--blue);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.4px;position:sticky;top:0;z-index:2;border-top:1px solid var(--line)}th:first-child{text-align:left;min-width:190px}tbody th{font-weight:650;background:white}td{background:white}tr.total td,tr.total th,td.total,th.total{background:var(--total);font-weight:750}td input{width:100%;min-width:80px;border:1px solid transparent;border-radius:3px;padding:4px 6px;text-align:right;background:var(--editable);font-size:12px}td:has(input){padding:4px 5px}td input[type=text]{text-align:left}td input:disabled{text-align:right}td input[type=text]:disabled{text-align:left}td textarea{resize:vertical;min-height:48px;width:100%;display:block;background:var(--editable);border-color:transparent;line-height:1.5;font-size:12px}.production-table{min-width:1570px}.production-table th:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 #cbd6dd}.production-table thead th:first-child{z-index:3}.production-table th:not(:first-child){width:112px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.audit{font-size:11px;color:var(--muted);padding:10px 20px;background:#fcfdfe}.capacity-bar{display:flex;align-items:center;gap:15px;padding:0 20px 15px;font-size:12px}.capacity-bar label{display:flex;gap:10px;align-items:center;font-weight:600}.capacity-bar input{width:140px;padding:6px 10px;background:var(--editable);text-align:right}.remarks-table th:first-child{width:230px}.remarks-table thead th:nth-child(2){text-align:left}.remarks-table td{padding:5px 10px}.add-row{padding:12px 20px}.page-footer{display:flex;justify-content:space-between;padding:6px 0 20px;color:var(--muted);font-size:11px}.print-header,.print-remark,.print-value{display:none}.notice{padding:12px 16px;background:#eaf6ef;border:1px solid #b8dbc7;border-radius:6px;margin-bottom:20px}.notice.error{background:#fff1f1;border-color:#e9b9b9;color:var(--red)}#toast{display:none;position:fixed;bottom:25px;right:25px;max-width:450px;padding:15px 20px;box-shadow:0 8px 30px #15344625;border-radius:8px;background:var(--blue);color:#fff;z-index:10}#toast.show{display:block}#toast.error{background:var(--red)}.login-layout{min-height:calc(100vh - 84px);display:flex;justify-content:center;align-items:center;flex-direction:column;background:radial-gradient(ellipse at 15% 10%,#e4f2fb,transparent 60%)}.login-card{width:430px;max-width:100%;padding:40px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 50px #1e4c6a0c;text-align:center}.login-logo{margin:0 auto 30px;justify-content:center;max-width:220px}.login-logo img{height:auto;max-width:220px;width:100%}.login-card h1{font-size:25px}.login-form{margin-top:28px;text-align:left;display:grid;gap:18px}.login-form label{display:grid;gap:7px;font-size:12px;font-weight:600}.login-form input{width:100%;padding:11px}.login-form button{margin-top:5px;padding:12px}.login-note{font-size:11px;color:var(--muted);margin:24px 0 0}.user-form{padding:20px;display:flex;align-items:end;gap:16px;border-top:1px solid var(--line);flex-wrap:wrap}.user-form label{display:grid;gap:5px;font-size:12px;flex:1;min-width:150px}.error-panel{padding:30px}
@media(max-width:1100px){.navbar{flex-wrap:wrap;gap:14px}.brand-title{font-size:14px}.nav-controls{margin-left:auto}.page-heading{align-items:flex-start;flex-direction:column}.container{padding:20px}.report-status{flex-wrap:wrap;gap:8px 20px}.report-status span:last-child{margin-left:0}}
@media(max-width:600px){.navbar{padding:15px}.brand{gap:12px}.brand-title span:not(.title-dash){display:block;font-size:11px}.title-dash{display:none}.brand-logo img{max-width:110px;height:auto;max-height:40px}.nav-controls{flex-wrap:wrap;justify-content:flex-start;margin:0;gap:12px}.container{padding:14px}.identity{font-size:12px}h1{font-size:25px}.page-actions{flex-wrap:wrap}.section-heading{padding:12px;align-items:flex-start}.section-heading h2{font-size:14px}.section-actions{flex-direction:column;gap:5px}.section-number{display:none}.capacity-bar{flex-wrap:wrap;padding:0 12px 12px}.login-card{padding:30px 23px}.report-status span:last-child{display:none}}
@media print{@page{size:A3 landscape;margin:12mm}body{background:white;font-size:9px;color:#172a38;-webkit-print-color-adjust:exact;print-color-adjust:exact}.navbar,.page-heading,.report-status,.section-actions,.readonly-badge,.add-row,.page-footer,#toast,.notice{display:none!important}.container{max-width:none;padding:0}.print-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--accent);padding-bottom:15px;margin-bottom:18px}.print-header>div{text-align:right}.print-header h1{font-size:22px}.print-header p{margin:3px 0}.print-header img{height:40px;width:auto;max-width:180px}.panel{border-radius:0;box-shadow:none;margin-bottom:14px;overflow:visible;break-inside:auto}.table-scroll{overflow:visible;max-height:none}.section-heading{padding:8px 10px;break-after:avoid}.section-heading h2{font-size:12px}.section-number{font-size:9px}table{font-size:9px;width:100%;table-layout:fixed}.production-table{min-width:0}.production-table th:not(:first-child){width:auto}th,td{min-width:0!important;padding:5px 6px;overflow-wrap:anywhere}th:first-child{width:135px}thead{display:table-header-group}thead th{font-size:8px;position:static!important}tbody th{position:static!important}tr{break-inside:avoid}input,textarea,select{display:none!important}.print-remark,.print-value{display:block;white-space:pre-wrap;overflow-wrap:anywhere}.capacity-bar{font-size:10px;padding:5px 10px}.capacity-bar .print-value{display:inline}.audit{font-size:8px;padding:5px 10px}.remarks-table th:first-child{width:180px}.button{display:none!important}}

[hidden]{display:none!important}
.tab-bar{display:flex;gap:26px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line)}.tab-bar a{padding:13px 4px;color:var(--muted);font-weight:650;border-bottom:3px solid transparent}.tab-bar a.active{color:var(--blue);border-bottom-color:var(--accent)}.notice.warning,.plan-not_yet{background:#fff8df;border-color:#ead99e;color:#755b13}.plan-open{background:#eaf6ef;border-color:#b8dbc7;color:#14623d}.plan-locked{background:#fff1f1;border-color:#e9b9b9;color:var(--red)}.plan-source{display:block;font-size:8px;font-weight:500;color:var(--blue);white-space:nowrap}.plan-note{margin-bottom:15px}.plan-actions{display:flex;gap:10px;flex-wrap:wrap}.plan-table{min-width:1750px}.plan-table th:first-child{position:sticky;left:0;z-index:1;min-width:150px;box-shadow:1px 0 #cbd6dd}.plan-table thead th:first-child{z-index:3}.plan-table thead th{height:100px;vertical-align:top}.plan-table th:nth-child(2),.plan-table td:nth-child(2){min-width:55px;width:55px}.plan-table tbody td{height:38px}.plan-table td input[type=checkbox]{width:17px;min-width:17px;height:17px;accent-color:var(--blue)}.off-cell{text-align:center}.fill-button{display:block;margin:9px auto 0;border:1px solid #bfd8e7;border-radius:4px;background:white;color:var(--blue);font-size:10px;padding:5px 6px}.plan-table input:disabled{background:#f0f2f4;color:#697982}.plan-table .off-day td,.plan-table .off-day th{background:#e9edf0;color:#71818b}.plan-table .off-day input{background:transparent}.plan-scroll{max-height:680px}.plan-table tfoot th,.plan-table tfoot td{font-weight:750;background:var(--total)}.history-help{padding:10px 20px;margin:0}.history-snapshot{padding:15px 20px}.history-snapshot summary{cursor:pointer;font-weight:600;margin-bottom:12px}.history-snapshot table{min-width:1500px}.unlock-reason{flex:3!important}dialog{max-width:480px;width:calc(100% - 40px);border:1px solid var(--line);border-radius:12px;padding:25px;color:var(--ink);box-shadow:0 20px 60px #1235}dialog::backdrop{background:#10293888}dialog form{display:grid;gap:20px}dialog label{display:grid;gap:6px}dialog input{width:100%}.from-plan-note{padding:0 20px 12px;font-size:11px;color:var(--muted)}
@media(max-width:600px){.tab-bar{padding:0 15px}.plan-actions{gap:6px;justify-content:flex-end}.plan-actions .button{font-size:11px;padding:7px}.section-heading:has(.plan-actions){flex-direction:column}.plan-actions{justify-content:flex-start}.plan-source{font-size:7px}}
@media print{.tab-bar,.fill-button,.plan-actions{display:none!important}.plan-table{min-width:0}.plan-source{font-size:6px}.plan-table thead th{height:auto}.plan-scroll{max-height:none}.from-plan-note{font-size:8px}}
.plan-table{min-width:4100px;table-layout:fixed}.plan-table th:first-child{width:175px;min-width:175px}.plan-table th:not(:first-child),.plan-table td:not(:first-child){width:110px;min-width:110px}.plan-table thead th{height:105px;font-size:10px;white-space:normal}.plan-table tbody th{font-size:11px}.plan-table tbody td{height:32px;padding:3px}.off-label{display:inline-flex;align-items:center;gap:4px;font-size:9px;margin-left:8px;color:var(--muted)}.off-label input{width:13px;height:13px;padding:0;accent-color:var(--blue)}.plan-table .sunday-row th{border-left:3px solid #e3bf42}.plan-horizontal-scroll{overflow-x:auto;overflow-y:hidden;height:17px;border-top:1px solid var(--line)}.plan-horizontal-scroll>div{height:1px}.plan-import{padding:10px 20px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:12px}.plan-import label{display:flex;align-items:center;gap:10px;font-weight:600}.plan-import input{padding:5px;font-size:12px}.plan-table tfoot th,.plan-table tfoot td{border-top:1px solid #c3d1dc}.plan-table tbody tr:hover td{box-shadow:inset 0 0 0 100px #17688805}
@media print{.plan-horizontal-scroll,.plan-import,.off-label{display:none!important}.plan-table{min-width:0}.plan-table th:first-child,.plan-table th:not(:first-child),.plan-table td:not(:first-child){width:auto;min-width:0}}

@media print{#plan-source-status{display:block!important;font-size:9px;padding:7px 10px;margin-bottom:12px}}
