:root{--ink:#17211f;--muted:#58625e;--page-bg:#e4dfcf;--steel:#1f2f2d;--signal:#f0b429;--control-bg:#fffaf0;--line:#17211f2e;--shadow:0 18px 50px #17211f2e;--sans:"Avenir Next", "Trebuchet MS", Verdana, sans-serif;font:18px/1.45 var(--sans);color:var(--ink);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-height:100%}body{min-width:320px;min-height:100svh;margin:0}#root{min-height:100svh}h1,h2,h3,p{overflow-wrap:anywhere}.app{min-height:100svh;color:var(--ink);background:linear-gradient(135deg, #f0b42929, transparent 32%), linear-gradient(315deg, #3ca37024, transparent 35%), var(--page-bg)}.app--edit,.app--admin{grid-template-columns:minmax(0,1fr) 460px;display:grid}.app--tv .viewer-frame{padding:0}.app--tv .tv-board{border-radius:0;min-height:100svh}button,.file-button,.editor-route-link{border:1px solid var(--line);min-height:40px;color:var(--ink);background:var(--control-bg);font:inherit;cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:inline-flex}button:hover,.file-button:hover,.editor-route-link:hover{border-color:var(--ink)}button:disabled{cursor:not-allowed;opacity:.45}button svg,.file-button svg,.editor-route-link svg{width:18px;height:18px}.control-dock{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);background:#131c1db8;border:1px solid #ffffff52;border-radius:8px;gap:8px;padding:8px;display:grid;position:fixed;top:92px;right:18px}.control-dock button{color:#fff;background:#ffffff1f;border-color:#ffffff3d;width:44px;min-height:44px;padding:0}.control-dock button.is-active{color:#161616;background:var(--signal)}.viewer-frame{min-height:100svh;padding:10px;display:flex}.date-rail{color:#151515;background:var(--signal);box-shadow:var(--shadow);writing-mode:vertical-rl;text-orientation:mixed;text-transform:uppercase;letter-spacing:0;border-radius:8px;place-items:center;gap:18px;padding:20px 0;font-weight:900;display:grid}.date-rail svg{width:28px;height:28px}.date-rail span{font-size:21px}.tv-board{--page-accent:#3ca370;background:linear-gradient(90deg, color-mix(in srgb, var(--page-accent), transparent 76%), transparent 36%), linear-gradient(180deg, #fffaf0, #f4efe1 54%, #ece7d7);min-width:0;min-height:calc(100svh - 20px);box-shadow:var(--shadow);border:1px solid #ffffff38;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.info-strip{color:#fff;background:var(--steel);border-bottom:4px solid var(--page-accent);grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:20px;min-height:66px;padding:0 28px;display:grid}.tv-board>.info-strip:last-child{border-top:4px solid var(--page-accent);border-bottom:0}.strip-time,.strip-logo{align-items:center;gap:12px;font-size:25px;font-weight:900;display:inline-flex}.strip-time svg,.strip-logo svg{width:28px;height:28px;color:var(--signal)}.strip-countdown{align-items:center;gap:12px;min-width:150px;display:flex}.countdown-bar{background:#fff3;border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.countdown-fill{background:linear-gradient(90deg, var(--signal), #fa0);border-radius:3px;height:100%;transition:width .1s linear}.countdown-text{color:var(--signal);text-align:right;min-width:45px;font-size:18px;font-weight:900}.strip-page{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:baseline;gap:9px;min-width:146px;padding:7px 18px;font-size:30px;font-weight:900;display:inline-flex}.strip-page small{opacity:.55}.strip-logo{justify-self:end;max-width:330px}.strip-logo img{object-fit:contain;max-width:280px;max-height:48px;display:block}.page-scroll{scrollbar-color:var(--page-accent) #00000014;flex:1;overflow:auto}.schedule-shell{gap:10px;min-width:0;min-height:100%;padding:10px;display:grid}.schedule-titlebar{text-align:center;border:1px solid #111;border-radius:7px;overflow:hidden;box-shadow:0 8px 20px #11191914}.schedule-titlebar h1{color:#24d7df;letter-spacing:0;background:#050505;margin:0;padding:7px 18px 8px;font-size:38px;line-height:1}.schedule-titlebar p{color:#111;background:#ffc400;margin:0;padding:5px 16px 7px;font-size:25px;font-weight:900;line-height:1.05}.schedule-scroll{background:#fff;border:1px solid #8f968f;border-radius:7px;overflow:auto}.schedule-table{border-collapse:collapse;table-layout:fixed;color:#121212;background:#f8f1d0;width:100%;min-width:2240px;font-size:14px;line-height:1.15}.schedule-table th,.schedule-table td{vertical-align:middle;border:1px solid #aeb7aa;height:35px;padding:4px 6px}.schedule-table th{font-weight:900}.week-head{color:#111;background:#efff00;width:152px;font-size:18px}.machine-head{background:#cbcaca;width:104px}.machine-head strong,.machine-head span,.machine-head small{display:block}.machine-head span{color:red;margin-top:4px}.machine-head small{color:#424242;margin-top:2px;font-size:11px}.day-head{background:#d2d2d2;width:82px;font-size:17px}.day-head strong,.day-head span{display:block}.day-head span{margin-top:6px;font-size:13px}.shift-head{text-align:left;background:#efefef;flex-direction:column;justify-content:center;align-items:flex-start;width:70px;display:flex;padding:0!important}.shift-header-content{flex-direction:column;gap:0;width:100%;height:100%;padding:6px 8px;display:flex;position:relative}.shift-header-content span{align-items:center;min-height:20px;display:flex}.schedule-row--current{position:relative}.schedule-row--current:after{content:"";z-index:4;top:var(--current-line-position);pointer-events:none;background:#ff3b4f;height:3px;position:absolute;left:0;right:0;transform:translateY(-50%);box-shadow:0 0 0 1px #ff3b4f2e}.current-time-pill{z-index:5;top:var(--current-line-position);color:#fff;white-space:nowrap;background:#ff3b4f;border-radius:999px;padding:3px 7px 4px;font-size:13px;font-weight:900;line-height:1;position:absolute;left:-62px;transform:translateY(-50%);box-shadow:0 2px 6px #ff3b4f47;min-height:0!important}.schedule-row--morning td{background:#dfe8fb}.schedule-row--afternoon td{background:#fff4cf}.schedule-row--night td{background:#e6f0dc}.schedule-table td{overflow-wrap:anywhere;text-align:center;font-weight:700}.schedule-info-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.schedule-info-card{border:1px solid #90a48e;border-radius:7px;grid-template-columns:176px 1fr;min-height:120px;display:grid;overflow:hidden}.schedule-info-card h2{color:red;text-align:center;place-items:center;margin:0;padding:16px;font-size:28px;line-height:1.1;display:grid}.schedule-info-card p{color:red;margin:0;padding:16px 18px;font-size:17px;font-weight:900;line-height:1.25}.schedule-info-card--operators{background:#cde4ba}.schedule-info-card--setup{background:#b9d7ef}.staffing-panel{background:#fff;border:1px solid #151515;border-radius:7px;overflow-x:auto}.staffing-panel table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:940px;font-size:15px}.staffing-panel th,.staffing-panel td{vertical-align:top;border:1px solid #c5c5c5;padding:7px 10px}.staffing-panel thead th{color:#ffc400;background:#050505}.staffing-panel tbody th{color:#111;text-align:left;background:#f2f2f2;width:130px}.staffing-panel tbody tr:nth-child(odd) td{background:#eaf2ff}.staffing-panel tbody tr:nth-child(2n) td{background:#fff4cf}.page-hero{padding:52px 58px 28px}.page-hero p{color:#171717;background:color-mix(in srgb, var(--page-accent), white 38%);text-transform:uppercase;border-radius:7px;width:fit-content;margin:0 0 18px;padding:7px 14px;font-size:20px;font-weight:900}.page-hero h1{letter-spacing:0;max-width:1120px;margin:0;font-size:72px;line-height:1.02}.page-metrics{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.page-metrics span{border:1px solid var(--line);background:#ffffff9e;border-radius:7px;align-items:center;gap:9px;padding:10px 14px;font-weight:900;display:inline-flex}.page-metrics svg{width:20px;height:20px;color:var(--page-accent)}.board-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:10px 58px 38px;display:grid}.board-card{border:1px solid var(--line);border-top:8px solid var(--page-accent);background:#ffffffb3;border-radius:8px;min-height:222px;padding:24px;box-shadow:0 12px 28px #11191914}.card-meta{color:color-mix(in srgb, var(--page-accent), #111 28%);text-transform:uppercase;align-items:center;gap:10px;font-size:18px;font-weight:900;display:flex}.card-meta svg{width:24px;height:24px}.board-card h2{letter-spacing:0;margin:26px 0 14px;font-size:34px;line-height:1.12}.board-card p{color:var(--muted);margin:0;font-size:24px;font-weight:700;line-height:1.35}.notice-band{border:1px solid color-mix(in srgb, var(--page-accent), black 18%);background:color-mix(in srgb, var(--page-accent), white 72%);border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:20px;margin:0 58px 52px;padding:24px;display:grid}.notice-band svg{width:34px;height:34px}.notice-band p{margin:0;font-size:28px;font-weight:900;line-height:1.28}.editor-panel{border-left:1px solid var(--line);background:#fbf8ee;height:100svh;padding:18px;overflow-y:auto;box-shadow:-18px 0 38px #1119191f}.editor-header,.section-title-row,.inline-actions,.editor-actions,.add-item-row{align-items:center;display:flex}.editor-header,.section-title-row{justify-content:space-between;gap:14px}.editor-header{border-bottom:1px solid var(--line);padding-bottom:16px}.editor-header-actions{justify-items:end;gap:8px;display:grid}.editor-route-link{color:#fff;background:var(--steel);min-height:36px;padding:0 10px}.editor-header p,.editor-header h2,.editor-section h3{margin:0}.editor-header p{color:var(--muted);text-transform:uppercase;font-size:14px;font-weight:900}.editor-header h2{font-size:24px;line-height:1.1}.save-state{color:#286449;align-items:center;gap:7px;font-size:13px;font-weight:900;display:inline-flex}.save-state svg{width:16px;height:16px}.editor-section{border-bottom:1px solid var(--line);gap:13px;padding:18px 0;display:grid}.editor-section h3{font-size:18px}label{color:var(--muted);gap:6px;font-size:13px;font-weight:900;display:grid}input,textarea,select{box-sizing:border-box;border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);font:inherit;background:#fff;border-radius:7px;font-size:15px;font-weight:700}input,select{padding:0 10px}input[type=color]{padding:4px}textarea{resize:vertical;min-height:92px;padding:10px}.field-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.editor-actions,.add-item-row{flex-wrap:wrap;gap:8px}.editor-actions button,.editor-actions .file-button,.add-item-row button,.icon-text-button{padding:0 12px}.file-button input{display:none}.page-list{gap:8px;display:grid}.page-list button{text-align:left;grid-template-columns:30px minmax(0,1fr) auto;justify-content:stretch;gap:10px;width:100%;padding:10px;display:grid}.page-list button.is-selected{border-color:var(--ink);background:#fff1bd}.page-list strong,.page-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-list span{color:#fff;background:var(--steel);border-radius:6px;place-items:center;width:30px;height:30px;display:grid}.inline-actions{gap:6px}.inline-actions button,.item-editor header button,.machine-editor header button,.staffing-editor header button{width:38px;min-height:38px;padding:0}.item-editor-list,.machine-editor-list,.staffing-editor-list{gap:12px;display:grid}.item-editor,.machine-editor,.staffing-editor{border:1px solid var(--line);background:#fff;border-radius:8px;gap:11px;padding:12px;display:grid}.item-editor header,.machine-editor header,.staffing-editor header{justify-content:space-between;align-items:center;gap:10px;display:flex}.staffing-editor header input{min-width:0}.schedule-editor-scroll{border:1px solid var(--line);background:#fff;border-radius:8px;max-height:520px;overflow:auto}.schedule-editor-table{border-collapse:collapse;table-layout:fixed;min-width:1800px;font-size:12px}.schedule-editor-table th,.schedule-editor-table td{vertical-align:top;border:1px solid #d8d0bd;padding:5px}.schedule-editor-table th{background:#f1ead8;width:100px}.schedule-editor-table th strong,.schedule-editor-table th span{display:block}.schedule-editor-table input{min-height:34px;padding:0 7px;font-size:12px}@media (width<=1280px){.app--edit,.app--admin{grid-template-columns:1fr}.editor-panel{border-left:0;border-top:1px solid var(--line);height:auto}}@media (width<=860px){.viewer-frame{grid-template-columns:1fr;padding:8px}.date-rail{writing-mode:horizontal-tb;min-height:52px;padding:0 16px}.date-rail span{font-size:16px}.info-strip{grid-template-columns:1fr;justify-items:center;gap:8px;padding:12px}.strip-logo{justify-self:center}.schedule-titlebar h1{font-size:28px}.schedule-titlebar p{font-size:20px}.schedule-info-grid,.schedule-info-card{grid-template-columns:1fr}.page-hero,.board-grid{padding-inline:18px}.page-hero h1{font-size:44px}.board-grid{grid-template-columns:1fr}.notice-band{margin-inline:18px}.control-dock{grid-auto-columns:44px;grid-auto-flow:column;top:auto;bottom:12px;right:12px}.field-pair{grid-template-columns:1fr}}
