:root{background:#f5f7f6;color:#17211c;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}button,input,select,textarea{font:inherit}.shell{margin:0 auto;max-width:1180px;padding:32px 24px}.topbar{align-items:start;display:flex;gap:24px;justify-content:space-between}.topbar h1{font-size:32px;line-height:1.15;margin:0}.topbar p{color:#52645b;margin:8px 0 0}.status-ok,.status-error{border-radius:999px;font-weight:700;padding:6px 10px}.status-ok{background:#dff5e7;color:#0e6532}.status-error{background:#ffe4df;color:#9a2d1f}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}.tabs button{background:#fff;border:1px solid #d7dfda;border-radius:6px;color:#25312b;cursor:pointer;padding:8px 12px}.tabs button.active{background:#18392b;border-color:#18392b;color:#fff}.module-summary{align-items:start;border-bottom:1px solid #d7dfda;border-top:1px solid #d7dfda;display:flex;gap:24px;justify-content:space-between;padding:18px 0}.module-summary h2{font-size:22px;margin:0 0 8px}.module-summary p{color:#52645b;margin:8px 0 0}.summary-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:24px}.summary-tile{background:#fff;border:1px solid #d7dfda;border-radius:6px;padding:12px}.summary-tile span{color:#52645b;display:block;font-size:12px;text-transform:uppercase}.summary-tile strong{display:block;font-size:24px;margin-top:4px}.notice{background:#fff7db;border:1px solid #ead58e;border-radius:6px;color:#5f4a00;margin:0;max-width:420px;padding:10px 12px}.workspace{margin-top:24px}.storage-map-workspace{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr) minmax(280px,.8fr)}.storage-room-list,.storage-room-canvas,.slot-inspector{background:#fff;border:1px solid #d7dfda;border-radius:6px;min-width:0;padding:14px}.storage-map-heading{border-bottom:1px solid #d7dfda;display:grid;gap:4px;margin-bottom:12px;padding-bottom:10px}.storage-map-heading span,.storage-room-header span,.slot-inspector-heading span{color:#52645b;font-size:13px}.storage-map-heading strong,.slot-inspector-heading strong{font-size:18px;min-width:0;overflow-wrap:anywhere}.storage-room-button{align-items:start;background:#f8faf9;border:1px solid #d7dfda;border-radius:6px;color:#17211c;cursor:pointer;display:grid;gap:8px;margin-top:8px;padding:10px;text-align:left;width:100%}.storage-room-button.active{background:#edf6f1;border-color:#1f6f4a;box-shadow:inset 3px 0 #1f6f4a}.storage-room-button small,.room-counts,.storage-slot-cell small,.slot-inspector-heading small{color:#52645b;font-size:12px}.storage-room-header{align-items:start;border-bottom:1px solid #d7dfda;display:flex;gap:18px;justify-content:space-between;margin-bottom:14px;padding-bottom:12px;min-width:0}.storage-room-header h3{font-size:24px;line-height:1.2;margin:2px 0 0;overflow-wrap:anywhere}.storage-map-metrics{display:flex;flex-wrap:wrap;gap:8px;justify-content:end}.storage-map-metrics span{background:#edf2ef;border:1px solid #d7dfda;border-radius:4px;color:#32423a;font-size:12px;font-weight:700;padding:5px 7px}.shelf-map{align-items:start;background:linear-gradient(90deg,rgba(215,223,218,.42) 1px,transparent 1px),linear-gradient(180deg,rgba(215,223,218,.34) 1px,transparent 1px),#f8faf9;background-size:32px 32px;border:1px solid #d7dfda;border-radius:6px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));min-height:560px;min-width:0;padding:16px}.shelf-region{background:#ffffffeb;border:2px solid #bdc9c2;border-radius:6px;box-shadow:0 8px 18px #17211c0f;display:grid;gap:12px;min-height:160px;min-width:0;padding:12px}.shelf-region-1{margin-top:34px}.shelf-region-2{margin-top:12px}.shelf-region header{align-items:baseline;display:flex;gap:10px;justify-content:space-between;min-width:0}.shelf-region header span{color:#1f6f4a;flex:0 1 auto;font-size:12px;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.shelf-region header strong{font-size:18px;min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.shelf-slots{display:grid;gap:8px;min-width:0}.storage-slot-cell{align-content:start;background:#fff;border:1px solid #d7dfda;border-left:5px solid #8aa097;border-radius:4px;color:#17211c;cursor:pointer;display:grid;gap:4px;min-height:76px;min-width:0;padding:9px;text-align:left}.storage-slot-cell.active{border-color:#1f6f4a;border-left-color:#1f6f4a;box-shadow:0 0 0 2px #1f6f4a2e}.storage-slot-cell.ready{border-left-color:#1f6f4a}.storage-slot-cell.unassigned,.storage-slot-cell.missing_par,.storage-slot-cell.missing_par_and_profile,.storage-slot-cell.missing_profile,.storage-slot-cell.policy_profile_mismatch{border-left-color:#c9971a}.slot-code{color:#52645b;font-size:12px;font-weight:800;text-transform:uppercase}.storage-slot-cell strong{font-size:13px;line-height:1.25;min-width:0;overflow-wrap:anywhere}.storage-slot-status{align-self:end;border-radius:4px;color:#32423a;font-size:11px;font-weight:800;justify-self:start;padding:4px 6px}.storage-slot-status.ready{background:#dff5e7;color:#0e6532}.storage-slot-status.unassigned,.storage-slot-status.missing_par,.storage-slot-status.missing_par_and_profile,.storage-slot-status.missing_profile,.storage-slot-status.policy_profile_mismatch{background:#fff7db;color:#5f4a00}.slot-inspector{position:sticky;top:18px}.slot-inspector-heading{border-bottom:1px solid #d7dfda;display:grid;gap:4px;margin-bottom:14px;padding-bottom:12px}.slot-inspector-grid{display:grid;gap:12px}.slot-inspector-grid label{display:grid;gap:6px}.slot-inspector-grid input,.slot-inspector-grid select{border:1px solid #bdc9c2;border-radius:4px;max-width:100%;min-width:0;padding:8px;width:100%}.slot-inspector-submit{border-top:1px solid #d7dfda;display:grid;gap:10px;margin-top:14px;padding-top:12px}.slot-inspector-submit p{color:#52645b;margin:0;overflow-wrap:anywhere}.slot-inspector-submit button,.assignment-submit button,.mutation-panel>button,.auth-panel button{background:#18392b;border:1px solid #18392b;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:9px 12px}.slot-assignment-workspace{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(280px,.9fr) minmax(420px,1.4fr)}.slot-browser,.slot-assignment-form{background:#fff;border:1px solid #d7dfda;border-radius:6px;padding:14px}.slot-browser-controls{display:grid;gap:8px;grid-template-columns:1fr auto;margin-bottom:12px}.slot-browser-controls input,.slot-browser-controls select,.assignment-grid input,.assignment-grid select{border:1px solid #bdc9c2;border-radius:4px;padding:8px}.slot-list{display:grid;gap:8px;max-height:680px;overflow:auto}.slot-row{align-items:center;background:#f8faf9;border:1px solid #d7dfda;border-radius:6px;color:#17211c;cursor:pointer;display:flex;gap:10px;justify-content:space-between;padding:10px;text-align:left}.slot-row.active{border-color:#1f6f4a;box-shadow:inset 3px 0 #1f6f4a}.slot-row small{color:#52645b;display:block;margin-top:4px}.setup-status{border-radius:999px;color:#32423a;flex:0 0 auto;font-size:12px;font-weight:700;padding:5px 8px}.setup-status.ready{background:#dff5e7;color:#0e6532}.setup-status.unassigned,.setup-status.missing_par,.setup-status.missing_par_and_profile,.setup-status.missing_profile,.setup-status.policy_profile_mismatch{background:#fff7db;color:#5f4a00}.assignment-summary{border-bottom:1px solid #d7dfda;margin-bottom:14px;padding-bottom:12px}.assignment-summary span{color:#52645b;display:block;font-size:13px}.assignment-summary strong{display:block;font-size:20px;margin-top:4px}.assignment-summary p,.assignment-submit p{color:#52645b;margin:6px 0 0}.assignment-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-grid label{display:grid;gap:6px}.assignment-submit{align-items:center;border-top:1px solid #d7dfda;display:flex;gap:18px;justify-content:space-between;margin-top:16px;padding-top:14px}.auth-panel,.mutation-panel{background:#fff;border:1px solid #d7dfda;border-radius:6px;margin-top:18px;padding:14px}@media(max-width:860px){.storage-map-workspace,.slot-assignment-workspace,.assignment-grid,.slot-browser-controls{grid-template-columns:1fr}.assignment-submit{align-items:stretch;flex-direction:column}.storage-room-header{display:block}.storage-map-metrics{justify-content:start;margin-top:10px}.shelf-map{grid-template-columns:1fr}.shelf-region{grid-column:auto!important;margin-top:0}.slot-inspector{position:static}}@media(max-width:1120px){.storage-map-workspace{grid-template-columns:minmax(180px,.45fr) minmax(0,1fr)}.slot-inspector{grid-column:1 / -1;position:static}}@media(max-width:860px){.storage-map-workspace{grid-template-columns:1fr}}.auth-panel{align-items:center;display:flex;gap:16px;justify-content:space-between}.auth-note{color:#52645b;font-size:.9rem;margin:4px 0 0}.auth-controls{display:flex;flex-wrap:wrap;gap:8px}.auth-controls input,.mutation-grid input,.mutation-grid select,.mutation-grid textarea{border:1px solid #bdc9c2;border-radius:4px;padding:8px}.mutation-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:12px}.mutation-grid label{display:grid;gap:6px}.mutation-grid textarea{min-height:78px}.checkbox-field{align-content:center;display:flex!important;gap:8px!important}.success-state{background:#dff5e7;border:1px solid #8fd3a8;border-radius:6px;color:#0e6532;margin:12px 0 0;padding:10px}.error-inline{color:#9a2d1f;margin:4px 0 0}.table-wrap{overflow-x:auto}.module-table{background:#fff;border:1px solid #d7dfda;border-collapse:collapse;width:100%}.module-table th,.module-table td{border-bottom:1px solid #d7dfda;padding:10px 12px;text-align:left;vertical-align:top}.module-table th{background:#edf2ef}.empty-state,.error-state{background:#fff;border:1px solid #d7dfda;border-radius:6px;margin:0;padding:16px}.error-state{border-color:#efb4aa;color:#9a2d1f}.inventory-form{align-content:start;background:#fff;border:1px solid #d7dfda;display:grid;gap:12px;padding:16px}.inventory-form label{display:grid;gap:6px}.inventory-form input{border:1px solid #bdc9c2;border-radius:4px;padding:8px}.inventory-form span{color:#9a2d1f;font-size:13px}@media(max-width:860px){.topbar,.module-summary{display:block}.notice{margin-top:14px;max-width:none}}
