/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-600:oklch(57.7% .245 27.325);--color-slate-500:oklch(55.4% .046 257.417);--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.p-6{padding:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-red-600{color:var(--color-red-600)}.text-slate-500{color:var(--color-slate-500)}.uppercase{text-transform:uppercase}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--bg:#e6eefb;--panel:#fff;--ink:#16233b;--muted:#6b7789;--line:#dbe3ef;--accent:#3cccc3;--accent-d:#2ba7a0;--accent2:#5b4fe3;--accent2-d:#4a3fc7;--proc:#eef2f9;--chip:#e0f6f4;--chipink:#188a81;--good:#0f7b52;--warn:#b5761b;--warnbg:#fdf6e9;--nav:#101a34}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}a{color:var(--accent);cursor:pointer;text-decoration:none}.app{min-height:100vh;display:flex}nav{background:var(--nav);color:#c7d2df;flex-shrink:0;width:210px}nav .brand{color:#fff;border-bottom:1px solid #26313f;padding:14px 16px;font-size:15px;font-weight:700}nav .brand small{color:#8ea0b5;margin-top:2px;font-size:10.5px;font-weight:400;display:block}nav .grp{text-transform:uppercase;letter-spacing:.7px;color:#66788e;padding:12px 16px 4px;font-size:10px}nav a.item{color:#c7d2df;justify-content:space-between;padding:8px 16px;font-size:13px;display:flex}nav a.item .ct{color:#61738c;font-size:11px}main{flex:1;min-width:0;padding:20px 26px}.head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.head h1{margin:0;font-size:20px}.head .sp{flex:1}.crumb{color:var(--muted);margin-bottom:2px;font-size:12px}.btn{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:8px 13px;font-size:13px;font-weight:600}.btn.ghost{color:var(--accent);background:#fff}.btn.grey{border-color:var(--line);color:var(--ink);background:#fff}.btn.grey:hover{border-color:var(--accent);color:var(--accent)}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:14px;padding:16px 18px}.searchbar{margin-bottom:12px}.searchbar input{border:1px solid var(--line);border-radius:8px;outline:none;width:320px;max-width:60%;padding:9px 12px;font-size:13px}.searchbar input:focus{border-color:var(--accent)}table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;overflow:hidden}thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--line);background:#f2f5f9;padding:9px 12px;font-size:11px}tbody td{border-bottom:1px solid #f0f2f5;padding:8px 12px;font-size:13.5px}tbody tr.click{cursor:pointer}tbody tr.click:hover{background:#f7f9fc}td.code,.mono{color:var(--accent-d);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}td.num{text-align:right;font-variant-numeric:tabular-nums}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:4px 0 14px;display:flex}.tabs a{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 15px;font-size:13px;font-weight:600}.tabs a.on{color:var(--accent);border-color:var(--accent)}.fields{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px 18px;display:grid}.fld label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:3px;font-size:10.5px;display:block}.fld .val{min-height:19px;font-size:14px}.fld input,.fld select{border:1px solid var(--line);border-radius:7px;outline:none;width:100%;padding:7px 9px;font-family:inherit;font-size:13.5px}.fld input:focus,.fld select:focus{border-color:var(--accent)}h3.sec{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:16px 0 10px;font-size:12px}.constants{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;display:grid}.const{border:1px solid var(--line);background:#f7f9fc;border-radius:9px;padding:8px 11px}.const .k{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:10px}.const .v{margin-top:2px;font-size:16px;font-weight:700}.const .v.na{color:#b9c0c9}.const .u{color:var(--muted);font-size:10px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--chip);color:var(--chipink);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.chip.lock{color:#59636f;background:#eef1f4}.chip.pk{color:#0f7b52;background:#eafaf0}.batchbar{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:12px;display:flex}.batchbar label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:10.5px;display:block}.batchbar input{border:1px solid var(--line);border-radius:8px;outline:none;width:120px;padding:8px 10px;font-size:15px;font-weight:600}.batchbar input:focus{border-color:var(--accent)}.qbtns{gap:6px;display:flex}.qbtns button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;padding:7px 10px;font-size:12px}.qbtns button:hover{border-color:var(--accent);color:var(--accent)}.fn{color:#7a8697;background:#eef1f4;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.fn-P{color:#c0392b;background:#fdeceb}.fn-F{color:#0f7b52;background:#eafaf0}.fn-N{color:#2b6cb0;background:#eef4fd}.fn-V{color:#7a4fbf;background:#f3edfb}tr.proc td{background:var(--proc);color:#57616e;font-size:12.5px;font-style:italic}tr.tot td{border-top:2px solid var(--line);background:#fafbfc;font-weight:700}.buildup{grid-template-columns:1fr 1fr;gap:14px;display:grid}.burow{border-bottom:1px dashed var(--line);justify-content:space-between;padding:6px 0;font-size:13.5px;display:flex}.burow.big{border-bottom:none;padding-top:10px;font-size:15px;font-weight:700}.complete{color:var(--warn);background:var(--warnbg);border:1px solid #f0e2c4;border-radius:8px;margin-top:12px;padding:8px 12px;font-size:12px}.banner{color:#274b7a;background:#eef4ff;border:1px solid #cfe0ff;border-radius:8px;margin-bottom:14px;padding:8px 12px;font-size:12.5px}.rowbtn{border:1px solid var(--line);cursor:pointer;color:#b0424a;background:#fff;border-radius:6px;width:26px;height:26px;font-weight:700}.rowbtn:hover{border-color:#b0424a}.addrow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.addrow input,.addrow select{border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:13px}.muted{color:var(--muted)}.note{color:var(--muted);margin:16px 2px 30px;font-size:12px;line-height:1.6}.qn input,.lot input{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:13px}.qn input{text-align:right;font-variant-numeric:tabular-nums;width:82px}.lot input{width:120px;font-size:12.5px}.flow{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;display:flex}.step{color:#93a0af;background:#eef1f4;border-radius:20px;padding:4px 11px;font-size:11.5px;font-weight:700}.step.on{color:#fff;background:#20304a}.step.done{color:#0f7b52;background:#eafaf0}.arr{color:#c2ccd6}.pill{border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700}.pill.Tomake{color:#2b6cb0;background:#eef4ff}.pill.Inprogress{color:#b5761b;background:#fdf6e9}.pill.Made{color:#0f7b52;background:#eafaf0}.pill.Approved{color:#59636f;background:#eef1f4}.modal-back{z-index:50;background:#141b2673;justify-content:center;align-items:flex-start;padding:30px 16px;display:none;position:fixed;inset:0;overflow:auto}.modal{background:#fff;border-radius:14px;width:100%;max-width:600px;padding:22px 26px;box-shadow:0 20px 60px #0000004d}.modal.wide{max-width:1180px}.modal h2{margin:0 0 2px;font-size:18px}.info-grid{columns:2;column-gap:34px}.info-grid .inforow{break-inside:avoid}.listbar{align-items:center;gap:14px;margin:12px 0 4px;display:flex}.viewtoggle{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.viewtoggle .seg{color:var(--muted);cursor:pointer;background:#fff;border:0;padding:6px 14px;font-size:13px;font-weight:500}.viewtoggle .seg.on{color:#fff;background:#17202e}.sortlbl{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.sortlbl select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 8px;font-size:13px}.tilegrid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:12px;display:grid}.ftile{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;padding:14px 15px;transition:box-shadow .12s,border-color .12s}.ftile:hover{border-color:#bcc7d3;box-shadow:0 4px 14px #14233b14}.ftile .fcode{color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:11.5px}.ftile .fname{margin:5px 0 10px;font-size:14px;font-weight:600;line-height:1.35}.ftile .fmeta{flex-wrap:wrap;gap:6px;display:flex}.inforow{border-bottom:1px solid #eef1f4;justify-content:space-between;gap:16px;padding:7px 0;font-size:13.5px;display:flex}.inforow .l{color:var(--muted)}.inforow .v{text-align:right;font-weight:600}table.recipe tbody td{padding:9px 12px}tr.sep td{border-bottom:2px solid var(--line);height:2px;padding:2px 0}.dash-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:16px;display:grid}.stat-tile{background:#fff;border:1px solid #e7ecf2;border-radius:14px;padding:16px 18px;box-shadow:0 1px 4px #152a500f}.stat-tile.dark{color:#fff;background:linear-gradient(135deg,#17284a,#0f1a33);border:none}.stat-tile.purple{color:#fff;background:linear-gradient(135deg,#6d5cf0,#4a3fc7);border:none}.stat-tile.purple .lbl{color:#ffffffb8}.stat-tile.accent{color:#fff;background:linear-gradient(135deg,#3f8cff,#2f7bf0);border:none}.stat-tile .lbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px}.stat-tile.dark .lbl,.stat-tile.accent .lbl{color:#ffffffb8}.stat-tile .big{margin-top:6px;font-size:26px;font-weight:700}.stat-tile .sub{color:var(--muted);margin-top:3px;font-size:12px}nav{flex-direction:column;display:flex}nav a.item{align-items:center;gap:10px;display:flex}nav a.item .ico{color:#7e90a6;flex-shrink:0;width:18px;height:18px;display:inline-flex}nav a.item .lab{flex:1}nav .profile{border-top:1px solid #26313f;align-items:center;gap:10px;margin-top:auto;padding:14px 16px;display:flex}nav .profile .av{color:#fff;background:#2b6cb0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}nav .profile .pn{color:#fff;font-size:13px;font-weight:600}nav .profile .pe{color:#8ea0b5;font-size:11px}.card{border-radius:14px;box-shadow:0 1px 4px #152a500f}main table{box-shadow:0 1px 4px #152a500d}.pill.Planned{color:#2b6cb0;background:#eef4ff}.pill.Making{color:#b5761b;background:#fdf6e9}.pill.Done{color:#0f7b52;background:#eafaf0}.pill.Carriedover{color:#59636f;background:#eef1f4}nav{color:#3a4658;background:#fff;border-right:1px solid #e6ebf2}nav .brand{color:#16233b;border-bottom:1px solid #eef1f6}nav .brand small,nav .grp{color:#9aa6b6}nav a.item{color:#4a5768}nav a.item .ct{color:#9aa6b6}nav .profile{border-top:1px solid #eef1f6}nav .profile .pn{color:#16233b}nav .profile .pe{color:#9aa6b6}nav .profile .av{background:var(--accent);color:#fff}.card,main table{border:1px solid #e9edf3}body{background:#eef0f3}nav{width:218px}nav a.item{border-radius:9px;margin:1px 8px;padding:8px 12px}nav a.item.on{color:#1f5fce;box-shadow:none;background:#e9f1fe}nav a.item:hover{background:#eef3fa}.const{border-radius:11px;padding:12px 14px}.const .k{letter-spacing:.4px;font-size:10.5px}.const .v{margin-top:5px;font-size:20px}.constants{gap:12px}.btn{border-radius:8px;padding:8px 14px;font-size:13px;line-height:1.25}.qbtns button{border-radius:8px;padding:6px 11px;font-size:12.5px}.batchbar{gap:14px}.recipe tbody td{padding:10px 12px;font-size:14px}.recipe tr.proc td{font-size:13px}table.recipe{border-radius:12px}.app,body{background:#fff}nav{border-right:none}main{background:#eef0f3;border-radius:20px 0 0 20px;margin:0}tr.proc td{color:#9aa6b6;background:#fff;font-style:italic}.recipe tr.proc td{border-bottom:1px solid #f1f3f6}.recipe tr.proc td:first-child{box-shadow:none}.card table.recipe{box-shadow:none;border:none}.batchbar select,.batchbar input{height:38px}.batchbar button{align-items:center;height:38px;display:inline-flex}.card table.recipe{border:1px solid var(--line);border-radius:10px;overflow:hidden}.recipe th,.recipe td{border-right:1px solid var(--line)}.recipe th:last-child,.recipe td:last-child{border-right:none}.recipe tbody tr:nth-child(odd) td{background:#fff}.recipe tbody tr:nth-child(2n) td{background:#f6f8fa}.recipe tr.proc td{color:#6f7a88}.recipe tbody tr.tot td{background:#eef2f7}.rtwrap{border:1px solid #c4cfde;border-radius:10px;overflow:hidden}.rtwrap table.recipe,table.etable{border:none;border-radius:0}table.etable th:not(:last-child),table.etable td:not(:last-child){border:1px solid var(--line)}table.etable th:last-child,table.etable td:last-child{background:0 0;border:none;padding-left:10px}.btn{color:#fff;letter-spacing:.1px;background:#17202e;border:1px solid #0000;border-radius:8px;padding:6px 13px;font-size:13px;font-weight:500;line-height:1.3}.btn.grey,.btn.ghost{color:var(--ink);background:#fff;border:1px solid #bcc7d3;padding:7px 14px;font-weight:500}.btn.sm{padding:5px 11px;font-size:12.5px;font-weight:500}.qbtns button{color:var(--ink);font-weight:500}#printarea{display:none}@media print{.app,#modal{display:none!important}#printarea{display:block}@page{margin:9mm}.psheet{color:#1a1a1a;font-family:Arial,Helvetica,sans-serif}.pbox{border:none;padding:0}.phead{border-bottom:2px solid #1a2233;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:9px;display:flex}.pbig{letter-spacing:.2px;font-size:17px;font-weight:800}.psub{color:#5a6472;margin-top:4px;font-size:11px}.pright{text-align:right}.pttl{letter-spacing:2px;color:#1a2233;font-size:12px;font-weight:700}.pmeta{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f5f7fa;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:9px 24px;margin-bottom:12px;padding:11px 14px;display:grid}.pm .pml{text-transform:uppercase;letter-spacing:.6px;color:#4d5966;font-size:9px}.pm .pmv{color:#141b26;border-bottom:1px solid #cfd6df;min-height:16px;margin-top:4px;padding-bottom:3px;font-size:12px;font-weight:700}table.precipe,table.pqc{border-collapse:collapse;border:1px solid #9aa7b6;width:100%}table.precipe th,table.pqc th{color:#fff;letter-spacing:.3px;text-align:left;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#1a2233;border:1px solid #1a2233;padding:7px 9px;font-size:10px;font-weight:600}table.precipe td,table.pqc td{vertical-align:top;border:1px solid #c4cdd8;padding:4px 8px;font-size:11px}table.precipe tbody tr:nth-child(2n) td,table.pqc tbody tr:nth-child(2n) td{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f7f9fb}table.precipe tr.proc td{color:#1a2233;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#dde3ec;font-style:italic}table.precipe td.num{text-align:right}table.precipe td.pc{color:#3a4657;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:9.5px}table.precipe tr.ptot td{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#eaeef4;border-top:2px solid #1a2233;font-weight:700}.pfoot{color:#8a94a2;text-align:right;margin-top:12px;font-size:9.5px}.pbreak{page-break-before:always}nav,.tabs,.btn,.qbtns,.addrow,.banner,.modal-back,.flow{display:none}main{padding:0}body{background:#fff}}.matgrp{margin-bottom:14px}.matgrp .grphd{align-items:center;gap:10px;margin-bottom:12px;display:flex}.matgrp .bnm{color:var(--ink);cursor:pointer;font-size:15px;font-weight:600}.matgrp .bnm:hover{color:var(--accent-d)}.matgrp .bsub{color:var(--muted);font-size:12.5px}.matgrp .bsub .arw{color:var(--accent);cursor:pointer}.matgrp .addbtn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;padding:0;font-size:18px;line-height:1;display:inline-flex}.matgrp .addbtn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.rmwrap{border:1px solid var(--line);border-radius:10px;overflow:hidden}.rmtable{border-collapse:collapse;background:var(--panel);width:100%}.rmtable th{white-space:nowrap;text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--line);background:#f2f5f9;padding:8px 12px;font-size:11px}.rmtable td{border-bottom:1px solid #f0f2f5;padding:9px 12px;font-size:13.5px}.rmtable td.code{white-space:nowrap}.rmtable th,.rmtable td{border-right:1px solid var(--line)}.rmtable th:last-child,.rmtable td:last-child{border-right:none}.rmtable tbody tr:nth-child(odd) td{background:#fff}.rmtable tbody tr:nth-child(2n) td{background:#f6f8fa}.rmtable tbody tr:last-child td{border-bottom:none}.rmtable tbody tr.click{cursor:pointer}.rmtable tbody tr.click:hover td{background:#eef4ff}#toast{color:#fff;opacity:0;pointer-events:none;z-index:9999;background:#17202e;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:500;transition:opacity .18s,transform .18s;position:fixed;bottom:22px;left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 6px 20px #101a3440}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.profile{cursor:pointer;position:relative}.profile .av{flex:none;overflow:hidden}.profile .av img{object-fit:cover;width:100%;height:100%}.profile .umcaret{color:#9aa6b6;margin-left:auto;font-size:16px;line-height:1}.profile:hover{background:#f2f5f9}#usermenu{border:1px solid var(--line);z-index:9998;background:#fff;border-radius:11px;width:216px;padding:6px;position:fixed;bottom:66px;left:12px;box-shadow:0 12px 34px #101a343d}#usermenu .umhead{align-items:center;gap:10px;padding:8px 8px 9px;display:flex}.umav{background:var(--accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex;overflow:hidden}.umav.big{width:58px;height:58px;font-size:19px}.umav img{object-fit:cover;width:100%;height:100%}#usermenu .umn{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}#usermenu .ume{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}#usermenu .umsep{background:var(--line);height:1px;margin:4px 2px}.umitem{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13px;display:block}.umitem:hover{background:#f2f5f9}.umitem.danger{color:#b23b3b}.btn.icon{letter-spacing:1px;padding:8px 11px;font-weight:700;line-height:1}.ovmenu{border:1px solid var(--line);z-index:9998;background:#fff;border-radius:10px;min-width:170px;padding:6px;position:fixed;box-shadow:0 12px 34px #101a3438}.bslbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:8px;font-size:11px;display:block}.bsbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bschip{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;display:inline-flex;overflow:hidden}.bschip.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.bslab{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:7px 11px;font-family:inherit;font-size:13.5px;font-weight:600}.bschip.on .bslab{color:var(--accent-d)}.bsstar{border:0;border-left:1px solid var(--line);cursor:pointer;color:#b6bfcc;background:0 0;padding:7px 9px;font-size:13px;line-height:1}.bsstar:hover,.bschip.def .bsstar{color:#e2a600}.bsx{border:0;border-left:1px solid var(--line);cursor:pointer;color:var(--muted);background:0 0;padding:7px 9px;font-size:15px;line-height:1}.bsx:hover{color:#b23b3b}.bshint{margin-top:10px;font-size:12px}.chip.low{background:var(--warnbg);color:var(--warn)}.mini{color:var(--accent);cursor:pointer;font-size:12.5px}.mini:hover{text-decoration:underline}.soldas{flex-wrap:wrap;align-items:center;gap:8px;margin:-2px 0 12px;display:flex}.soldlbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px}.chip.ok{color:#0f7b52;background:#eafaf0}.banner.warn{background:var(--warnbg);color:var(--warn);border-color:#f0d9a8}.schmeta{flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 16px;display:flex}.schmeta .stat{border:1px solid var(--line);background:#fff;border-radius:20px;padding:3px 12px;font-size:12px;font-weight:600}.board{grid-template-columns:repeat(7,minmax(148px,1fr));gap:12px;margin-top:4px;display:grid}.bcol{background:#eef3fa;border:1px solid #e1e8f2;border-radius:14px;flex-direction:column;gap:8px;min-height:130px;padding:10px;display:flex}.bcol.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:#e7efff}.bcolhd{align-items:baseline;gap:6px;padding:2px 2px 4px;display:flex}.bcolhd .dname{color:var(--ink);font-size:13px;font-weight:700}.bcolhd .ddate{color:var(--muted);font-size:11px}.bcolhd .dcount{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:20px;margin-left:auto;padding:0 8px;font-size:11px;font-weight:600}.jcard{border:1px solid var(--line);background:#fff;border-left:4px solid #9aa6b6;border-radius:10px;padding:9px 11px;box-shadow:0 1px 3px #152a500f}.jcard.st-Planned{border-left-color:#2f7bf0}.jcard.st-Making{background:#fffdf7;border-left-color:#e0900f}.jcard.st-Done{background:#f6fbf8;border-left-color:#0f7b52}.jcard.st-Carriedover{border-left-color:#9aa6b6}.jcard .jname{color:var(--ink);font-size:13.5px;font-weight:700;line-height:1.25}.jcard .jmeta{color:var(--muted);margin-top:3px;font-size:11.5px}.jcard .jrow{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.stsel{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;padding:2px 6px;font-size:11.5px;font-weight:600}.stsel.st-Planned{color:#2f7bf0}.stsel.st-Making{color:#c47f10}.addday{color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #c4d0e0;border-radius:9px;width:100%;margin-top:auto;padding:8px;font-size:12px;font-weight:600}.addday:hover{border-color:var(--accent);color:var(--accent);background:#fff}@media (width<=1100px){.board{grid-template-columns:repeat(7,minmax(140px,1fr));overflow-x:auto}}.card{border-color:#eef1f6;border-radius:16px;box-shadow:0 3px 14px #152a500d}.item{border-radius:12px;gap:11px;margin:3px 10px;padding:9px 11px}.item .ico{width:32px;height:32px;color:var(--accent);background:#fff;border-radius:10px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 2px 6px #152a5014}.item:hover{background:#eef4f3}.item.on{background:var(--accent);color:#fff;box-shadow:0 6px 16px #3cccc359}.item .ct{color:#9aa6b6;font-weight:600}.item.on .ct{color:#ffffffeb}.grp{color:#a3adba;font-weight:700}.pbar{background:#e9edf3;border-radius:7px;height:7px;overflow:hidden}.pbar>span{background:var(--accent);border-radius:7px;height:100%;display:block}.iconchip{color:#fff;background:linear-gradient(135deg,#4bd8cf,#2fb9b0);border-radius:13px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.iconchip svg{width:22px;height:22px}.stat-tile.accent{background:linear-gradient(135deg,#4bd8cf,#2fb9b0)}.stat-tile{border-radius:16px;box-shadow:0 3px 14px #152a500d}.btn:hover{background:linear-gradient(135deg,#37c6bc,#289b93)}.btn.go:hover{background:#0c6644}.kpigrid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;display:grid}.kpi{background:#fff;border:1px solid #eef1f6;border-radius:16px;align-items:center;gap:12px;padding:15px 17px;display:flex;box-shadow:0 3px 14px #152a500d}.kpi .kpimeta{flex:1;min-width:0}.kpi .lbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:10.5px}.kpi .kval{color:var(--ink);margin-top:2px;font-size:23px;font-weight:700;line-height:1.1}.kpi .ksub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:11.5px;overflow:hidden}.dashcharts{grid-template-columns:38% 1fr;gap:16px;margin-bottom:16px;display:grid}.hero{color:#fff;background:linear-gradient(135deg,#17284a,#0f1a33);border-radius:16px;padding:18px;box-shadow:0 6px 20px #101a342e}.hero .herottl{font-size:15px;font-weight:700}.hero .herosub{color:#fff9;margin-bottom:8px;font-size:12px}.dashcols{grid-template-columns:1fr 1fr;gap:16px;display:grid}.stkrow{border-bottom:1px solid #f0f2f5;align-items:center;gap:10px;padding:8px 0;display:flex}.stkrow:last-child{border-bottom:none}.stkname{color:var(--ink);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:150px;font-size:13px;font-weight:600;overflow:hidden}.stkname:hover{color:var(--accent-d)}.stkamt{color:var(--muted);text-align:right;flex-shrink:0;width:70px;font-size:12px}@media (width<=1000px){.kpigrid{grid-template-columns:repeat(2,1fr)}.dashcharts,.dashcols{grid-template-columns:1fr}}.btn.sm{border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:600}.btn.grey,.btn.ghost{border-radius:9px;padding:7px 13px;font-size:13px;font-weight:500}.item{color:#5a6675;font-weight:500}.item .ico{box-shadow:none;color:var(--accent);background:#f2f5f8}.item:hover{color:var(--ink);background:#edf1f6}.item:hover .ico{background:#fff;box-shadow:0 2px 5px #152a5012}.item.on{color:var(--ink);box-shadow:none;background:#e9eef4;font-weight:600}.item.on:hover{background:#e3e9f0}.item.on .ico{color:var(--accent);background:#fff;box-shadow:0 2px 6px #152a5017}.item .ct,.item.on .ct{color:#9aa6b6}.dashcharts{align-items:stretch}.hero{flex-direction:column;display:flex}.hero svg{margin-top:auto}.card svg{display:block}.item{color:#8b97a8;border-radius:14px;gap:12px;margin:3px 12px;padding:9px 12px;font-weight:600}.item .ico{box-shadow:none;color:var(--accent);background:0 0;width:22px;height:22px}.item .ico svg{width:20px;height:20px}.item .lab{flex:1}.item:hover{color:var(--ink);background:#fff;box-shadow:0 3px 10px #152a500f}.item:hover .ico{color:var(--accent)}.item.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 5px 16px #152a5017}.item.on .ico{color:var(--accent);background:0 0}.item .ct,.item.on .ct{color:#9aa6b6;font-weight:600}.brand{background:0 0}.toggle{vertical-align:middle;width:42px;height:23px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0;margin:0;position:absolute}.toggle .tk{cursor:pointer;background:#dfe4ea;border-radius:20px;transition:background .2s;position:absolute;inset:0}.toggle .tk:before{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle input:checked+.tk{background:var(--accent)}.toggle input:checked+.tk:before{transform:translate(19px)}.daysec{background:#fff;border:1px solid #eef1f6;border-radius:14px;margin-bottom:12px;padding:12px 16px 14px;box-shadow:0 3px 14px #152a500d}.daysec.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 3px 14px #152a500d}.dayhd{align-items:center;gap:9px;display:flex}.dayhd .dayname{color:var(--ink);font-size:14px;font-weight:700}.dayhd .daydate{color:var(--muted);font-size:12px}.todaytag{background:var(--accent);color:#fff;letter-spacing:.3px;border-radius:20px;padding:2px 9px;font-size:10px;font-weight:700}.dayempty{color:var(--muted);padding:8px 2px 2px;font-size:12.5px}.jobrow{background:#fff;border:1px solid #eef1f6;border-left:4px solid #9aa6b6;border-radius:10px;align-items:center;gap:14px;margin-top:9px;padding:11px 14px;display:flex}.jobrow.st-Carriedover{border-left-color:#9aa6b6}.jobrow .jsub{color:var(--muted);margin-top:2px;font-size:12px}.jobrow .javail{text-align:right;flex-shrink:0;width:78px}.jobrow .jstat{flex-shrink:0}nav .grp{color:#9aa6b6}nav a.item{color:#8b97a8;border-radius:14px;gap:12px;margin:3px 12px;padding:8px 12px;font-weight:600}nav a.item .ico{box-shadow:none;color:var(--accent);background:0 0;border-radius:0;width:22px;height:22px}nav a.item:hover{color:var(--ink);background:#fff;box-shadow:0 3px 10px #152a500f}nav a.item.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 5px 16px #152a5017}nav a.item .ct,nav a.item.on .ct{color:#9aa6b6;font-weight:600}.btn{border:1px solid #0000;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;line-height:1.3}.btn.go{background:var(--good);border-color:var(--good)}.pbar>span{background:var(--accent)}nav{background:#fff;border-right:none}nav a.item:hover .ico{color:var(--accent);background:0 0}nav a.item.on .ico{color:var(--accent);box-shadow:none;background:0 0}nav .brand{background:0 0}nav a.item .ico svg{width:17px;height:17px}nav a.item .ico{width:20px;height:20px}main{background:#f8fafc;padding:32px 34px}.jobrow{border-left-width:4px}.jobrow.st-Planned{background:#fff;border-left-color:#8592a6}.jobrow.st-Done{background:#f5fbf7;border-left-color:#1f9d57}.jobrow.st-Carriedover{background:#fff;border-left-color:#b3bdca}.stat{border-radius:20px}.stat.st-Planned{color:#64748b;border-color:#e3e7ee}.stat.st-Making{color:#2ba7a0;border-color:#cdeeeb}.stat.st-Done{color:#1f9d57;border-color:#c9ecd6}.stsel{border:1px solid #0000;border-radius:20px;padding:4px 12px;font-size:11.5px;font-weight:600}.stsel.st-Planned{color:#5c6a80;background:#eef1f6}.stsel.st-Making{color:#22857f;background:#e2f6f4}.stsel.st-Carriedover{color:#8b97a8;background:#eef1f6}.daysec{padding:14px 18px 16px}.dayhd{padding-bottom:2px}.dayhd .dayname{font-size:14.5px}nav a.item{margin:1px 12px;padding:7px 12px;font-weight:500}nav a.item.on{font-weight:600}.head{margin-bottom:22px}.jobrow .btn.complete{padding:5px 12px;font-size:12px}nav{background:#fff;border-right:none;align-self:flex-start;height:100vh;position:sticky;top:0;overflow-y:auto}nav a.item{color:#4f5b70;font-weight:500}nav a.item:hover{color:var(--ink);box-shadow:none;background:#f8fafc}nav a.item:hover .ico{color:var(--accent)}nav a.item.on{color:var(--ink);box-shadow:none;background:#f8fafc;font-weight:600}nav a.item.on .ico{color:var(--accent);background:0 0}nav a.item .ct,nav a.item.on .ct{color:#9aa6b6}main{padding:60px 34px 40px}.listbar .sortlbl{margin-left:auto}.rmwrap{border-radius:14px;box-shadow:0 3px 14px #152a500d}.jobrow{background:#fff;border:1px solid #eef1f6;border-left:4px solid #8592a6;border-radius:12px;align-items:center;gap:14px;margin-top:9px;padding:12px 16px;transition:box-shadow .15s;display:flex}.jobrow:hover{box-shadow:0 4px 14px #152a5012}.jobrow .jinfo{flex:1;min-width:0}.jobrow .jt{color:var(--ink);font-size:14px;font-weight:600}.jobrow .jmeta{flex-wrap:wrap;align-items:center;gap:7px;margin-top:6px;display:flex}.jqty{color:#22857f;background:#e2f6f4;border-radius:20px;padding:2px 9px;font-size:11.5px;font-weight:700}.jchip{color:#5c6a80;background:#f1f4f8;border-radius:20px;padding:2px 9px;font-size:11.5px}.opav{color:#5c6a80;background:#e9edf4;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px;font-weight:700;display:inline-flex}.daycount{color:var(--muted);background:#f1f4f8;border-radius:20px;margin-left:2px;padding:1px 9px;font-size:11px;font-weight:600}nav a.item,nav a.item.on{font-weight:400}nav a.item .ico,nav a.item:hover .ico{color:#93a1b3}nav a.item.on .ico{color:var(--accent)}nav .grp{color:#9aa6b6;font-weight:400}.btn{color:#fff;-webkit-font-smoothing:antialiased;background:#2fb3aa;border:1px solid #2fb3aa;border-radius:8px;padding:6px 13px;font-size:12.5px;font-weight:600;line-height:1.4}.btn:hover{background:#279c94;border-color:#279c94}.btn.complete{padding:5px 11px;font-size:12px}.btn.icon{padding:5px 9px}.jobrow .stsel{box-sizing:border-box;height:28px}.jobrow .btn.sm,.jobrow .btn.complete{box-sizing:border-box;align-items:center;height:28px;display:inline-flex}.chip.carried{color:#8592a6;background:#eef1f6}.jactions{flex-shrink:0;align-items:center;gap:8px;display:flex}.jactions>*{height:30px}.jactions .btn{align-items:center;padding:0 12px;font-size:12px;line-height:1;display:inline-flex}.jactions .stsel{padding:0 12px;font-size:11.5px;line-height:normal}.jactions .chip{align-items:center;padding:0 11px;display:inline-flex}.jactions .code{align-items:center;font-size:11.5px;display:inline-flex}.jactions .rowbtn{justify-content:center;align-items:center;width:30px;display:inline-flex}.card{border-radius:12px}.rmwrap{border-radius:10px}.kpi,.stat-tile,.hero{border-radius:12px}.daysec{border-radius:10px}.jobrow,.btn,.btn.grey,.btn.ghost{border-radius:7px}.card,.kpi,.hero,.stat-tile,.daysec,.rmwrap,.ovmenu,#usermenu,.modal,.iconchip,.bcol{border-radius:8px}.btn,.btn.grey,.btn.ghost,.btn.sm,.btn.complete,.btn.icon,.fld input,.fld select,.searchbar input,.batchbar input,.banner,.jobrow,.stsel,.rowbtn,.matgrp .addbtn,.addday,.umitem,.viewtoggle,.ftile,table,.jcard{border-radius:6px}.chip,.schmeta .stat,.stat,.jqty,.jchip,.daycount,.todaytag,.const,.pill,.step,.bcolhd .dcount,.fn,.pbar,.pbar>span{border-radius:5px}main{border-radius:10px 0 0 10px}.toggle .tk{border-radius:20px}.toggle .tk:before,.av,.umav,.opav,nav .profile .av{border-radius:50%}.jbtn{cursor:pointer;color:#5c6a80;background:#fff;border:1px solid #d7dee8;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex;position:relative}.jbtn svg{width:16px;height:16px}.javail,.jobrow .javail{flex-shrink:0;justify-content:flex-end;align-items:center;width:88px;display:inline-flex}.jbtns{align-items:center}.jbtn{vertical-align:middle;line-height:0}.jobrow{align-items:center}.jinfo{flex:1;min-width:0}.jspacer{flex:1}.jbtns{flex-shrink:0;align-items:center;gap:6px;display:flex}.jbtns .jbadge{align-items:center;height:30px;display:inline-flex}.jbtn.complete:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.jbtn.danger{margin-left:0}.jbtn.complete{color:#5c6a80;border-color:#d7dee8}.jbtn.complete:hover{border-color:var(--accent);color:var(--accent);background:#f2fbfa}.jshort{color:var(--muted);margin-top:6px;font-size:12px;font-weight:400}.jbtn{box-sizing:border-box;vertical-align:middle;color:#5c6a80;cursor:pointer;background:#fff;border:1px solid #d7dee8;border-radius:6px;justify-content:center;align-items:center;width:30px;min-width:30px;height:30px;padding:0;display:inline-flex;position:relative}.jbtn svg{width:16px;height:16px;display:block}.jbtn:hover{border-color:var(--accent);color:var(--accent);background:#f2fbfa}.jbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}.jbtn.danger:hover{color:#e5484d;background:#fdf2f2;border-color:#e5484d}.jbtn[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;z-index:30;pointer-events:none;background:#2b3446;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:500;line-height:1.4;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.jbtn[data-tip]:hover:before{content:"";z-index:30;pointer-events:none;border:5px solid #0000;border-top-color:#2b3446;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.jshort{color:var(--warn);font-weight:500}.btn{color:#fff;background:#17202e;border:1px solid #17202e}.jbtn.on{color:#fff;background:#17202e;border-color:#17202e}.jobrow .jtlink{cursor:pointer}.jobrow .jtlink:hover{color:var(--accent-d)}.btn{color:#fff;background:linear-gradient(135deg,#17284a,#0f1a33);border:1px solid #17284a;border-radius:7px;padding:7px 14px;font-size:13px;font-weight:500;line-height:1.35}.btn:hover{color:#fff;background:linear-gradient(135deg,#20375f,#15233f);border-color:#20375f}.btn.sm{padding:5px 11px;font-size:12px}.btn.grey,.btn.ghost{color:var(--ink);background:#fff;border:1px solid #d3dbe6;padding:7px 14px;font-size:13px;font-weight:500}.btn.grey:hover,.btn.ghost:hover{color:var(--ink);background:#f4f7fb;border-color:#c9d3e0}.btn.grey.sm,.btn.ghost.sm{padding:5px 11px;font-size:12px}.btn.go{background:var(--good);border-color:var(--good);color:#fff}.btn.go:hover{background:#0c6644;border-color:#0c6644}.btn.icon{letter-spacing:1px;padding:7px 12px;font-size:14px;font-weight:700;line-height:1.35}.dashpage .btn{color:#fff;background:#2fb3aa;border-color:#2fb3aa}.dashpage .btn:hover{color:#fff;background:#279c94;border-color:#279c94}.jbtn.on{border-color:var(--accent);color:var(--accent);background:#f2fbfa}.jobgrid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px;display:grid}.jobcard{background:#fff;border:1px solid #eef1f6;border-left:4px solid #8592a6;border-radius:8px;flex-direction:column;gap:9px;min-height:118px;padding:13px 15px;transition:box-shadow .15s;display:flex}.jobcard:hover{box-shadow:0 4px 14px #152a5012}.jobcard.st-Planned{border-left-color:#8592a6}.jobcard.st-Making{background:#f4fbfa;border-left-color:#2ba7a0}.jobcard.st-Done{background:#f7fbf9;border-left-color:#1f9d57}.jobcard.st-Carriedover{opacity:.62;border-left-color:#b3bdca}.jobcard .jt{color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;line-height:1.3}.jobcard .jt:hover{color:var(--accent-d)}.jobcard .jmeta{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.jobcard .jshort{color:var(--warn);font-size:12px;font-weight:500;line-height:1.35}.jobcard .jbtns{align-items:center;gap:6px;margin-top:auto;padding-top:6px;display:flex}@media (width<=1150px){.jobgrid{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.jobgrid{grid-template-columns:1fr}}.jobcard .jshort{font-size:11px;font-weight:400}.daysec.today{border-color:#eef1f6;border-left:3px solid var(--accent);box-shadow:0 3px 14px #152a500d}.modal{width:100%;max-width:600px}.modal.med{max-width:860px}.modalwrap{justify-content:center;width:100%;max-width:calc(100vw - 40px);display:flex;position:relative}.modalx{z-index:12;cursor:pointer;color:#5c6a80;background:#fff;border:1px solid #d3dbe6;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;line-height:1;display:flex;position:absolute;top:12px;right:12px}.modalx:hover{border-color:var(--accent);color:var(--accent);background:#f2fbfa}body.locked{overflow:hidden}body.locked .app{display:none}#authgate{z-index:9999;background:linear-gradient(135deg,#17284a,#0f1a33);justify-content:center;align-items:center;font-family:inherit;display:flex;position:fixed;inset:0}body:not(.locked) #authgate{display:none}#authgate .card{background:#fff;border-radius:12px;width:340px;padding:34px 34px 28px;box-shadow:0 18px 50px #00000059}#authgate .brand{text-align:center;letter-spacing:.6px;color:#8aa0c8;text-transform:uppercase;margin:0 0 16px;font-size:12px}#authgate h1{color:#17284a;margin:0 0 4px;font-size:21px}#authgate .sub{color:#5b6577;margin:0 0 20px;font-size:13px}#authgate label{color:#5b6577;margin:0 0 4px;font-size:12px;display:block}#authgate input{box-sizing:border-box;border:1px solid #cdd6e2;border-radius:7px;width:100%;margin:0 0 14px;padding:9px 11px;font-size:14px}#authgate input:focus{border-color:#2fb3aa;outline:none}#authgate button{color:#fff;cursor:pointer;background:#2fb3aa;border:0;border-radius:7px;width:100%;padding:10px;font-size:14px;font-weight:600}#authgate button:disabled{opacity:.6;cursor:default}#authgate .err{color:#d14343;min-height:16px;margin:0 0 10px;font-size:12.5px}#oppserr{z-index:10000;color:#8a1c1c;background:#fdecec;border:1px solid #e2a0a0;border-radius:9px;align-items:center;gap:12px;padding:11px 14px;font-family:inherit;font-size:13px;display:none;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 6px 20px #0000001f}#oppserr .m{white-space:pre-wrap;flex:1}#oppserr button{color:#8a1c1c;cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.viewseg{gap:4px;margin-right:6px;display:inline-flex}.dayboard{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:8px;padding:18px 20px;box-shadow:0 1px 3px #141e320d}.dbhd{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:14px;display:flex}.dbday{color:var(--ink);font-size:21px;font-weight:700}.dbdate{color:var(--muted);margin-top:2px;font-size:13px}.jobgrid.dayjobs{grid-template-columns:repeat(2,1fr)}@media (width<=820px){.jobgrid.dayjobs{grid-template-columns:1fr}}.viewbar{align-items:center;gap:8px;margin:0 0 14px;display:flex}.dayhead{flex-wrap:wrap;align-items:center;gap:12px;margin:2px 0 14px;display:flex}.stepsec{margin-top:18px}.stephd{letter-spacing:.5px;text-transform:uppercase;color:#5b6577;align-items:center;gap:8px;margin:0 0 9px;font-size:12px;font-weight:700;display:flex}.stepdot{border-radius:50%;width:9px;height:9px;display:inline-block}.stepcount{color:#5b6577;background:#eef2f7;border-radius:20px;padding:1px 9px;font-size:11px;font-weight:600}.stepempty{color:var(--muted);padding:2px 2px 4px;font-size:13px}.fld label[title],.stat-tile[title]{cursor:help}.fillhint{color:#1c5f5a;background:#f2fbfa;border:1px solid #bfe8e4;border-radius:9px;margin-top:14px;padding:11px 13px;font-size:13px;line-height:1.5}.daylist{margin-top:2px}.jobrow{border:1px solid var(--line);background:#fff;border-left:4px solid #cbd3df;border-radius:10px;align-items:center;gap:12px;margin-bottom:11px;padding:16px 18px;display:flex}.jobrow.st-Planned{border-left-color:#8592a6}.jobrow.st-Making{background:#f5fbfb;border-left-color:#2ba7a0}.jobrow.st-Done{border-left-color:#1f9d57}.jobrow.st-Carriedover{opacity:.72;border-left-color:#b9c2cf}.jrleft{flex:1 1 0;min-width:0}.jrname{color:var(--ink);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.jrname:hover{color:var(--accent)}.jrmeta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.jractions{flex:none;justify-content:center;align-items:center;gap:9px;display:flex}.jrremove{flex:1 1 0;justify-content:flex-end;align-items:center;display:flex}.jrshort{color:#b26a00;margin-top:7px;font-size:12.5px;font-weight:500}.ac-wrap{position:relative}.ac-wrap input{border:1px solid var(--line);border-radius:7px;outline:none;width:100%;padding:7px 9px;font-family:inherit;font-size:13.5px}.ac-wrap input:focus{border-color:var(--accent)}.ac-list{z-index:40;border:1px solid var(--line);background:#fff;border-radius:8px;max-height:190px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #141b2624}.ac-opt{cursor:pointer;color:var(--ink);border-radius:5px;padding:6px 9px;font-size:13.5px}.ac-opt:hover{color:var(--accent-d);background:#f2fbfa}
