:root{--bg: #f3efe6;--card: #fffdf8;--ink: #2b261f;--muted: #6d655a;--line: #e4d9c8;--accent: #c45c26;--ok: #2f7a4b;--ok-bg: #e6f4ea;--warn: #9a6b12;--warn-bg: #fff3d6;--bad: #b42318;--bad-bg: #fdecea;--manual: #2f5f9a;--manual-bg: #e8f0fb;--sans: "Be Vietnam Pro", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;padding:16px 20px 18px;display:flex;flex-direction:column;box-sizing:border-box}.result-loading-bar{position:absolute;top:0;left:0;right:0;height:3px;overflow:hidden;z-index:2;background:#c45c261f}.result-loading-bar>span{display:block;height:100%;width:36%;background:var(--accent);animation:result-loading-slide 1.05s ease-in-out infinite}@keyframes result-loading-slide{0%{transform:translate(-120%)}to{transform:translate(380%)}}.result-loading-label{font-size:13px}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;flex-shrink:0;min-height:48px}.top-title{flex-shrink:0}h1{margin:0;font-size:1.55rem;font-weight:700}.page-sub{margin:4px 0 0}.top-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex-shrink:0}.activity-bell{position:relative}.activity-bell-btn{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line);background:#fffdf8;color:var(--muted);cursor:pointer;padding:0}.activity-bell-btn:hover,.activity-bell-btn.is-open{background:#c45c2614;color:var(--accent)}.activity-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.activity-badge.is-bad{background:var(--bad)}.activity-badge.is-ok{background:var(--ok)}.activity-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:320px;max-width:min(320px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px #2b261f24;overflow:hidden}.activity-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px 10px;border-bottom:1px solid var(--line)}.activity-panel-head strong{font-size:14px}.activity-panel-head span{font-size:12px;color:var(--muted)}.activity-read-all{border:0;background:transparent;padding:0;cursor:pointer;font-size:12px;font-weight:650;color:var(--accent)}.activity-read-all:hover{text-decoration:underline}.activity-list{list-style:none;margin:0;padding:6px 0;max-height:360px;overflow-y:auto}.activity-row{width:100%;display:flex;align-items:flex-start;gap:10px;border:0;background:transparent;text-align:left;padding:10px 14px;cursor:pointer;color:inherit}.activity-row:hover{background:#faf6ef}.activity-dot{width:8px;height:8px;margin-top:6px;border-radius:99px;background:var(--accent);flex-shrink:0}.activity-row.is-ok .activity-dot{background:var(--ok)}.activity-row.is-bad .activity-dot{background:var(--bad)}.activity-row-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.activity-row-copy strong{font-size:13.5px;font-weight:650;line-height:1.3}.activity-row-copy em{font-style:normal;font-size:12px;color:var(--muted)}.activity-empty{margin:0;padding:20px 14px;color:var(--muted);font-size:13px}.board{flex:1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:14px;min-height:0}.board.sync-split{grid-template-columns:minmax(280px,.9fr) minmax(320px,1.2fr)}.board.sync-split:not(.sync-stacked)>.card:not(.result-card){align-self:start}.board.sync-stacked{grid-template-columns:1fr}.board.sync-stacked:has(>.result-card){grid-template-rows:auto minmax(0,1fr)}.board.sync-stacked>.result-card{position:relative;min-height:0;overflow:hidden}.result-body{flex:1;min-height:0;overflow:auto}.result-pagination{display:flex;justify-content:flex-end;align-items:center;width:100%;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}.pagination-bar{width:100%}.board.sync-stacked>.result-card .card-head{flex-shrink:0}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px;display:flex;flex-direction:column;min-height:0}.result-card{position:relative}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.card-head.tight{margin-top:16px}.action-card{padding:12px 16px;flex-shrink:0}.action-bar{display:flex;align-items:center;justify-content:space-between;gap:16px 20px;flex-wrap:wrap}.action-bar-copy{flex:0 1 auto;min-width:0}.action-bar-details{flex:1 1 280px;min-width:0}.food-search{display:block}.food-search input{margin:0}.status-filter{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.status-filter .pill{border:1px solid transparent;cursor:pointer;font:inherit;font-size:12px}.status-filter .pill.is-active{border-color:currentColor;font-weight:600}.action-bar .card-head{margin-bottom:4px}.action-bar .hint{margin:0;max-width:78ch;line-height:1.45}.action-bar .actions{margin-top:0;justify-content:flex-end}.action-bar-stack{flex-direction:column;align-items:stretch}.action-bar-stack .action-bar-copy,.action-bar-stack .action-bar-details,.action-bar-stack .actions{flex:none;width:100%}.action-bar-stack .actions{justify-content:flex-start}.actions-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions-group+.actions-group{padding-left:10px;margin-left:2px;border-left:1px solid var(--line)}.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px 16px;margin-top:12px}.fact{display:flex;flex-direction:column;gap:5px;min-width:0}.fact-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.fact-v{font-size:13px;font-weight:600;word-break:break-all}.fact .pill{width:fit-content}.result-embedded{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);flex:1;min-height:0;display:flex;flex-direction:column}.result-embedded .result{flex:1;min-height:0;overflow:auto}.config-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}h2{margin:0;font-size:18px}.muted,.hint{color:var(--muted);font-size:12px}.hint{margin:0 0 8px}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.span-2{grid-column:span 2}label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:0}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:4px;padding:9px 10px;font:14px var(--sans)}input[readonly]{background:#f7f1e6;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;padding:8px 14px;font:600 13px var(--sans);cursor:pointer}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.stop{background:var(--bad);border-color:var(--bad);color:#fff}.btn.ghost{padding:4px 8px;font-size:12px;background:transparent}.result-card .result{flex-shrink:0;margin:0 0 10px}.result-card .result-table{min-height:0}.result-card .result-body{display:flex;flex-direction:column}.result-card .result-table{display:flex;flex-direction:column;flex:0 1 auto}.result-card .result-table .grid-table-wrap{flex:0 1 auto;min-height:0}.grid-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}.grid-table{width:max-content;min-width:100%;border-collapse:collapse;table-layout:auto;font-size:13px}.grid-table th,.grid-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top;white-space:nowrap;word-break:normal;overflow-wrap:normal}.cell-json{margin:0;padding:6px 8px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:6px;background:#fafafa;font-family:SFMono-Regular,Consolas,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.album-thumbs{display:flex;gap:6px;align-items:center}.album-thumb{width:56px;height:56px;object-fit:cover;border:1px solid var(--line);border-radius:4px;background:#fff;vertical-align:middle}.grid-table th{position:sticky;top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--line);background:#fff8ef;color:var(--muted);font-weight:700;white-space:nowrap}.grid-table.schools-map td.schools-map-name,.grid-table.schools-map td.school-hvs-cell{white-space:normal;min-width:220px}.school-hvs-picker{width:100%;min-width:240px}.school-hvs-picker>button{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%;margin:0;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.school-hvs-picker>button:hover,.school-hvs-picker.is-open>button{border-color:var(--accent)}.school-hvs-picker>button:disabled{opacity:.55;cursor:default}.school-hvs-lines{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;flex:1}.school-hvs-line{display:block;line-height:1.35;white-space:normal}.school-hvs-picker>button .school-match-caret{margin-top:6px}.school-hvs-menu{position:fixed;z-index:80;max-width:calc(100vw - 24px);padding:8px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #2b261f29}.school-hvs-menu-search{margin:0 0 6px}.school-hvs-menu-search input{width:100%;margin:0}.school-hvs-menu-list{max-height:280px;margin:0;padding:0;overflow:auto;list-style:none}.school-hvs-menu-list li+li{margin-top:2px}.school-hvs-menu-list button{display:block;width:100%;margin:0;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:inherit;text-align:left;white-space:normal;cursor:pointer}.school-hvs-menu-list button:hover{background:#fff3e3}.school-hvs-menu-list button.is-active{background:#f4dcc8;color:var(--accent);font-weight:700}.school-hvs-empty{margin:8px 10px 4px;color:var(--muted);font-size:13px}.school-hvs-menu-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.school-hvs-menu-foot .btn{margin:0;padding:6px 12px}.grid-table.schools-map th.school-match-th{min-width:128px;padding:0;overflow:visible}.grid-table.schools-map th.school-match-th>button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;padding:8px 10px;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer}.grid-table.schools-map th.school-match-th>button:disabled{cursor:default}.grid-table.schools-map th.school-match-th.is-filtered,.grid-table.schools-map th.school-match-th.is-open{color:#8a4b12}.grid-table.schools-map th.school-match-th .school-match-caret{width:0;height:0;border:5px solid transparent;border-top-color:currentColor;margin-top:4px;flex-shrink:0}.school-match-menu{position:fixed;z-index:80;min-width:168px;margin:0;padding:6px;list-style:none;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #2b261f29}.school-match-menu li+li{margin-top:2px}.school-match-menu button{display:block;width:100%;margin:0;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.school-match-menu button:hover{background:#fff3e3}.school-match-menu button.is-active{background:#f4dcc8;color:var(--accent);font-weight:700}.grid-table.schools-map tbody tr.is-unmatched td{background:#ffe9a8}.grid-table.schools-map tbody tr.is-unmatched:hover td{background:#ffd978}.grid-table.schools-map tbody tr.is-need-report td{background:#ffc9c9}.grid-table.schools-map tbody tr.is-need-report:hover td{background:#ffb3b3}.school-report-flag{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;color:#9b1c1c}.steps-table th:nth-child(1),.steps-table td:nth-child(1){width:22%;white-space:nowrap}.steps-table th:nth-child(3),.steps-table td:nth-child(3){width:90px;text-align:center;white-space:nowrap}.steps-table th:nth-child(4),.steps-table td:nth-child(4){width:148px;white-space:nowrap}.processes-table th:nth-child(1),.processes-table td:nth-child(1){width:140px;white-space:nowrap}.processes-table th:nth-child(3),.processes-table td:nth-child(3){width:22%}.processes-table th:nth-child(5),.processes-table td:nth-child(5){width:148px;white-space:nowrap}.processes-table td:nth-child(4){white-space:normal;min-width:220px}.process-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.process-steps li{line-height:1.4}.process-steps .step-ord{color:var(--muted)}.process-steps .step-code{font-weight:600}.grid-table tbody tr:nth-child(2n) td{background:#fffdf8}.grid-table tbody tr:hover td{background:#f7f1e6}.grid-table tbody tr.row-bad td{background:var(--bad-bg)}.grid-table tbody tr.row-warn td{background:var(--warn-bg)}.grid-table tbody tr.row-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad)}.grid-table tbody tr.row-warn td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.grid-table tbody tr.row-manual td{background:var(--manual-bg)}.grid-table tbody tr.row-manual td:first-child{box-shadow:inset 3px 0 0 var(--manual)}.edit-cell{display:flex;align-items:center;gap:6px;width:100%;min-height:26px;padding:2px 6px;margin:-2px -6px;border:1px dashed transparent;border-radius:4px;background:transparent;font:inherit;color:inherit;text-align:left;cursor:text}.edit-cell:hover,.edit-cell:focus-visible{border-color:#cdbfa8;background:#fff}.edit-cell-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.edit-cell.is-manual:after{content:"";flex:none;width:6px;height:6px;margin-left:auto;border-radius:50%;background:var(--accent)}.mp-warn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--bad);color:#fff;font-size:11px;font-weight:700}.text-editor{position:fixed;z-index:1300;padding:4px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #281e0a29}.text-editor input[type=text]{width:100%;margin:0;padding:6px 8px}.text-editor-hint{margin:4px 6px 2px;font-size:12px;color:var(--muted)}.text-editor-hint.is-error{color:var(--bad)}.text-editor-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 4px 4px}.loai-cell{display:flex;align-items:center;gap:6px;width:100%;min-width:180px;min-height:30px;padding:4px 8px;border:1px solid #cdbfa8;border-radius:4px;background:#fff;font:inherit;color:inherit;text-align:left;cursor:pointer}.loai-cell:after{content:"▾";margin-left:auto;padding-left:4px;color:var(--muted);font-size:12px}.loai-cell:hover,.loai-cell:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px #c45c2626}.row-bad .loai-cell{border-color:#e9a8a1}.row-warn .loai-cell{border-color:#e3c47e}.row-manual .loai-cell{border-color:#9dbbe3}.loai-cell.is-saving{cursor:wait}.loai-cell.is-saving:after{content:""}.loai-cell.is-error{border-color:#e9a8a1}.loai-cell-status{flex:0 0 auto;font-size:12px;color:var(--accent)}.loai-cell-status.is-error{color:var(--bad)}.loai-cell-tag{margin-left:auto;padding:0 4px;border-radius:3px;background:#eee8dc;font-size:11px;color:var(--muted);white-space:nowrap}.th-filter{display:flex;align-items:center;gap:4px;width:100%;padding:0;border:0;background:transparent;font:inherit;font-weight:inherit;color:inherit;text-align:left;cursor:pointer;white-space:nowrap}.th-filter-icon{margin-left:auto;padding:0 4px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--muted);font-size:11px;line-height:16px}.th-filter:hover .th-filter-icon{border-color:var(--accent);color:var(--accent)}.th-filter.is-active{color:var(--accent)}.th-filter.is-active .th-filter-icon{border-color:var(--accent);background:var(--accent);color:#fff}.col-filter{position:fixed;z-index:1300;display:flex;flex-direction:column;padding:6px 0 0;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #281e0a2e;font-size:13px;color:var(--ink)}.col-filter-title{padding:4px 12px 6px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.col-filter-sort{display:flex;align-items:center;gap:8px;padding:7px 12px;border:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer}.col-filter-sort:hover{background:#f7f1e6}.col-filter-sort.is-on{color:var(--accent);font-weight:600}.col-filter-sort.is-on:after{content:"✓";margin-left:auto}.col-filter-body{padding:8px 12px 0;border-top:1px solid var(--line);margin-top:4px}.col-filter input[type=search]{width:100%;margin:0 0 6px;padding:6px 8px;font-size:13px}.col-filter-list{max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:4px;padding:2px 0}.col-filter-list label{display:flex;flex-direction:row;align-items:center;gap:8px;padding:4px 8px;font-size:13px;color:var(--ink);cursor:pointer}.col-filter-list label:hover{background:#f7f1e6}.col-filter-list input[type=checkbox]{flex:none;width:14px;height:14px;margin:0;padding:0;accent-color:var(--accent)}.col-filter-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-filter-count{flex:none;min-width:24px;padding:0 6px;border-radius:8px;background:#eee8dc;color:var(--muted);font-size:11px;text-align:center}.col-filter-all{border-bottom:1px solid var(--line);font-weight:600}.col-filter-more{margin:6px 8px;font-size:12px}.col-filter-actions{display:flex;align-items:center;gap:6px;padding:10px 12px}.col-filter-actions .btn{padding:5px 12px;font-size:13px}.col-filter-actions .col-filter-clear{margin-right:auto;padding:5px 0;border:0;background:transparent;color:var(--accent);font:inherit;cursor:pointer}.col-filter-actions .col-filter-clear:disabled{color:var(--muted);opacity:.5;cursor:default}.loai-editor{position:fixed;z-index:1300;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #281e0a29;padding:4px}.loai-editor input[type=search]{width:100%;margin:0}.loai-editor-status{margin:4px 6px;font-size:12px;color:var(--muted)}.loai-editor-status.is-error{color:var(--bad)}.loai-editor ul{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto}.loai-editor li{display:grid;grid-template-columns:56px 1fr auto;gap:8px;align-items:baseline;padding:6px 8px;border-radius:4px;cursor:pointer}.loai-editor li.is-active{background:#f7f1e6}.loai-editor li.is-current .loai-editor-name:after{content:" · đang map";color:var(--ok);font-size:12px}.loai-editor-unit{color:var(--muted);font-size:12px;white-space:nowrap}.result-card textarea{min-height:72px;font-size:12px;word-break:break-all}.token-secret{margin-top:10px}.token-secret-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:12px;color:var(--muted)}.token-secret-actions{display:flex;gap:4px}.token-secret-value{display:block;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font-family:SFMono-Regular,Consolas,Menlo,monospace;font-size:12px;line-height:1.45;word-break:break-all;max-height:3.2em;overflow:auto}.token-secret-value.is-open{max-height:8.5em}.result{border-radius:6px;padding:8px 12px;background:#f7f1e6}.result.ok{background:var(--ok-bg)}.result.bad{background:var(--bad-bg)}.result.warn{background:var(--warn-bg)}.result h3{margin:0;font-size:13px;font-weight:650;overflow-wrap:anywhere;word-break:break-word}.result p{margin:3px 0 0;font-size:12px;line-height:1.4;color:var(--ink);overflow-wrap:anywhere;word-break:break-word}.field-table{margin-top:10px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}.field-table.plain{border:none;border-radius:0;background:transparent;overflow:visible}.note-line{margin-top:6px;font-size:12.5px}.field-row{display:grid;grid-template-columns:140px 1fr;gap:8px;padding:8px 12px;border-top:1px solid var(--line);font-size:14px}.field-row:first-child{border-top:0}.field-row .k{color:var(--muted)}.field-row .v{font-weight:600;word-break:break-word}.json-view{margin:10px 0 0;padding:12px;overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:#fff;font-family:SFMono-Regular,Consolas,Menlo,monospace;font-size:12.5px;line-height:1.5;white-space:pre}.data-table{display:grid;gap:0}.data-head,.data-row{display:grid;grid-template-columns:minmax(140px,.9fr) minmax(160px,1fr) minmax(180px,1.4fr);gap:8px;padding:8px 12px;font-size:13px}.data-head{position:sticky;top:0;z-index:1;background:#fff8ef;color:var(--muted);font-weight:700}.data-row:nth-child(2n){background:#fffdf8}.data-row:hover{background:#f7f1e6}.data-head.catalog,.data-row.catalog{grid-template-columns:minmax(160px,.7fr) minmax(220px,1.3fr)}.data-head.ncc,.data-row.ncc{grid-template-columns:minmax(120px,1.1fr) minmax(140px,1.3fr) minmax(110px,1fr) 56px minmax(100px,1fr) 84px 96px}.data-table-wide{overflow-x:auto}.data-head.foods,.data-row.foods{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.data-head.orders,.data-row.orders{grid-template-columns:minmax(160px,1.2fr) minmax(140px,1fr) 96px 64px minmax(140px,1.4fr)}.order-dates{grid-template-columns:repeat(2,minmax(0,180px));margin-bottom:8px}.action-bar .fields,.action-bar .order-dates{margin-top:10px;margin-bottom:0}.ncc-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding:8px 0 2px}.ncc-toolbar input[type=search]{flex:1 1 220px;min-width:180px;border:1px solid var(--line);border-radius:6px;padding:7px 10px;font:13px var(--sans)}.ncc-list{display:grid;gap:10px;margin-top:10px}.ncc-card{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff}.ncc-card.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.ncc-pick{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:0}.ncc-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:8px}.ncc-id{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;min-width:0}.ncc-ten{font-size:14px}.ncc-facts{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.15fr) minmax(0,.95fr);gap:8px 28px;margin-bottom:8px}.ncc-fact-col{display:grid;gap:5px;align-content:start;min-width:0}.ncc-fact{display:grid;grid-template-columns:108px minmax(0,1fr);gap:6px 10px;align-items:start;font-size:13px}.ncc-fact .v{min-width:0;word-break:break-word}.hvs-chips{display:flex;flex-wrap:wrap;gap:4px}.hvs-chips .pill{padding:3px 8px;font-weight:500}@media(max-width:720px){.ncc-card .ncc-fact{grid-template-columns:1fr}}.ncc-card p{margin:0 0 6px;font-size:13px}.ncc-card .k{color:var(--muted);font-size:12px}.food-map-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px}.food-arrow{color:var(--muted)}.skip-list{display:grid;gap:10px;margin-top:14px}.skip-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.skip-card{border:1px solid var(--warn);border-radius:10px;padding:10px 12px;background:var(--warn-bg)}.skip-reason{margin:6px 0;font-weight:600;color:var(--warn)}.cert-block{display:grid;gap:6px}.cert-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;cursor:pointer;text-align:left;font:inherit}.cert-toggle:hover{border-color:var(--accent)}.cert-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:220px;overflow:auto}.cert-row{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#f7f1e6;font-size:12px}.cert-name{font-weight:600}.cert-row a{font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-row{border-top:1px solid var(--line);word-break:break-word}.pill{display:inline-flex;align-items:center;border-radius:4px;padding:5px 10px;font-size:12px;font-weight:600;background:#eee8dc;color:var(--muted)}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.manual{background:var(--manual-bg);color:var(--manual)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.muted{background:#eee8dc;color:var(--muted)}a.pill{text-decoration:none}a.pill:hover{text-decoration:none;filter:brightness(.97)}.hidden{display:none!important}.settings-page{display:flex;flex-direction:column;gap:14px;width:100%;min-width:0}.board.sync-stacked:has(>.settings-page){grid-template-rows:auto;align-content:start}.settings-status{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.settings-status.ok{background:var(--ok-bg);border-color:#c6e2d0}.settings-status.warn{background:var(--warn-bg);border-color:#edd9a3}.settings-status.bad{background:var(--bad-bg);border-color:#f3c4c0}.settings-status-copy{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;min-width:0;flex:1 1 220px}.settings-status-copy strong{font-size:16px}.settings-status .actions{margin-top:0}.settings-card{padding:16px 18px}.settings-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.settings-tile{display:flex;flex-direction:column;gap:8px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.settings-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.settings-v{font-size:14px;font-weight:600;word-break:break-all;line-height:1.4}.login-page{position:relative;min-height:100%;display:grid;place-items:center;padding:36px 28px;overflow:hidden;background:#1a120c}.login-hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.login-hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#1a120c29,#1a120c57)}.login-stage{position:relative;z-index:1;width:min(1080px,calc(100vw - 56px));display:grid;grid-template-columns:1fr 1fr;background:#fff8ef6b;border:1px solid rgba(255,255,255,.45);border-radius:28px;overflow:hidden;box-shadow:0 28px 80px #120c0857;backdrop-filter:blur(22px) saturate(1.25);-webkit-backdrop-filter:blur(22px) saturate(1.25)}.login-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 28px;background:#fff8ef38;border-right:1px solid rgba(255,255,255,.32)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;min-width:0}.brand-mark img{display:block;width:auto;height:var(--brand-logo);object-fit:contain}.brand-mark-lg{--brand-logo: 100px;margin-bottom:18px}.brand-mark-sm{--brand-logo: 40px}.login-copy h1{font-size:clamp(1.38rem,2.2vw,1.78rem);line-height:1.28;font-weight:700;letter-spacing:-.03em;margin:0 0 26px;max-width:none;white-space:nowrap;color:#4a342c;text-shadow:0 1px 0 rgba(255,253,248,.45)}.login-copy-slogan{margin:22px 0 0;max-width:none;font-size:14px;font-weight:500;line-height:1.35;letter-spacing:-.018em;white-space:nowrap;color:#6b4a3c;text-shadow:0 1px 0 rgba(255,253,248,.35)}.login-hero-pills{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,400px);margin:0;padding:0;list-style:none}.login-hero-pills li{display:flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;font-size:14px;font-weight:600;letter-spacing:.01em;line-height:1.2;text-align:center;white-space:nowrap;color:#c45c26;background:#fffdf88c;border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.login-panel{display:flex;align-items:stretch;min-width:0;background:#fffdf85c}.login-card{width:100%;display:flex;flex-direction:column;justify-content:center;gap:18px;background:transparent;border:0;border-radius:0;padding:48px 44px;box-shadow:none}.login-card.login-boot{text-align:center;color:var(--muted);font-weight:600}.login-brand{margin-bottom:2px;text-align:center}.login-brand strong{display:block;font-size:1.7rem;font-weight:700;color:#4a342c;letter-spacing:-.02em}.perm-group{border:1px solid var(--line);border-radius:8px;padding:6px 10px 10px;background:#fff}.account-form{display:flex;flex-direction:column;gap:14px}.account-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.account-flags{display:grid;grid-template-columns:1fr 1fr;gap:10px}.account-flag{display:flex;align-items:flex-start;gap:8px;margin:0;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.account-flag.on{border-color:#e8c4ad;background:#c45c2612}.account-flag-copy{min-width:0;padding-top:4px}.account-flag-copy strong{display:block;font-size:13.5px;font-weight:700;line-height:1.3}.account-flag-copy span{display:block;margin-top:2px;font-size:12px;color:var(--muted);line-height:1.35}.perm-panel{display:flex;flex-direction:column;gap:10px}.perm-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.perm-panel-head strong{font-size:13.5px}.perm-admin-note{margin:0;padding:10px 12px;border-radius:8px;background:var(--ok-bg);color:var(--ok);font-size:13px;line-height:1.4}.perm-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px 10px 8px}.perm-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid var(--line)}.perm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 8px}.perm-item{display:flex;align-items:center;gap:6px;margin:0;min-height:32px;min-width:0;font-size:13.5px;font-weight:500;line-height:1.25;cursor:pointer}.perm-item span{min-width:0;overflow-wrap:anywhere}.perm-item-group{font-weight:700;font-size:13px}@media(max-width:720px){.account-form-grid,.account-flags,.perm-grid{grid-template-columns:1fr}}@media(max-width:1100px){.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 1}.action-bar .actions{justify-content:flex-start}.settings-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.ncc-facts{grid-template-columns:1fr 1fr}}@media(max-width:820px){.board,.fields{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.actions-group+.actions-group{padding-left:0;margin-left:0;border-left:0}.settings-facts,.ncc-facts{grid-template-columns:1fr}}@media(max-width:860px){.login-page{padding:18px 14px;align-items:center}.login-stage{grid-template-columns:1fr;min-height:0}.login-copy{padding:32px 28px 24px;border-right:0;border-bottom:1px solid rgba(255,255,255,.32)}.brand-mark-lg{--brand-logo: 80px;margin-bottom:12px}.login-copy h1{font-size:1.22rem;margin-bottom:16px;white-space:normal}.login-copy-slogan{margin-top:16px;font-size:13px;white-space:normal}.login-card{padding:28px 24px 32px}}.audit-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.order-filters{display:grid;grid-template-columns:minmax(240px,1fr) 180px 220px 180px;gap:10px;align-items:start;max-width:1100px}.order-toolbar-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-right:2px}@media(max-width:720px){.order-filters{grid-template-columns:1fr}}.audit-table tbody tr.audit-row{cursor:pointer}.orders-table.grid-table th,.orders-table.grid-table td{white-space:normal;vertical-align:middle}.orders-table.grid-table th,.orders-table.grid-table td.orders-center{text-align:center;white-space:nowrap}.orders-table.grid-table{width:100%}.orders-table .orders-check{width:36px;text-align:center}.orders-table .orders-check input{cursor:pointer;width:16px;height:16px}.orders-table .order-code{display:block;margin-top:2px;font-weight:700}.orders-table .order-school-name{display:block}.orders-table .order-type{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:500}.orders-table .order-printed{display:block;font-size:13px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.orders-table .order-printed.is-bad{color:#b3261e;font-weight:600}.orders-table .order-menu-day{display:block;margin-top:2px;font-size:12px;font-weight:600;color:var(--muted)}.orders-table .order-menu-day.is-bad{color:#b3261e}.orders-table .orders-school{max-width:200px;white-space:normal;overflow-wrap:anywhere}.order-reason{font-size:12px;color:var(--muted)}.order-reason.is-bad{color:#b3261e;font-weight:600}.orders-table .order-reason{display:block;max-width:280px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.orders-table .order-reason-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.order-skip-school{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:12px;line-height:1.2}.orders-table .order-photo-cell{display:flex;justify-content:center;align-items:center;gap:8px;min-width:92px}.orders-table .order-photo-thumbs{display:flex;gap:4px}.orders-table .order-photo-thumbs img{width:32px;height:32px;border-radius:6px;object-fit:cover;border:1px solid var(--line);background:#fff}.orders-table tbody tr.audit-row td{transition:background .15s ease}.orders-table tbody tr.audit-row:hover td{background:#fff7ee}.orders-table tbody tr.audit-row.is-active td{background:#fde8d4}.order-drawer-paper{width:min(832px,100vw);height:100%;background:#fffdf8!important;display:flex;flex-direction:column}.order-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 16px 12px;border-bottom:1px solid var(--line);background:#fff;flex-shrink:0}.order-drawer-head h3{margin:0 0 6px;font-size:18px;letter-spacing:.01em}.order-drawer-kicker{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.order-drawer-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.order-drawer-head h3.order-drawer-school-title{font-size:15px;font-weight:400}.order-drawer-head>div:first-child{flex:1;min-width:0}.order-drawer-export{display:inline-flex;align-items:center;gap:6px}.order-drawer-tag-k{font-size:13px;color:var(--muted)}.order-drawer-kicker-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.order-drawer-kicker-row .order-drawer-kicker{margin:0}.order-drawer-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;align-self:stretch;gap:8px;flex-shrink:0;white-space:nowrap}.order-drawer-actions-top{display:flex;align-items:center;gap:8px}.order-drawer-trace{font-size:13px;font-weight:600}.order-drawer-school{margin:8px 0 0;font-size:13px;color:var(--ink)}.order-drawer-body{flex:1;min-height:0;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.order-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:10px}.order-fact .k{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-bottom:3px}.order-fact .v{font-size:13px;font-weight:600;word-break:break-word}.order-fact .v a{color:var(--accent)}.order-section-title{margin:0 0 8px;font-size:13px;font-weight:700}.order-lines{display:grid;gap:8px}.order-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 14px;font:inherit;color:inherit;cursor:default}.order-line.is-clickable{cursor:pointer}.order-line.is-clickable:hover{border-color:var(--accent);box-shadow:0 6px 16px #c45c2614}.order-line.is-active{border-color:var(--accent);background:#fff7ee}.order-line-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.order-line-top strong{font-size:14px}.order-line-qty{flex-shrink:0;font-weight:700;color:var(--accent)}.order-line-meta{margin-top:6px;color:var(--muted);font-size:12px}.order-line-action{margin-top:8px;color:var(--accent);font-size:12px;font-weight:700}.order-process{display:flex;flex-direction:column;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:10px}.order-process-grid,.order-process-block,.order-process-status,.order-process-line-body,.order-allocs{display:flex;flex-direction:column;gap:10px}.order-check{display:flex;align-items:center;gap:8px;font-size:13px}.order-process-error{margin:0;color:var(--bad);font-size:13px;font-weight:600}.order-process-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;text-align:left;border:0;background:transparent;padding:0;font:inherit;font-weight:700;cursor:pointer}.order-process-line{padding:10px 0;border-top:1px solid var(--line)}.order-process-ing{margin:0;font-size:13px;font-weight:600}.order-alloc{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px}.order-process-toolbar{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.order-process-toolbar .order-section-title,.order-process-toolbar p{margin:0}.order-process>summary{cursor:pointer;list-style:none}.order-process>summary::-webkit-details-marker{display:none}.order-process>summary .order-section-title:before{content:"▶";display:inline-block;margin-right:6px;font-size:10px}.order-process[open]>summary .order-section-title:before{content:"▼"}.order-process-line-tools{display:flex;align-items:center;gap:12px}.order-process-line-head{display:flex;align-items:flex-start;gap:10px}.order-process-line-head input{margin-top:3px;cursor:pointer;width:16px;height:16px;flex-shrink:0}.order-process-line-head .order-process-toggle{flex:1}.order-process-line.is-picked{background:#fff8f1;margin:0 -8px;padding:10px 8px;border-radius:8px}.order-process-more{border-top:1px solid var(--line);padding-top:8px}.order-drawer-extra{padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:10px}.order-process-more summary,.order-drawer-extra summary{cursor:pointer;font-weight:700;font-size:13px;margin-bottom:10px}.order-drawer-extra{display:flex;flex-direction:column;gap:12px}.order-drawer-extra>summary{margin-bottom:0}.order-process:not([open]),.order-drawer-extra:not([open]){gap:0}.order-process-actions{display:flex;flex-wrap:wrap;gap:8px}.order-mini{margin:0;padding:0;list-style:none;display:grid;gap:8px}.order-mini li{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.order-mini strong{display:block;font-size:13px}.order-mini span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.audit-time{font-variant-numeric:tabular-nums;white-space:nowrap}.audit-duration{font-size:12px}.audit-file{font-weight:600;word-break:break-all}.audit-reject-count{color:var(--bad);font-weight:700}.pill.audit-action-import{background:#eef3fb;color:#35527c}.pill.audit-action-push{background:#f7ebe3;color:var(--accent)}.pill.audit-action-pull{background:#e8f4ee;color:var(--ok)}.audit-detail{display:flex;flex-direction:column;gap:14px}.audit-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.audit-fact{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff8ef}.audit-hash{font-size:11px;word-break:break-all}.audit-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.audit-json-card{border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0}.audit-json-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fff8ef}.audit-json-head h3{margin:0;font-size:14px}.audit-json{margin:0;padding:12px;max-height:360px;overflow:auto;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.audit-inline-json{margin:6px 0 0;font-size:11px;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.audit-empty{padding:12px}.audit-error-text{color:var(--bad);font-weight:600;margin-bottom:4px}a.btn{text-decoration:none}@media(max-width:960px){.audit-split{grid-template-columns:1fr}}.catalog-scope{display:grid;gap:6px;margin-bottom:8px;max-width:720px}.catalog-scope-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}.catalog-scope-note .pill{border:1px solid transparent;cursor:pointer;font:inherit}.school-scope-option{display:grid;gap:2px}.school-scope-option .muted{font-size:12px}.grid-table .col-check{width:36px;text-align:center}.grid-table .col-check input{cursor:pointer;width:16px;height:16px;margin:0;padding:0}.mobile-appbar{position:sticky;top:0;z-index:1100;display:flex;align-items:center;gap:8px;min-height:56px;padding:env(safe-area-inset-top) 10px 0;background:#fffdf8;border-bottom:1px solid var(--line)}.mobile-appbar-title.MuiTypography-root{flex:1;min-width:0;margin:0;font-size:17px;font-weight:700;line-height:1.2}.mobile-appbar-end{display:flex;align-items:center;gap:6px}.mobile-appbar-end:empty{display:none}.mobile-token-warn.MuiIconButton-root{width:40px;height:40px;border-radius:8px;border:1px solid #edd9a3;background:var(--warn-bg);color:var(--warn)}.mobile-main{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.mobile-bottombar{position:fixed;left:0;right:0;bottom:0;z-index:1050;display:flex;align-items:center;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fffdf8;border-top:1px solid var(--line);box-shadow:0 -4px 16px #2b261f14}.mobile-bottombar:not(:has(>div:not(:empty))){display:none}.mobile-bottombar-start:empty,.mobile-bottombar-end:empty{display:none}.mobile-bottombar-end{flex:1;display:flex;gap:8px}.mobile-pager{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff}.mobile-pager .MuiIconButton-root{width:42px;height:42px}.mobile-pager span{min-width:52px;color:var(--muted);font-size:14px;text-align:center;font-variant-numeric:tabular-nums}.mobile-pager b{color:var(--ink)}.btn.mobile-actions-btn{flex:1;min-height:44px;border-radius:10px;font-size:15px}.action-sheet.MuiPaper-root{max-height:85vh;border:0;border-radius:16px 16px 0 0;background:var(--card);padding-bottom:env(safe-area-inset-bottom)}.action-sheet:before{content:"";display:block;width:40px;height:4px;margin:8px auto 0;border-radius:99px;background:#d9cdb9}.action-sheet-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 10px 16px;background:var(--card);border-bottom:1px solid var(--line)}.action-sheet-head strong{display:block;font-size:16px}.action-sheet-head .muted{display:block;margin-top:2px;font-size:12.5px}.actions.action-sheet-body{flex-direction:column;align-items:stretch;gap:12px;margin:0;padding:12px 16px 16px}@media(max-width:767.95px),(max-height:499.95px){#root{height:auto;min-height:100%}.login-page{min-height:100vh;min-height:100dvh}body{-webkit-text-size-adjust:100%}.shell{height:auto;overflow:visible;padding:12px 12px calc(24px + env(safe-area-inset-bottom))}.top{flex-direction:row;align-items:flex-start;flex-wrap:wrap;gap:8px 12px;margin-bottom:12px;min-height:0}.top-title{flex:1 1 160px;min-width:0}h1{font-size:1.3rem;line-height:1.25}.page-sub{font-size:12.5px;line-height:1.4}.top-meta .MuiIconButton-root,.activity-bell-btn{width:40px;height:40px}.top-meta .pill{min-height:40px}.activity-panel{position:fixed;top:calc(64px + env(safe-area-inset-top));left:8px;right:8px;width:auto;max-width:none;z-index:1200}.activity-list{max-height:60vh}.activity-row{padding:12px 14px}.board,.board.sync-split,.board.sync-stacked{display:flex;flex-direction:column;gap:12px}.board.sync-stacked>.result-card{overflow:visible}.card{padding:12px}.board{gap:10px}.result-body,.result-embedded .result,.result-card .result-table .grid-table-wrap{overflow:visible}.card-head{flex-wrap:wrap;gap:4px 10px}.action-card{padding:10px 12px}.action-bar,.action-bar-stack{flex-direction:column;align-items:stretch;gap:10px}.action-bar-copy,.action-bar-details,.action-bar .actions{flex:none;width:100%}.action-bar .hint{max-width:none}.action-bar .actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:0}.actions-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.actions-group+.actions-group{margin-left:0;padding-left:0;padding-top:12px;border-left:0;border-top:1px dashed var(--line)}.actions-group>.order-toolbar-k{grid-column:1 / -1}.actions-group>.btn{width:100%}.action-card .card-head h2,.result-card>.card-head h2{display:none}.action-card .card-head{margin-bottom:0}.action-card .card-head:not(:has(>.muted)){display:none}.result-card>.card-head:not(:has(.result-loading-label)){display:none}.board.sync-stacked>.result-card{padding:0;border:0;background:transparent}.result-card .result{margin-bottom:8px;padding:7px 10px}.btn{min-height:42px;padding:9px 14px;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;line-height:1.25}.btn.ghost{min-height:38px;padding:7px 12px;font-size:13px}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font-size:16px!important}input[type=checkbox]:not([class*=PrivateSwitchBase]){width:20px;height:20px;flex:none;margin:0;padding:0;accent-color:var(--accent)}.status-filter,.catalog-scope-note{gap:8px}.status-filter .pill,.catalog-scope-note .pill{min-height:34px;font-size:13px}.order-filters{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.order-filters>:nth-child(1){grid-area:1 / 1}.order-filters>:nth-child(4){grid-area:1 / 2}.order-filters>:nth-child(2){grid-area:2 / 1}.order-filters>:nth-child(3){grid-area:2 / 2}.order-filters .MuiFormHelperText-root{display:none}.catalog-scope{max-width:none}.result-pagination{padding-top:10px}.grid-table-wrap.cards-on-mobile{overflow:visible;border:0;border-radius:0;background:transparent}.grid-table-wrap.cards-on-mobile .grid-table{display:block;width:100%;min-width:0;font-size:14px}.grid-table-wrap.cards-on-mobile .grid-table thead{display:block;position:sticky;top:calc(56px + env(safe-area-inset-top));z-index:5;margin:0 -12px;padding:8px 12px 0;background:var(--bg)}.grid-table-wrap.cards-on-mobile .grid-table thead:not(:has(.th-filter,input,.school-match-th)){display:none}.grid-table-wrap.cards-on-mobile .grid-table thead tr{display:flex;gap:6px;overflow-x:auto;padding:0 0 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.grid-table-wrap.cards-on-mobile .grid-table thead tr::-webkit-scrollbar{display:none}.grid-table-wrap.cards-on-mobile .grid-table thead th{display:none}.grid-table-wrap.cards-on-mobile .grid-table thead th.col-check,.grid-table-wrap.cards-on-mobile .grid-table thead th.orders-check,.grid-table-wrap.cards-on-mobile .grid-table thead th.school-match-th{display:flex;align-items:center;flex:none;position:static;width:auto;min-width:0;min-height:38px;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;box-shadow:none;color:var(--ink);font-weight:600;text-align:left}.grid-table-wrap.cards-on-mobile .grid-table thead th:has(.th-filter){display:flex;align-items:center;flex:none;position:static;width:auto;min-width:0;min-height:38px;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;box-shadow:none;color:var(--ink);font-weight:600;text-align:left}.grid-table-wrap.cards-on-mobile .grid-table thead th.col-check,.grid-table-wrap.cards-on-mobile .grid-table thead th.orders-check{gap:8px;padding:0 14px 0 10px}.grid-table-wrap.cards-on-mobile .grid-table thead th.col-check:after,.grid-table-wrap.cards-on-mobile .grid-table thead th.orders-check:after{content:attr(data-chip);font-size:13px;white-space:nowrap}.grid-table-wrap.cards-on-mobile .th-filter{gap:6px;min-height:36px;padding:0 12px;font-size:13px}.grid-table-wrap.cards-on-mobile .th-filter.is-active{color:var(--accent)}.grid-table-wrap.cards-on-mobile .grid-table thead th.school-match-th.is-filtered{border-color:var(--accent);background:#fff3e3}.grid-table-wrap.cards-on-mobile .grid-table thead th:has(.th-filter.is-active){border-color:var(--accent);background:#fff3e3}.grid-table-wrap.cards-on-mobile .grid-table.schools-map th.school-match-th>button{min-height:36px;padding:0 12px}.grid-table-wrap.cards-on-mobile .grid-table tbody{display:flex;flex-direction:column;gap:10px}.grid-table-wrap.cards-on-mobile .grid-table tbody tr{position:relative;display:flex;flex-direction:column;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px #2b261f0d}.grid-table-wrap.cards-on-mobile .grid-table tbody td{display:block;position:relative;width:auto;min-width:0;max-width:none;min-height:0;padding:3px 0 3px calc(32% + 8px);border:0;background:transparent!important;box-shadow:none!important;text-align:left;white-space:normal;overflow-wrap:anywhere;vertical-align:baseline}.grid-table-wrap.cards-on-mobile .grid-table tbody td:before{content:attr(data-label);position:absolute;top:4px;left:0;width:32%;color:var(--muted);font-size:12px;font-weight:600;line-height:1.35;white-space:normal}.grid-table-wrap.cards-on-mobile .grid-table tbody td:not([data-label]){padding-left:0}.grid-table-wrap.cards-on-mobile .grid-table tbody td:not([data-label]):before{content:none}.grid-table-wrap.cards-on-mobile .grid-table tbody td:empty{display:none}.grid-table-wrap.cards-on-mobile .grid-table tbody td[data-primary]{order:-1;min-height:0;padding:0 40px 6px 0;border-top:0;font-size:15px;font-weight:700;line-height:1.35;color:var(--ink)}.grid-table-wrap.cards-on-mobile .grid-table tbody td[data-primary]:before{content:none}.grid-table-wrap.cards-on-mobile .grid-table tbody td.col-check,.grid-table-wrap.cards-on-mobile .grid-table tbody td.orders-check{position:absolute;top:4px;right:4px;width:auto;min-height:0;padding:8px;border:0}.grid-table-wrap.cards-on-mobile .grid-table tbody td.cell-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 0 0}.grid-table-wrap.cards-on-mobile .grid-table tbody td.cell-actions:before{content:none}.grid-table-wrap.cards-on-mobile .grid-table tbody td.cell-actions .btn{min-width:76px}.grid-table-wrap.cards-on-mobile .grid-table tbody tr.row-bad{background:var(--bad-bg);border-color:#f3c4c0;box-shadow:inset 4px 0 0 var(--bad)}.grid-table-wrap.cards-on-mobile .grid-table tbody tr.row-warn{background:var(--warn-bg);border-color:#edd9a3;box-shadow:inset 4px 0 0 var(--warn)}.grid-table-wrap.cards-on-mobile .grid-table tbody tr.row-manual{background:var(--manual-bg);border-color:#c4d6ef;box-shadow:inset 4px 0 0 var(--manual)}.grid-table-wrap.cards-on-mobile .grid-table.schools-map tbody tr.is-unmatched{background:#fff4d1;border-color:#f0d27a;box-shadow:inset 4px 0 #d9a514}.grid-table-wrap.cards-on-mobile .grid-table.schools-map tbody tr.is-need-report{background:#ffe3e3;border-color:#f3b0b0;box-shadow:inset 4px 0 #c53030}.grid-table-wrap.cards-on-mobile .grid-table tbody tr.row-bad td,.grid-table-wrap.cards-on-mobile .grid-table tbody tr.row-warn td,.grid-table-wrap.cards-on-mobile .grid-table tbody tr.row-manual td,.grid-table-wrap.cards-on-mobile .grid-table tbody tr.is-unmatched td,.grid-table-wrap.cards-on-mobile .grid-table tbody tr.is-need-report td{border-top-color:#2b261f14}.grid-table-wrap.cards-on-mobile .audit-table tbody tr.audit-row:active{border-color:var(--accent)}.grid-table-wrap.cards-on-mobile .orders-table tbody tr.audit-row.is-active{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.grid-table-wrap.cards-on-mobile .loai-cell,.grid-table-wrap.cards-on-mobile .school-hvs-picker{min-width:0}.grid-table-wrap.cards-on-mobile .loai-cell,.grid-table-wrap.cards-on-mobile .edit-cell{min-height:32px}.grid-table-wrap.cards-on-mobile .edit-cell{margin:0;padding:3px 8px;border-color:#e9dfcf;background:#fffdf8}.grid-table-wrap.cards-on-mobile .loai-cell{padding:3px 8px}.grid-table-wrap.cards-on-mobile td:has(>.edit-cell,>.loai-cell):before{top:9px}.grid-table-wrap.cards-on-mobile .orders-table .order-school-name{font-weight:700}.grid-table-wrap.cards-on-mobile .orders-table .order-code{margin-top:4px;color:var(--accent);font-size:13px;font-weight:600}.grid-table-wrap.cards-on-mobile .orders-table tbody tr{flex-direction:row;flex-wrap:wrap;column-gap:6px}.grid-table-wrap.cards-on-mobile .orders-table tbody td{flex:1 1 100%}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-pill{order:-1;flex:0 0 auto;padding:0 0 6px}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-pill:before,.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-printed:before,.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-reason:before,.grid-table-wrap.cards-on-mobile .orders-table tbody td.is-empty{display:none}.grid-table-wrap.cards-on-mobile .orders-table .pill{padding:3px 8px}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-photo{display:flex;align-items:center;gap:4px}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-photo:before{display:inline;position:static;width:auto;font-size:12px}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-printed,.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-reason{padding-left:0}.grid-table-wrap.cards-on-mobile .orders-table td.orders-printed .order-printed{color:var(--muted);font-size:13px}.grid-table-wrap.cards-on-mobile .orders-table td.orders-printed .order-printed.is-bad{color:#b3261e}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-inline{flex:0 0 auto;padding-left:0;margin-right:10px;font-size:13px}.grid-table-wrap.cards-on-mobile .orders-table tbody td.orders-inline:before{position:static;display:inline;width:auto;margin-right:4px}.grid-table-wrap.cards-on-mobile .orders-table .orders-school,.grid-table-wrap.cards-on-mobile .orders-table .order-reason{max-width:none}.grid-table-wrap.cards-on-mobile .orders-table .order-photo-cell{justify-content:flex-start;min-width:0}.grid-table-wrap.cards-on-mobile .orders-table .order-photo-thumbs img{width:40px;height:40px}.grid-table-wrap.cards-on-mobile .orders-table .order-skip-school{min-height:36px}.col-filter,.loai-editor,.text-editor,.school-hvs-menu,.school-match-menu{position:fixed!important;top:calc(64px + env(safe-area-inset-top))!important;right:8px!important;bottom:auto!important;left:8px!important;width:auto!important;min-width:0!important;max-width:none!important;max-height:calc(100vh - 88px);max-height:calc(100dvh - 80px - env(safe-area-inset-top));overflow:auto;border-radius:14px;box-shadow:0 18px 48px #2b261f47,0 0 0 100vmax #1a120c52}.col-filter-list{max-height:42vh}.col-filter-list label,.col-filter-sort,.school-hvs-menu-list button,.school-match-menu button{min-height:44px;padding-top:10px;padding-bottom:10px}.col-filter-actions .btn,.school-hvs-menu-foot .btn{min-height:40px}.loai-editor ul,.school-hvs-menu-list{max-height:50vh}.loai-editor li{grid-template-columns:52px minmax(0,1fr);padding:10px 8px}.loai-editor-unit{grid-column:2}.order-drawer-paper{width:100vw}.order-drawer-head{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:calc(10px + env(safe-area-inset-top)) 14px 12px}.order-drawer-actions{display:contents;white-space:normal}.order-drawer-actions-top{grid-row:1;justify-content:space-between}.order-drawer-actions-top .MuiIconButton-root{width:40px;height:40px;border:1px solid var(--line);background:#fffdf8}.order-drawer-export{justify-content:center;width:100%}.order-drawer-head h3{font-size:16px}.order-drawer-tag-k{display:none}.order-drawer-body{padding:12px 12px calc(20px + env(safe-area-inset-bottom));gap:12px}.order-facts{gap:10px 12px;padding:12px}.order-process,.order-drawer-extra{padding:12px}.order-process>summary,.order-drawer-extra>summary{min-height:32px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.order-process-actions{position:sticky;top:0;z-index:3;margin:0 -12px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--line)}.order-process-actions .btn{flex:1 1 calc(50% - 4px)}.order-process-note{display:none}.order-alloc{grid-template-columns:repeat(2,minmax(0,1fr))}.order-alloc>:nth-child(3){grid-column:1 / -1}.order-line{padding:12px}.order-check{flex-direction:row;min-height:40px}.account-flag{flex-direction:row;align-items:center;min-height:56px}.account-flag-copy{padding-top:0}.data-table{overflow-x:auto}.data-head,.data-row{width:max-content;min-width:100%}.field-row{grid-template-columns:minmax(96px,36%) minmax(0,1fr)}.audit-split{grid-template-columns:1fr}.audit-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.ncc-fact{grid-template-columns:96px minmax(0,1fr)}.modal-actions-compact{position:sticky;bottom:0;background:var(--card)}.modal-actions-compact>.MuiButton-root,.modal-actions-compact>.btn{flex:1 1 auto;min-height:44px}}@media(max-width:600px){.login-page{padding:calc(14px + env(safe-area-inset-top)) 12px 14px}.login-stage{width:100%;border-radius:20px}.login-copy{padding:22px 18px 16px}.brand-mark-lg{--brand-logo: 60px;margin-bottom:8px}.login-copy h1{font-size:1.05rem;margin-bottom:0}.login-hero-pills,.login-copy-slogan{display:none}.login-card{padding:20px 18px 24px;gap:14px}}html:has(.shell.dich),.shell.dich{background:#eef3ef}.shell.dich{flex:1;min-height:0;height:100%}.shell.dich .card{background:#fbfffb}.recv-layout{flex:1;display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:14px;min-height:0;align-items:stretch}.list-card{margin:0;min-height:0}.req-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow:auto}.req-item{text-align:left;width:100%;border:1px solid var(--line);background:#fff;color:inherit;border-radius:6px;padding:10px 12px;cursor:pointer;font:inherit}.req-item:hover,.req-item.active{border-color:#2f7a4b;background:var(--ok-bg)}.req-item .when{color:var(--muted);font-size:12px}.req-item .title{margin-top:2px;font-weight:600}.empty-detail{color:var(--muted);font-size:14px;flex:1}.meta-note{margin:0 0 10px;color:var(--muted);font-size:13px;flex-shrink:0}.detail-panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:0}.shell.dich .raw-json{flex:1;min-height:120px;margin:0;overflow:auto;white-space:pre-wrap;word-break:break-word;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f4f7f4;border:1px solid var(--line);border-radius:6px;padding:12px;color:var(--ink)}.shell.dich .raw-json-meta{flex:0 0 auto;max-height:180px;background:#eef2ee}.shell.dich .detail-panel .actions{flex-shrink:0;margin-top:8px}.shell.dich .field-table{flex:1;min-height:0;overflow:auto}@media(max-width:820px){.recv-layout{grid-template-columns:1fr}}
