@font-face{font-family:"Noto Sans";src:url('fonts/NotoSans-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Noto Sans";src:url('fonts/NotoSans-SemiBold.ttf') format('truetype');font-style:normal;font-weight:500 700;font-display:swap}
:root{--bg:#f5f8f6;--panel:#fff;--ink:#15362f;--muted:#6d7e79;--line:#dce7e2;--green:#36ad73;--green2:#58c68a;--deep:#082f29;--deep2:#0e453b;--ivory:#fffaf4;--danger:#c84545;--warning:#c58a1d;--blue:#3377a8;--shadow:0 20px 60px rgba(10,48,40,.10);--radius:22px;--radius-sm:14px;--sidebar:258px;font-family:"Noto Sans",sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:inherit}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:800;color:#4fa878}.small{font-size:.88rem}.wide{width:100%}
.btn{border:0;border-radius:13px;padding:11px 16px;font-weight:780;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.18s ease;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--green),#2d9564);color:#fff;box-shadow:0 10px 22px rgba(54,173,115,.22)}.btn.ghost{background:#eff5f2;color:var(--ink);border:1px solid #dfe9e5}.btn.ai{background:linear-gradient(135deg,#183c34,#3dac75);color:white;box-shadow:0 12px 30px rgba(15,72,61,.24)}.btn.danger{background:#b83a3a;color:#fff}.btn.danger-soft{background:#fff1ef;color:#a83d35;border:1px solid #f0cbc7}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.icon-btn{border:0;background:transparent;cursor:pointer;color:inherit;padding:8px;border-radius:10px}
.alert{padding:12px 14px;border-radius:14px;font-size:.9rem;line-height:1.45}.alert.danger{background:#fff0ef;color:#9c3434;border:1px solid #f1c8c4}.alert.warning{background:#fff8e7;color:#7c5a18;border:1px solid #ebd49a}.alert.info{background:#edf8f3;color:#275e4e;border:1px solid #cfe9de}.alert.compact{padding:9px 12px}
/* Auth */
.auth-page{min-height:100vh;display:grid;place-items:center;background:var(--deep);overflow:auto;position:relative}.auth-bg{position:fixed;inset:0;background:linear-gradient(135deg,rgba(3,30,25,.86),rgba(2,22,18,.68)),url('logo.png') center/760px auto no-repeat;filter:saturate(.9);transform:scale(1.08)}.auth-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 15%,rgba(73,193,131,.22),transparent 30%),radial-gradient(circle at 85% 80%,rgba(74,187,128,.13),transparent 25%)}.auth-shell{position:relative;z-index:1;width:min(94vw,560px);padding:34px 0}.glass{background:rgba(255,255,255,.94);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 40px 100px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.5)}.auth-card{border-radius:30px;padding:34px}.auth-logo{width:94px;height:94px;border-radius:25px;display:block;box-shadow:0 12px 28px rgba(8,47,41,.25);margin-bottom:23px}.auth-copy h1{font-size:2rem;line-height:1.05;margin:0 0 12px}.auth-copy h1 span{color:#3baa71}.auth-copy>p:last-child{color:var(--muted);line-height:1.6;margin:0 0 24px}.auth-form{display:grid;gap:15px;margin-top:18px}.auth-form label,.form-grid label{display:grid;gap:7px}.auth-form label>span,.form-grid label>span{font-size:.8rem;font-weight:760;color:#536862}.auth-form input,.form-grid input,.form-grid select,.form-grid textarea,.search,.filterbar select,.filters select,.lab-select{width:100%;border:1px solid #d9e5df;background:#fbfdfc;border-radius:13px;padding:12px 13px;outline:none;color:var(--ink);transition:.15s}.auth-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.search:focus,.filterbar select:focus{border-color:#66bc91;box-shadow:0 0 0 4px rgba(60,170,113,.1)}.password-wrap{position:relative}.password-wrap input{padding-right:45px}.password-wrap .icon-btn{position:absolute;right:5px;top:4px}.auth-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;color:#74847f;font-size:.82rem;margin-top:20px}.auth-links a{color:#337c61;font-weight:700}.admin-auth .auth-bg{background:linear-gradient(135deg,rgba(3,27,23,.87),rgba(5,34,29,.73)),url('logo.png') center/700px auto no-repeat}
/* App shell */
.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#082f29,#0b3b33 62%,#092e28);color:#eaf6f1;padding:19px 15px;display:flex;flex-direction:column;box-shadow:14px 0 38px rgba(5,36,30,.08)}.side-brand{display:flex;align-items:center;gap:12px;padding:5px 7px 23px}.side-brand img{width:50px;height:50px;border-radius:15px;box-shadow:0 8px 20px rgba(0,0,0,.22)}.side-brand b{font-size:1.25rem}.side-brand small{display:block;color:#91b6aa;font-size:.68rem;margin-top:3px}.side-nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#a8c9bf;display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;cursor:pointer;text-align:left}.nav-item span{width:23px;text-align:center;font-size:1.1rem}.nav-item b{font-weight:680}.nav-item:hover{background:rgba(255,255,255,.06);color:white}.nav-item.active{background:linear-gradient(135deg,rgba(76,194,132,.2),rgba(50,163,111,.14));color:#fff;border:1px solid rgba(123,220,167,.12)}.nav-item.ai-nav{margin-top:7px;color:#c6f3dd}.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding-top:16px}.user-card{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#4bb980,#77d5a4);display:grid;place-items:center;color:#083329;font-weight:900}.user-card b{display:block;font-size:.82rem;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card small{color:#97bcb1}.side-foot-actions{display:flex;gap:12px;margin-top:12px;font-size:.75rem;color:#9bc3b7}.side-foot-actions button,.side-foot-actions a{border:0;background:none;color:inherit;padding:0;cursor:pointer}.side-foot-actions button:hover,.side-foot-actions a:hover{color:white}.main-column{margin-left:var(--sidebar);min-height:100vh}.content{padding:32px clamp(22px,4vw,55px) 70px;max-width:1700px;margin:auto}.mobile-top{display:none}.view{display:none}.view.active{display:block;animation:fadeUp .25s ease}@keyframes fadeUp{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
.page-head{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:24px}.page-head h1{margin:0 0 7px;font-size:clamp(1.8rem,3vw,2.55rem);letter-spacing:-.035em}.page-head>div>p:last-child{margin:0;color:var(--muted);max-width:780px;line-height:1.55}.page-actions{display:flex;gap:10px;align-items:center}.lab-select{min-width:220px;background:white}.panel{background:var(--panel);border:1px solid #e1eae6;border-radius:var(--radius);box-shadow:0 6px 22px rgba(18,65,54,.04);padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px}.panel-head h2{margin:0;font-size:1.05rem}.panel-head p{margin:4px 0 0;font-size:.83rem}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.kpi{background:linear-gradient(145deg,#fff,#f8fbf9);border:1px solid #e0ebe6;border-radius:19px;padding:18px;position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-20px;top:-20px;background:rgba(73,180,123,.08)}.kpi span{display:block;color:var(--muted);font-size:.78rem;font-weight:700}.kpi b{display:block;font-size:1.8rem;margin-top:5px;letter-spacing:-.04em}.kpi small{display:block;color:#5d736c;margin-top:5px}.kpi.alert-kpi b{color:#bd6149}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.quick-panel{margin-top:17px;display:flex;align-items:center;justify-content:space-between;gap:20px}.quick-panel h2{margin:2px 0}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;flex:1;max-width:970px}.quick{border:1px solid #e1ebe7;background:#fbfdfc;border-radius:16px;padding:13px;text-align:left;color:var(--ink);cursor:pointer;transition:.15s}.quick:hover{transform:translateY(-2px);border-color:#b9decd;box-shadow:0 10px 22px rgba(17,74,59,.07)}.quick span{font-size:1.2rem;color:#3eaa73}.quick b,.quick small{display:block}.quick b{margin:4px 0 2px;font-size:.85rem}.quick small{font-size:.7rem;color:var(--muted)}
.mini-list{display:grid;gap:8px}.mini-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf2f0}.mini-row:last-child{border-bottom:0}.code-chip{font-family:"Noto Sans",sans-serif;background:#eef5f2;border-radius:9px;padding:5px 7px;font-size:.75rem;color:#306e59}.mini-row b{font-size:.82rem}.mini-row small{display:block;color:var(--muted);margin-top:2px}.stock-badge{padding:5px 8px;border-radius:999px;font-weight:750;font-size:.72rem;background:#fff1ec;color:#aa513d}.empty-state{text-align:center;color:var(--muted);padding:28px 10px;font-size:.9rem}.empty-state b{display:block;color:var(--ink);margin-bottom:5px}
/* tables */
.filterbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.search-wrap{position:relative;flex:1;min-width:230px}.search-wrap span{position:absolute;left:13px;top:12px;color:#7f948d}.search-wrap .search{padding-left:36px}.filterbar select{width:auto;min-width:170px;background:#fff}.switch-label{display:flex;align-items:center;gap:7px;font-size:.78rem;color:#52655f}.switch-label input{accent-color:#3baa72}.table-wrap{overflow:auto;border:1px solid #e6eeea;border-radius:15px}table{width:100%;border-collapse:collapse;font-size:.82rem}th{position:sticky;top:0;background:#f5f9f7;color:#688078;text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:11px 12px;border-bottom:1px solid #dfe9e5;white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid #edf2f0;vertical-align:middle}tbody tr{transition:.12s}tbody tr:hover{background:#fbfdfc}tbody tr.clickable{cursor:pointer}.item-name b{display:block;font-size:.84rem}.item-name small{display:block;color:var(--muted);margin-top:2px;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:.69rem;font-weight:760}.status.ok{background:#eaf8f0;color:#27734f}.status.low{background:#fff0eb;color:#a34a37}.status.pending{background:#fff6df;color:#8b651f}.status.out{background:#edf1f0;color:#5c6a66}.table-foot{display:flex;justify-content:space-between;gap:10px;padding:11px 2px 0;font-size:.76rem}.row-actions{display:flex;gap:5px}.row-actions button{border:1px solid #e0e8e5;background:#fff;border-radius:9px;padding:6px 8px;cursor:pointer;color:#46645a}
/* timeline */
.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:34px 1fr auto;gap:11px;padding:12px 2px;border-bottom:1px solid #edf2f0}.timeline-item:last-child{border-bottom:0}.timeline-icon{width:31px;height:31px;border-radius:10px;background:#eef7f3;display:grid;place-items:center;color:#35936a;font-size:.85rem}.timeline-item b{font-size:.83rem}.timeline-item p{font-size:.77rem;color:var(--muted);margin:3px 0 0}.timeline-item time{font-size:.68rem;color:#85968f;white-space:nowrap}.timeline.compact .timeline-item{padding:9px 2px}.timeline.compact .timeline-icon{width:27px;height:27px}
/* orders */
.orders-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:17px}.order-suggestions{display:grid;gap:8px}.suggestion{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px;border:1px solid #e7eeeb;border-radius:13px}.suggestion input[type=checkbox]{accent-color:#35a970}.suggestion b{font-size:.82rem}.suggestion small{display:block;color:var(--muted)}.qty-input{width:75px!important;padding:7px 8px!important}.orders-list{display:grid;gap:9px}.order-card{border:1px solid #e3ebe7;border-radius:14px;padding:12px}.order-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.order-card b{font-size:.86rem}.order-card small{color:var(--muted)}.order-card-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:.73rem;color:#657a73}
/* locations */
.location-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:17px}.location-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;max-height:720px;overflow:auto;padding-right:3px}.location-card{border:1px solid #e2ebe7;border-radius:15px;padding:13px;background:#fbfdfc;cursor:pointer}.location-card:hover{border-color:#b7ddcc}.location-card .loc-code{font-size:1.15rem;font-weight:850;color:#277655}.location-card b{display:block;font-size:.78rem;margin:5px 0 3px}.location-card small{color:var(--muted);font-size:.68rem}.location-card.system{background:#f1f4f3}.map-panel{overflow:hidden}.storage-map{width:100%;border-radius:14px;border:1px solid #e1e9e6;display:block}.map-full{width:min(96vw,1500px);padding:14px}.map-full img{width:100%;display:block;border-radius:15px}
/* AI */
.ai-hero{background:linear-gradient(135deg,#092f29,#0e493d 67%,#20734f);color:white;border-radius:28px;padding:28px;display:flex;gap:22px;align-items:center;margin-bottom:17px;box-shadow:0 20px 45px rgba(9,59,47,.18)}.ai-orb{width:70px;height:70px;flex:0 0 70px;border-radius:22px;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#92edbb,#3bb174 55%,#1b7652);font-size:2rem;box-shadow:0 0 0 8px rgba(255,255,255,.05),0 15px 35px rgba(0,0,0,.22)}.ai-hero .eyebrow{color:#93d7b8}.ai-hero h1{font-size:2rem;margin:0 0 7px}.ai-hero p:last-child{margin:0;color:#bcd7ce;max-width:900px;line-height:1.55}.ai-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:17px}.principles{display:grid;gap:10px}.principles>div{display:grid;grid-template-columns:38px 1fr;gap:1px 10px;padding:10px 0;border-bottom:1px solid #edf2f0}.principles>div:last-child{border:0}.principles span{grid-row:1/3;width:34px;height:34px;border-radius:10px;background:#edf8f3;color:#308663;display:grid;place-items:center;font-size:.7rem;font-weight:800}.principles b{font-size:.82rem}.principles p{font-size:.74rem;color:var(--muted);margin:2px 0}.ai-result{margin-top:17px}.report-summary{font-size:.95rem;line-height:1.65;color:#455d55;background:#f4faf7;border-radius:14px;padding:15px}.report-section{margin-top:20px}.report-section h3{margin:0 0 9px;font-size:1rem}.report-list{display:grid;gap:8px}.report-card{border:1px solid #e3ebe7;border-radius:13px;padding:11px}.severity{font-size:.65rem;font-weight:850;border-radius:999px;padding:4px 7px;text-transform:uppercase}.severity.critical,.severity.high{background:#fff0ed;color:#a84435}.severity.medium{background:#fff6df;color:#8c671c}.severity.low,.severity.info{background:#eaf7f1;color:#2d7655}.relocation{display:grid;grid-template-columns:65px 1fr 130px 130px 40px;gap:8px;align-items:center;border-bottom:1px solid #edf2f0;padding:9px 0;font-size:.78rem}.relocation:last-child{border:0}.priority{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eff6f3;font-weight:850;color:#317655}
/* forms/modal */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid .full{grid-column:1/-1}.form-grid .check{display:flex;align-items:center;gap:8px;padding-top:24px}.form-grid .check input{width:auto;accent-color:#36a86f}.form-grid textarea{resize:vertical;min-height:85px}.nested{background:#f7faf8;border:1px solid #e4ece8;padding:12px;border-radius:14px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:6px}.modal{position:fixed;z-index:100;inset:0;background:rgba(4,28,23,.58);display:none;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(5px)}.modal.open{display:flex}.modal-card{width:min(96vw,620px);max-height:92vh;overflow:auto;background:white;border-radius:24px;padding:23px;box-shadow:0 40px 100px rgba(0,0,0,.28);position:relative}.modal-card.wide{width:min(96vw,840px)}.modal-card.extra-wide{width:min(96vw,1040px)}.modal-card.small-card{width:min(94vw,480px)}.modal-x{position:absolute;right:13px;top:13px;width:34px;height:34px;border:0;border-radius:50%;background:#edf3f0;color:#53655f;font-size:1.25rem;cursor:pointer}.modal-head{padding-right:35px;margin-bottom:18px}.modal-head h2{margin:0;font-size:1.35rem}.modal-copy{color:#5e726b;line-height:1.6;font-size:.88rem}.detail-hero{display:flex;gap:14px;align-items:flex-start;padding-right:35px}.detail-code{background:#edf7f2;color:#2f805d;padding:8px 10px;border-radius:12px;font-family:ui-monospace,monospace;font-weight:800}.detail-hero h2{margin:0 0 5px}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.detail-stat{background:#f6f9f7;border:1px solid #e5ece9;padding:11px;border-radius:13px}.detail-stat small{display:block;color:var(--muted);font-size:.68rem}.detail-stat b{display:block;margin-top:4px}.positions{display:flex;gap:7px;flex-wrap:wrap}.position-pill{background:#edf7f2;border:1px solid #d3e9de;padding:7px 9px;border-radius:10px;font-size:.75rem}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}
/* toast/loading */
.toast-stack{position:fixed;z-index:300;right:18px;bottom:18px;display:grid;gap:9px;width:min(92vw,370px)}.toast{background:#123d34;color:#f1fbf7;border-radius:14px;padding:12px 14px;box-shadow:0 20px 50px rgba(0,0,0,.2);display:grid;grid-template-columns:auto 1fr;gap:9px;animation:toastIn .2s ease}.toast.error{background:#8e3834}.toast.success{background:#155f47}.toast .ticon{font-size:1rem}.toast b{font-size:.82rem}.toast p{font-size:.74rem;margin:2px 0 0;color:rgba(255,255,255,.78)}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.loading-overlay{position:fixed;z-index:250;inset:0;background:rgba(6,34,29,.5);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;gap:12px}.spinner{width:44px;height:44px;border-radius:50%;border:4px solid rgba(255,255,255,.22);border-top-color:white;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* admin */
.admin-page{background:#f5f8f6}.topbar{height:74px;background:#092f29;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,55px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px}.brand img{width:43px;height:43px;border-radius:13px}.brand b{display:block}.brand small{display:block;color:#9ebfb6;font-size:.68rem}.top-actions{display:flex;align-items:center;gap:9px}.topbar .btn.ghost{background:rgba(255,255,255,.08);color:white;border-color:rgba(255,255,255,.1)}.user-pill{font-size:.78rem;color:#c3ddd5}.admin-main{max-width:1500px;margin:auto;padding:30px clamp(20px,4vw,55px) 70px}.hero-panel{background:linear-gradient(135deg,#0a342d,#156149);color:white;padding:27px;border-radius:25px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}.hero-panel h1{margin:0 0 6px}.hero-panel p:last-child{margin:0;color:#b8d4cb}.tabs{display:flex;gap:7px;margin:18px 0}.tab{border:1px solid #dae6e1;background:white;border-radius:12px;padding:10px 15px;font-weight:750;cursor:pointer;color:#557069}.tab.active{background:#0e4439;color:white;border-color:#0e4439}.admin-section .panel{padding:0}.admin-section .panel-head{padding:18px 18px 0}.admin-section .table-wrap{border-radius:0 0 20px 20px;border-left:0;border-right:0;border-bottom:0}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select,.filters .search{width:auto;min-width:160px}.logs-list{padding:0 18px 18px;display:grid;gap:9px}.log-card{border:1px solid #e1eae6;border-radius:14px;padding:12px}.log-top{display:flex;justify-content:space-between;gap:10px}.log-top b{font-size:.82rem}.log-top time{color:#85968f;font-size:.68rem}.log-summary{margin:5px 0;color:#536b63;font-size:.8rem}.log-meta{font-size:.68rem;color:#83938e;display:flex;gap:10px;flex-wrap:wrap}.log-json{margin-top:9px;background:#f5f8f6;border-radius:10px;padding:9px;white-space:pre-wrap;word-break:break-word;font-size:.68rem;max-height:190px;overflow:auto;display:none}.log-card.open .log-json{display:block}.role-badge{font-size:.68rem;padding:5px 7px;border-radius:999px;background:#eef5f2}.role-badge.manager{background:#eaf7f0;color:#2e7556}.role-badge.admin{background:#e9edf7;color:#3d527c}.user-state{font-size:.68rem;font-weight:800}.user-state.active{color:#2b8059}.user-state.off{color:#a54f42}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.quick-panel{display:block}.quick-actions{margin-top:14px;max-width:none}.orders-grid,.location-layout,.ai-grid{grid-template-columns:1fr}.map-panel{order:-1}.relocation{grid-template-columns:60px 1fr 100px 100px 35px}}
@media(max-width:820px){:root{--sidebar:0px}.sidebar{transform:translateX(-105%);width:258px;transition:.2s}.sidebar.open{transform:none}.main-column{margin-left:0}.mobile-top{height:64px;background:#092f29;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 14px;position:sticky;top:0;z-index:25}.brand-mini{display:flex;align-items:center;gap:8px}.brand-mini img{width:35px;height:35px;border-radius:10px}.content{padding:23px 14px 55px}.page-head{align-items:flex-start;display:block}.page-actions{margin-top:15px;flex-wrap:wrap}.lab-select{min-width:0;flex:1}.dashboard-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.form-grid .check{padding-top:0}.nested{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 14px}.top-actions .user-pill,.top-actions .btn:first-child{display:none}.hero-panel{align-items:flex-start;display:block}.hero-actions{margin-top:15px}.stack-mobile{display:block!important}.filters{margin-top:10px}.relocation{grid-template-columns:55px 1fr 30px}.relocation .from,.relocation .to{display:none}.suggestion{grid-template-columns:auto 1fr auto}.suggestion .supplier-col{display:none}.table-foot{display:block}.table-foot span{display:block;margin-top:4px}}
@media(max-width:520px){.auth-card{padding:25px 20px;border-radius:23px}.auth-logo{width:78px;height:78px}.auth-copy h1{font-size:1.7rem}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:13px}.kpi b{font-size:1.45rem}.quick-actions{grid-template-columns:1fr 1fr}.panel{padding:14px}.page-head h1{font-size:1.8rem}.filterbar select{width:100%}.orders-grid{grid-template-columns:1fr}.modal{padding:10px}.modal-card{padding:19px 15px;border-radius:19px}.detail-grid{grid-template-columns:1fr 1fr}.ai-hero{padding:20px;align-items:flex-start}.ai-orb{width:50px;height:50px;flex-basis:50px;border-radius:16px}.ai-hero h1{font-size:1.5rem}.top-actions{gap:5px}.topbar .btn{padding:8px 10px}.user-pill{display:none}}
/* reports */
.report-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:17px;margin-bottom:17px}.report-form{align-content:start}.report-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:4px}.report-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:4px 0 14px}.report-kpis>div{background:#f2f8f5;border:1px solid #e0ebe6;border-radius:13px;padding:10px}.report-kpis small{display:block;color:var(--muted);font-size:.66rem}.report-kpis b{display:block;margin-top:4px;font-size:1.05rem;color:#16463a}.report-preview{border-top:1px solid #edf2f0;padding-top:7px}.report-more{padding:11px;text-align:center;color:#668078;font-size:.75rem;background:#f7faf8;border-radius:11px;margin-top:8px}.report-note{font-size:.82rem;color:#577069;line-height:1.65}.report-note b{color:#1d5545}.order-card .detail-actions{margin-top:10px}.order-card .detail-actions .btn{flex:0 0 auto}
@media(max-width:1180px){.report-grid{grid-template-columns:1fr}.report-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.report-kpis{grid-template-columns:1fr 1fr}.report-actions .btn{width:100%}}


/* =========================================================
   Labortaki UI refresh — overview / navigation / responsive
   ========================================================= */
html,body{width:100%;max-width:100%;overflow-x:hidden}body{font-size:16px;line-height:1.5}body,button,input,select,textarea{font-family:"Noto Sans",ui-sans-serif,system-ui,sans-serif}b,strong{font-weight:600}h1,h2,h3,h4,.brand-name,.user-name{font-weight:600}.app-shell,.main-column,.content,.view,.panel,.panel-flat{min-width:0;max-width:100%}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.ui-icon{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.18em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-item .ui-icon{width:21px;height:21px;flex:0 0 21px}.nav-item[data-view="stars"] .ui-icon,.nav-item[data-view="ai"] .ui-icon{fill:none}.nav-item{font-size:.94rem;font-weight:500;padding:13px 14px;gap:13px}.nav-item span{width:auto;text-align:left;font-size:inherit}.side-nav{gap:5px}.side-brand{padding-bottom:26px}.side-brand .brand-name{display:block;font-size:1.22rem}.side-brand small{font-size:.76rem;line-height:1.35;margin-top:2px}.user-card .user-name{display:block;font-size:.82rem;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-foot-actions{font-size:.8rem}.avatar{font-weight:600}.content{padding:30px clamp(24px,3vw,48px) 64px;width:100%}.page-head{align-items:flex-start;margin-bottom:22px}.page-head h1{font-size:clamp(1.85rem,2.6vw,2.45rem);font-weight:600;letter-spacing:-.025em;line-height:1.15}.page-head>div>p:last-child{font-size:.96rem;line-height:1.6}.eyebrow,.section-kicker{font-size:.74rem;font-weight:600;letter-spacing:.11em}.btn{font-weight:500;font-size:.92rem;padding:11px 15px}.btn.small{font-size:.84rem}.icon-btn{font-weight:500}.panel{padding:21px;border-radius:20px;box-shadow:0 5px 18px rgba(18,65,54,.035)}.panel-head{align-items:flex-start;margin-bottom:14px}.panel-head h2{font-size:1.08rem;font-weight:600;line-height:1.3}.panel-head p{font-size:.86rem;line-height:1.5}.row-title{display:block;font-size:.91rem;font-weight:600;line-height:1.35}.row-sub{display:block;color:var(--muted);font-size:.8rem;line-height:1.45;margin-top:3px}.code-chip{font-family:"Noto Sans",ui-sans-serif,system-ui,sans-serif;font-weight:600;font-size:.78rem;padding:5px 8px}.status{font-weight:500;font-size:.73rem}.empty-state{display:grid;gap:5px;justify-items:center;padding:28px 12px;font-size:.88rem}.empty-state strong{font-size:.95rem;color:var(--ink)}.empty-state span{color:var(--muted)}.empty-state.large{grid-column:1/-1;padding:54px 15px}.muted{line-height:1.55}

/* Overview */
.overview-head{margin-bottom:17px}.overview-selector{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#eef6f2;border:1px solid #dce9e3;border-radius:17px;padding:16px 18px;margin-bottom:17px}.overview-selector label{display:block;font-size:.94rem;font-weight:600;color:#244b40}.overview-selector p{margin:3px 0 0;color:var(--muted);font-size:.8rem}.overview-selector .lab-select{width:min(330px,45%);min-width:250px;background:#fff;font-size:.92rem}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:17px}.overview-wide{grid-column:1/-1}.overview-panel{overflow:hidden}.section-kicker{margin:0 0 4px;color:#438c68;text-transform:uppercase}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:29px;height:25px;padding:0 8px;margin-left:6px;border-radius:999px;background:#edf5f1;color:#315e50;font-size:.75rem;font-weight:600;vertical-align:2px}.count-pill.warning{background:#fff0e9;color:#a14d3c}.text-action{border:0;background:transparent;color:#2d7659;padding:5px 0;display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;cursor:pointer;white-space:nowrap}.text-action:hover{color:#174f3b}.text-action .ui-icon{width:16px;height:16px}.overview-list{display:grid}.overview-row{display:grid;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #edf2f0;min-width:0}.overview-row:first-child{border-top:0}.order-row{grid-template-columns:minmax(0,1fr) auto auto}.stock-row{grid-template-columns:auto minmax(0,1fr) auto}.overview-row-main{min-width:0}.overview-row-meta{display:grid;gap:2px;text-align:right;color:#657a73;font-size:.76rem}.stock-figure{text-align:right;min-width:82px}.stock-figure>span{display:block;font-size:.93rem;font-weight:600}.stock-figure small{display:block;color:var(--muted);font-size:.72rem}.dashboard-timeline .timeline-item{padding:11px 0}

/* Inventory / stars */
.filterbar{gap:10px;margin-bottom:16px}.search-wrap{min-width:220px}.search-wrap>.ui-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:#789088;z-index:1}.search-wrap .search{padding-left:39px}.search,.filterbar select,.lab-select,.form-grid input,.form-grid select,.form-grid textarea{font-size:.9rem}.switch-label{font-size:.82rem}.table-wrap{overflow-x:hidden;overflow-y:visible}.inventory-table table{table-layout:fixed;width:100%;font-size:.82rem}.inventory-table th,.inventory-table td{white-space:normal;overflow-wrap:anywhere}.inventory-table th{font-size:.69rem;font-weight:600;padding:11px 9px}.inventory-table td{padding:12px 9px}.inventory-table .col-star{width:44px;text-align:center}.inventory-table .col-code{width:78px}.inventory-table .col-reorder{width:72px}.inventory-table .col-pending{width:118px}.inventory-table .col-cost{width:88px}.inventory-table .col-status{width:96px}.inventory-table .col-detail{width:42px}.item-name .row-title{font-size:.88rem}.item-name small,.stock-cell small{display:block;color:var(--muted);font-size:.75rem;line-height:1.45;margin-top:3px}.stock-main{display:block;font-size:.9rem;font-weight:600}.star-btn{border:0;background:transparent;color:#b7c3be;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:1.3rem;line-height:1;cursor:pointer;transition:.15s}.star-btn:hover{background:#f5f4e8;color:#a78924}.star-btn.active{color:#d2a624}.detail-arrow{border:0;background:#eff5f2;color:#315f51;width:31px;height:31px;border-radius:9px;font-size:1.35rem;line-height:1;cursor:pointer}.table-foot{font-size:.8rem}.starred-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:11px}.starred-card{position:relative;display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:13px;align-items:center;border:1px solid #e0e9e5;border-radius:17px;padding:15px 50px 15px 15px;background:#fcfdfc;cursor:pointer;min-width:0;transition:.15s}.starred-card:hover{border-color:#b8dcca;box-shadow:0 8px 20px rgba(18,65,54,.05)}.starred-card .starred-remove{position:absolute;right:10px;top:10px}.starred-code{display:grid;place-items:center;min-height:50px;background:#eef6f2;border-radius:13px;color:#286f54;font-size:1.02rem;font-weight:600}.starred-copy{min-width:0}.starred-copy p{margin:5px 0 0;color:var(--muted);font-size:.79rem;line-height:1.45}.starred-stock{text-align:right}.starred-stock span{display:block;font-size:1.05rem;font-weight:600}.starred-stock small{font-size:.73rem;color:var(--muted)}

/* Timeline / detail */
.timeline-item{grid-template-columns:36px minmax(0,1fr) auto;gap:12px;padding:12px 0}.timeline-icon{width:32px;height:32px;font-size:.9rem}.timeline-item p{font-size:.79rem;line-height:1.5}.timeline-item time{font-size:.72rem}.timeline-user{display:block;margin-top:3px;color:#497363;font-size:.73rem}.movement-history-list{max-height:64vh;overflow-y:auto;padding-right:4px}.detail-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start}.detail-title{min-width:0}.detail-star{border:1px solid #dfe8e4;background:#fff;color:#6d7e79;border-radius:11px;padding:8px 11px;font-size:.8rem;cursor:pointer;white-space:nowrap}.detail-star.active{background:#fff9df;color:#8d6c14;border-color:#eadb9b}.detail-grid{gap:10px}.detail-stat{padding:13px}.detail-stat small{font-size:.74rem}.detail-stat span{display:block;margin-top:4px;font-size:.92rem;font-weight:600}.position-pill{font-size:.8rem}

/* Orders / reports */
.suggestion{font-size:.82rem}.suggestion .row-title{font-size:.86rem}.order-card{padding:14px}.order-card small{display:block;font-size:.77rem;margin-top:3px}.order-card-meta{font-size:.76rem;line-height:1.5}.report-kpis>div small{font-size:.73rem}.report-kpis>div span{display:block;margin-top:4px;font-size:1.02rem;font-weight:600;color:#16463a}.report-note{font-size:.86rem}

/* Locations — larger, readable cards */
.location-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;max-height:none;overflow:visible;padding-right:0}.location-card{padding:16px;border-radius:17px;cursor:default;min-width:0}.location-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.location-card .loc-code{font-size:1.28rem;font-weight:600;line-height:1.15;color:#277655}.location-label{display:block;font-size:.94rem;font-weight:600;line-height:1.38;margin:9px 0 6px;color:#15362f;overflow-wrap:anywhere}.location-meta{display:block;color:var(--muted);font-size:.81rem;line-height:1.45}.lab-tag{font-size:.68rem;color:#5c746b;background:#edf4f1;border-radius:999px;padding:4px 7px}.storage-map{max-width:100%;height:auto}

/* Keep every desktop/tablet view inside the viewport */
.orders-grid,.location-layout,.ai-grid,.report-grid,.overview-grid{min-width:0}.orders-grid>* ,.location-layout>* ,.ai-grid>* ,.report-grid>* ,.overview-grid>*{min-width:0}.form-grid>*{min-width:0}input,select,textarea{max-width:100%}.modal-card{max-width:calc(100vw - 28px)}.modal-card.extra-wide{width:min(1040px,calc(100vw - 28px))}

@media(max-width:1300px){
  .inventory-table .col-reorder,.inventory-table .col-pending,.inventory-table .col-cost{display:none}
  .inventory-table .col-status{width:92px}
}

/* Καταγραφή πειραμάτων */
.recording-head{align-items:flex-start}.recording-head .page-actions{max-width:760px;justify-content:flex-end;flex-wrap:wrap}
.recording-workspace{padding:16px}.recording-filterbar{display:grid;grid-template-columns:minmax(300px,1fr) 220px 150px;gap:10px;align-items:center;margin-bottom:12px}.recording-kind-filters{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.recording-kind-filters label{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--line,#d8e5e0);border-radius:999px;background:#fff;font-size:.88rem}.recording-table-wrap{overflow-x:auto;overflow-y:visible;max-height:none}.recording-table{min-width:1080px}.recording-table th button{border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:0;text-align:left}.recording-table td{vertical-align:top}.recording-table td:nth-child(5){min-width:240px}.recording-table td:nth-child(7){min-width:180px;white-space:normal}.recording-type{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.76rem;font-weight:800;background:#edf3f1;color:#23453f}.recording-type.bench{background:#e0f4e8;color:#12623e}.recording-type.demo{background:#e5edff;color:#284b9b}.recording-type.virtual{background:#f0e8ff;color:#6842a5}.recording-type.other{background:#fff0d7;color:#885a0b}.row-actions{white-space:nowrap}.row-actions .icon-btn{width:34px;height:34px}.row-actions .danger{color:#9b302d}
.recording-catalog-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.recording-catalog-tabs button{border:1px solid var(--line,#d8e5e0);background:#f7faf9;padding:9px 13px;border-radius:10px;font-family:inherit;font-weight:750;cursor:pointer}.recording-catalog-tabs button.active{background:#0e5646;color:#fff;border-color:#0e5646}.recording-catalog-form{display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin-bottom:14px}.recording-catalog-list{display:grid;gap:7px}.recording-catalog-list>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 12px;background:#f7faf9;border:1px solid var(--line,#d8e5e0);border-radius:10px}.recording-catalog-list>div>span:last-child{display:flex;gap:7px}.recording-report-body{overflow-x:auto}.recording-report-table{min-width:900px}.recording-report-table .position-ticket{margin:2px}.recording-schedule-preview{margin-top:18px}.recording-schedule-preview table{min-width:900px}.recording-schedule-preview input{width:100%;min-width:170px}.recording-report-head{align-items:center;justify-content:space-between}.recording-report-head>div{max-width:850px}
@media(max-width:900px){.recording-filterbar{grid-template-columns:1fr}.recording-kind-filters{grid-column:auto}.recording-head .page-actions{justify-content:flex-start}.recording-catalog-form{grid-template-columns:1fr}.recording-catalog-list>div{align-items:flex-start;flex-direction:column}}
@media(max-width:1020px){
  .overview-grid{grid-template-columns:1fr}.overview-wide{grid-column:auto}
  .page-head{gap:16px}.content{padding-left:28px;padding-right:28px}
  .overview-row-meta{display:none}
}
/* Tablets keep the same application shell as laptops. */
@media(min-width:721px) and (max-width:820px){
  :root{--sidebar:244px}.sidebar{transform:none!important;width:var(--sidebar)!important}.main-column{margin-left:var(--sidebar)!important}.mobile-top{display:none!important}.content{padding:26px 24px 60px!important}.page-head{display:flex!important}.page-actions{margin-top:0!important}.dashboard-grid{grid-template-columns:1fr!important}
}
@media(max-width:720px){
  :root{--sidebar:0px}.sidebar{width:274px}.mobile-top{height:64px}.content{padding:22px 14px 50px}.page-head{display:block}.page-head h1{font-size:1.72rem}.page-head>div>p:last-child{font-size:.9rem}.page-actions{margin-top:14px;width:100%}.page-actions .btn,.page-actions .lab-select{flex:1 1 auto}.overview-selector{display:block;padding:15px}.overview-selector .lab-select{width:100%;min-width:0;margin-top:12px}.panel{padding:16px;border-radius:17px}.panel-head{display:block}.panel-head .text-action,.panel-head>.btn{margin-top:10px}.order-row{grid-template-columns:minmax(0,1fr) auto}.stock-row{grid-template-columns:auto minmax(0,1fr)}.stock-row .stock-figure{grid-column:2;text-align:left;display:flex;align-items:baseline;gap:8px}.filterbar{align-items:stretch}.filterbar .search-wrap,.filterbar select,.filterbar .switch-label,.filterbar .btn{width:100%;min-width:0}.switch-label{padding:6px 2px}.inventory-table{border:0;background:transparent}.inventory-table table,.inventory-table tbody{display:block;width:100%}.inventory-table thead{display:none}.inventory-table tr{display:grid;grid-template-columns:40px 72px minmax(0,1fr) 36px;gap:5px 8px;border:1px solid #e1e9e5;border-radius:15px;padding:11px;margin-bottom:10px;background:#fff}.inventory-table td{border:0;padding:3px!important;width:auto!important}.inventory-table .col-star{grid-column:1}.inventory-table .col-code{grid-column:2}.inventory-table .item-name{grid-column:3}.inventory-table .col-detail{grid-column:4}.inventory-table .stock-cell{grid-column:2/5;padding-top:7px!important}.inventory-table .col-status{grid-column:2/5}.inventory-table .col-reorder,.inventory-table .col-pending,.inventory-table .col-cost{display:none}.table-foot{display:block}.table-foot span{display:block;margin-top:4px}.starred-grid{grid-template-columns:1fr}.starred-card{grid-template-columns:58px minmax(0,1fr);padding-right:45px}.starred-stock{grid-column:2;text-align:left;display:flex;gap:6px;align-items:baseline}.timeline-item{grid-template-columns:34px minmax(0,1fr)}.timeline-item time{grid-column:2;margin-top:-4px}.detail-hero{grid-template-columns:auto minmax(0,1fr)}.detail-star{grid-column:1/-1;width:100%}.detail-grid{grid-template-columns:1fr 1fr}.location-cards{grid-template-columns:1fr 1fr}.location-card{padding:14px}.location-card .loc-code{font-size:1.2rem}.location-label{font-size:.9rem}.location-meta{font-size:.78rem}.report-kpis{grid-template-columns:1fr 1fr}.orders-grid,.location-layout,.ai-grid,.report-grid{grid-template-columns:1fr}.modal-card{max-height:94vh}
}
@media(max-width:430px){
  .location-cards{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.overview-row{gap:9px}.status{font-size:.69rem}.starred-card{grid-template-columns:54px minmax(0,1fr)}
}

/* =========================================================
   Patch 02 — cache-safe navigation + visual hardening
   ========================================================= */
.nav-item{min-height:48px;width:100%;overflow:hidden}
.nav-item .nav-glyph{width:24px!important;height:24px;flex:0 0 24px;display:grid;place-items:center;text-align:center!important;font-size:0!important;line-height:0;color:currentColor}
.nav-item .nav-glyph svg{display:block;width:21px!important;height:21px!important;max-width:21px;max-height:21px;overflow:visible;stroke-linecap:round;stroke-linejoin:round}
.nav-item b{display:block;min-width:0;font-size:.92rem;font-weight:500;line-height:1.35;white-space:normal;text-align:left}
.action-arrow{display:inline-block;font-size:1.05rem;line-height:1;transform:translateY(-1px)}
.search-wrap .search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;display:grid;place-items:center;color:#789088;z-index:1;line-height:0}
.search-wrap .search-icon svg{display:block;width:18px;height:18px;stroke-linecap:round;stroke-linejoin:round}
.search-wrap .search{padding-left:41px}

/* The overview should read as one calm screen, not a collection of competing cards. */
.overview-head{padding-top:2px}
.overview-head .eyebrow{margin-bottom:6px}
.overview-selector{box-shadow:none}
.overview-panel{min-height:0}
.overview-panel .panel-head{padding-bottom:1px}
.overview-panel .overview-list{min-height:70px}

/* Laptop and large tablet are deliberately the same shell. */
@media(min-width:721px){
  .sidebar{transform:none!important}
  .main-column{margin-left:var(--sidebar)!important}
  .mobile-top{display:none!important}
}

/* =========================================================
   Patch 03 — compact sortable inventory + experiments
   ========================================================= */

/* Inventory: one-line rows, no horizontal scrolling, sticky headings */
.inventory-head{align-items:flex-start}.inventory-actions{flex-wrap:wrap;justify-content:flex-end}.btn.experiment-create{background:#173f35;color:#fff;border:1px solid #173f35;padding-right:10px}.btn.experiment-create:not(:disabled):hover{background:#0f342b}.selection-count{min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:rgba(255,255,255,.16);display:inline-grid;place-items:center;font-size:.75rem}.btn.experiment-create:disabled .selection-count{background:#dbe6e1;color:#73857e}.inventory-panel{padding:15px 15px 12px}.inventory-filterbar{margin-bottom:10px}.inventory-table{overflow:visible!important;max-width:100%;border-radius:12px}.inventory-table table{table-layout:fixed;width:100%;min-width:0;font-size:.82rem}.inventory-table thead{position:relative;z-index:8}.inventory-table th{position:sticky!important;top:0!important;z-index:9;background:#f1f6f4;padding:7px 5px;height:39px;border-bottom:1px solid #d7e3de;vertical-align:middle}.inventory-table th:first-child{border-top-left-radius:11px}.inventory-table th:last-child{border-top-right-radius:11px}.inventory-table td{height:45px;padding:6px 5px!important;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid #e6edea;font-weight:400}.inventory-table tbody tr{cursor:pointer;background:#fff;transition:background .12s}.inventory-table tbody tr:hover{background:#f7faf8}.inventory-table tbody tr.selected{background:#f0f8f4}.inventory-table tbody tr:focus{outline:2px solid #76bd99;outline-offset:-2px}.inventory-table .col-select{width:34px;text-align:center}.inventory-table .col-code{width:66px}.inventory-table .col-name{width:auto}.inventory-table .col-position{width:64px}.inventory-table .col-stock{width:78px}.inventory-table .col-reorder{width:55px;display:table-cell!important}.inventory-table .col-pending{width:108px;display:table-cell!important}.inventory-table .col-cost{width:101px;display:table-cell!important}.inventory-table .col-status{width:88px;display:table-cell!important}.inventory-table .item-name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:400}.inventory-table .col-stock span{font-weight:400}.position-code{font-size:.74rem;color:#61756e;white-space:nowrap}.pending-inline{display:inline-block;background:#fff5db;color:#8b651c;border-radius:999px;padding:4px 7px;font-size:.7rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.sort-head{width:100%;border:0;background:transparent;color:#657a73;padding:0;display:flex;align-items:center;gap:3px;justify-content:flex-start;text-align:left;font-size:.665rem;font-weight:600;line-height:1.12;letter-spacing:.035em;cursor:pointer;white-space:normal}.sort-head:hover,.sort-head.active{color:#226b50}.sort-arrows{width:auto!important;flex:0 0 auto;font-size:.72rem;line-height:1;color:#8ba098}.sort-head.active .sort-arrows{color:#27805d}.row-select{width:28px;height:28px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;border-radius:50%;padding:0}.row-select>span{width:16px;height:16px;border-radius:50%;border:1.6px solid #aebdb7;background:#fff;display:grid;place-items:center}.row-select>span:after{content:"";width:8px;height:8px;border-radius:50%;background:#2c9a68;transform:scale(0);transition:.12s}.row-select:hover{background:#eef6f2}.row-select.active>span{border-color:#2c9a68}.row-select.active>span:after{transform:scale(1)}.code-chip.subject-physics,.detail-code.subject-physics{background:#edf4fb;color:#306f9d}.code-chip.subject-chemistry,.detail-code.subject-chemistry{background:#fff0f4;color:#a24f6c}.code-chip.subject-biology,.detail-code.subject-biology{background:#eaf8ef;color:#278355}.code-chip.subject-general,.detail-code.subject-general{background:#eef5f2;color:#306e59}.inventory-table .code-chip{font-size:.73rem;padding:5px 7px;display:inline-block}.inventory-table .status{font-size:.69rem;padding:5px 8px}.inventory-table .table-foot{padding-top:9px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Experiments library */
.experiments-list{display:grid;gap:9px}.experiment-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #e1e9e5;border-radius:15px;padding:12px 13px;background:#fff;cursor:pointer;transition:.15s;min-width:0}.experiment-card:hover{border-color:#b9d9ca;background:#fbfdfc}.experiment-card:focus{outline:2px solid #72bb96;outline-offset:2px}.experiment-card-icon{width:38px;height:38px;border-radius:12px;background:#eaf6f0;color:#277b58;display:grid;place-items:center;font-size:1.15rem}.experiment-card-copy{min-width:0}.experiment-card-title{display:flex;align-items:center;gap:7px;min-width:0}.experiment-card-title>span:first-child{font-size:.94rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.experiment-card-copy p{margin:3px 0 0;font-size:.78rem;color:#506960}.experiment-card-copy small{display:block;margin-top:2px;font-size:.71rem;color:#84938e}.experiment-card-actions{display:flex;align-items:center;gap:7px}.ai-mini-badge{font-size:.64rem;background:#173f35;color:#d9f5e7;border-radius:999px;padding:3px 6px}.icon-danger{border:0;background:#fff0ee;color:#a24d43;width:30px;height:30px;border-radius:9px;cursor:pointer;font-size:1.1rem}

/* Full experiment editor */
.experiment-modal{padding:12px}.modal-card.experiment-editor{width:min(1320px,calc(100vw - 24px));max-width:none;height:min(94vh,1050px);max-height:94vh;padding:0;overflow-y:auto;overflow-x:hidden;border-radius:22px}.experiment-editor>.modal-x{position:sticky;top:13px;float:right;margin:12px 13px 0 0;z-index:30;background:#edf4f1}.experiment-editor-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:28px 62px 20px 30px;border-bottom:1px solid #e2ebe7;background:#fff;position:sticky;top:0;z-index:20}.experiment-editor-head h2{margin:2px 0 5px;font-size:1.55rem;font-weight:600}.experiment-editor-head p:last-child{margin:0;color:var(--muted);font-size:.86rem}.experiment-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.experiment-form{padding:0 30px 92px}.experiment-section{padding:22px 0;border-bottom:1px solid #e5ece9}.experiment-section-title{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:start;margin-bottom:15px}.experiment-section-title>span{width:30px;height:30px;border-radius:10px;background:#eaf5ef;color:#2e7f5c;display:grid;place-items:center;font-size:.76rem;font-weight:600}.experiment-section-title h3{margin:0;font-size:1rem;font-weight:600}.experiment-section-title p{margin:3px 0 0;color:var(--muted);font-size:.79rem}.block-label{display:grid;gap:7px}.block-label>span,.question-card label>span,.experiment-image-card label>span{font-size:.77rem;color:#536862;font-weight:500}.block-label textarea{width:100%;border:1px solid #d9e5df;background:#fbfdfc;border-radius:13px;padding:12px 13px;resize:vertical}.experiment-material-table{border:1px solid #dfe9e4;border-radius:13px;overflow:hidden}.experiment-material-head,.experiment-material-row{display:grid;grid-template-columns:68px minmax(150px,1fr) 80px 90px 112px 90px 32px;gap:8px;align-items:center;min-width:0}.experiment-material-head{background:#f2f6f4;padding:8px 10px;font-size:.66rem;color:#6a7f77;text-transform:uppercase;letter-spacing:.035em}.experiment-material-row{padding:7px 10px;border-top:1px solid #e5ede9;font-size:.79rem;min-height:46px}.experiment-material-row:first-child{border-top:0}.experiment-material-name{min-width:0}.experiment-material-name>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.experiment-material-name small{display:block;color:var(--muted);font-size:.68rem;margin-top:1px}.experiment-material-row input{width:100%;border:1px solid #d8e4de;border-radius:9px;padding:7px 8px;background:#fff;font-size:.79rem}.material-total{font-weight:500;color:#226b50}.material-remove{border:0;background:transparent;color:#9b5a51;width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:1.1rem}.material-remove:hover{background:#fff0ee}.guided-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.guided-grid label{display:grid;gap:6px}.guided-grid label>span{font-size:.78rem;font-weight:500;color:#4f665e}.guided-grid textarea{width:100%;border:1px solid #dce7e2;background:#fbfdfc;border-radius:12px;padding:11px;resize:vertical}.question-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}.question-builder{display:grid;gap:9px}.question-card{border:1px solid #dfe9e4;border-radius:13px;padding:12px;background:#fcfdfc;display:grid;gap:9px}.question-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.81rem;color:#2e574b;font-weight:500}.question-card-head small{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:8px;background:#edf4f1;color:#39725d;margin-right:5px}.question-card-head button{border:0;background:transparent;color:#a45d53;cursor:pointer;font-size:1rem}.question-card label{display:grid;gap:5px}.question-card textarea{width:100%;border:1px solid #dce7e2;border-radius:10px;padding:9px 10px;resize:vertical;font-size:.84rem}.question-preview-line{display:flex;gap:22px;color:#576c65;font-size:.82rem}.answer-line-preview{height:50px;background:repeating-linear-gradient(#fcfdfc 0 23px,#dce6e2 24px)}.drawing-size{grid-template-columns:1fr auto;align-items:center}.drawing-size input{grid-column:1/-1;width:100%;accent-color:#319a69}.drawing-preview{border:1px dashed #afc2ba;border-radius:10px;background:#fff;max-height:140px}.experiment-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:10px}.image-add-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.file-button{cursor:pointer}.experiment-image-card{position:relative;border:1px solid #dfe9e5;border-radius:13px;padding:8px;background:#fff}.experiment-image-card img{display:block;width:100%;height:130px;object-fit:cover;border-radius:9px;background:#eef3f1}.experiment-image-card label{display:grid;gap:4px;margin-top:7px}.experiment-image-card input{width:100%;border:1px solid #dde7e3;border-radius:8px;padding:7px;font-size:.76rem}.experiment-image-card>button{position:absolute;top:13px;right:13px;width:27px;height:27px;border:0;border-radius:50%;background:rgba(20,45,38,.82);color:#fff;cursor:pointer}.ai-experiment-section{background:linear-gradient(135deg,#f2f8f5,#fbfdfc);margin:18px -14px 0;padding:20px 14px;border-radius:17px;border:1px solid #deebe5}.ai-experiment-controls{display:flex;gap:9px;align-items:center}.ai-experiment-controls select{min-width:190px;border:1px solid #d7e4de;border-radius:11px;padding:10px;background:#fff}.experiment-ai-result{margin-top:14px}.experiment-ai-docs{display:grid;gap:8px}.experiment-ai-docs article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #dce8e2;background:#fff;border-radius:12px;padding:10px}.experiment-ai-docs article>span{width:30px;height:30px;border-radius:9px;background:#173f35;color:#bdebd3;display:grid;place-items:center;font-size:.69rem}.experiment-ai-docs h4{margin:0;font-size:.86rem;font-weight:600}.experiment-ai-docs p{margin:2px 0 0;font-size:.73rem;color:var(--muted)}.ai-doc-actions{display:flex;gap:5px}.experiment-sticky-actions{position:sticky;bottom:0;z-index:18;margin:20px -30px -92px;padding:13px 30px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid #dfe8e4;display:flex;justify-content:space-between;gap:10px}.experiment-sticky-actions>div{display:flex;gap:8px}.stock-check-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.stock-check-summary span{background:#eef5f2;border-radius:999px;padding:6px 10px;font-size:.76rem}.stock-check-summary .has-deficit{background:#fff0ec;color:#a64b3c}.stock-check-table{border:1px solid #dfe8e4;border-radius:13px;overflow:hidden}.stock-check-head,.stock-check-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 86px 92px 92px 92px minmax(150px,1fr);gap:7px;align-items:center}.stock-check-head{padding:8px 10px;background:#f2f6f4;color:#677d74;font-size:.65rem;text-transform:uppercase}.stock-check-row{padding:8px 10px;border-top:1px solid #e5ece9;font-size:.77rem}.stock-check-row>div:first-child{min-width:0}.stock-check-row>div:first-child>span:not(.code-chip){display:inline}.stock-check-row small{display:block;color:var(--muted);font-size:.66rem;margin-top:2px}.stock-check-row.short{background:#fffaf8}.deficit-order{display:flex;align-items:center;gap:6px}.deficit-order input{width:76px;border:1px solid #e2c9c4;border-radius:8px;padding:6px}.stock-order-actions{margin-top:13px}.stock-order-actions>div:not(.alert){display:flex;justify-content:space-between;gap:15px;align-items:center}.stock-order-actions p{margin:0;color:var(--muted);font-size:.78rem}

/* Tablet = laptop shell. Keep all inventory columns visible. */
@media(min-width:721px) and (max-width:980px){:root{--sidebar:202px}.sidebar{width:var(--sidebar)!important;padding-left:10px;padding-right:10px}.side-brand{gap:8px;padding-left:3px;padding-right:3px}.side-brand img{width:43px;height:43px}.side-brand .brand-name{font-size:1.05rem}.side-brand small{font-size:.68rem}.nav-item{padding:11px 9px;gap:9px}.nav-item b{font-size:.82rem}.main-column{margin-left:var(--sidebar)!important}.content{padding:24px 13px 55px!important}.inventory-panel{padding:10px}.inventory-table table{font-size:.75rem}.inventory-table th{padding:6px 3px}.inventory-table td{padding:5px 3px!important}.sort-head{font-size:.58rem}.inventory-table .col-select{width:30px}.inventory-table .col-code{width:55px}.inventory-table .col-position{width:49px}.inventory-table .col-stock{width:63px}.inventory-table .col-reorder{width:43px}.inventory-table .col-pending{width:82px}.inventory-table .col-cost{width:79px}.inventory-table .col-status{width:74px}.inventory-table .item-name span{font-size:.76rem}.inventory-table .position-code{font-size:.68rem}.inventory-table .status{font-size:.62rem;padding:4px 6px}.pending-inline{font-size:.61rem;padding:4px 5px}.inventory-actions{gap:6px}.inventory-actions .btn{padding:9px 10px;font-size:.78rem}.selection-count{height:21px;min-width:21px}.experiment-material-head,.experiment-material-row{grid-template-columns:58px minmax(130px,1fr) 65px 78px 100px 78px 28px}.guided-grid{grid-template-columns:1fr}.stock-check-head,.stock-check-row{grid-template-columns:minmax(145px,1.3fr) 68px 78px 78px 78px minmax(130px,1fr)}}

/* Mobile gets a card-like inventory; no horizontal scroll. */
@media(max-width:720px){.inventory-actions{justify-content:flex-start}.inventory-actions .experiment-create{order:-1;width:100%}.inventory-panel{padding:10px;background:transparent;border:0;box-shadow:none}.inventory-table{border:0!important}.inventory-table table,.inventory-table tbody{display:block;width:100%}.inventory-table thead{display:none}.inventory-table tr{display:grid!important;grid-template-columns:32px 58px minmax(0,1fr) auto!important;gap:5px 8px;border:1px solid #dfe8e4!important;border-radius:13px!important;padding:9px!important;margin-bottom:8px!important;background:#fff!important}.inventory-table td{display:block!important;width:auto!important;height:auto!important;border:0!important;padding:2px!important;min-width:0}.inventory-table .col-select{grid-column:1;grid-row:1}.inventory-table .col-code{grid-column:2;grid-row:1}.inventory-table .col-name{grid-column:3;grid-row:1}.inventory-table .col-status{grid-column:4;grid-row:1}.inventory-table .col-position{grid-column:2;grid-row:2}.inventory-table .col-stock{grid-column:3;grid-row:2}.inventory-table .col-reorder{grid-column:4;grid-row:2;font-size:.72rem}.inventory-table .col-reorder:before{content:"όριο ";color:var(--muted)}.inventory-table .col-pending{grid-column:2/4;grid-row:3}.inventory-table .col-cost{grid-column:4;grid-row:3;font-size:.72rem;text-align:right}.inventory-table .item-name span{font-size:.82rem}.inventory-table .status{font-size:.64rem}.row-select{width:26px;height:26px}.experiment-editor-head{position:relative;padding:24px 48px 14px 16px;display:block}.experiment-head-actions{justify-content:flex-start;margin-top:12px}.experiment-form{padding:0 14px 82px}.experiment-section{padding:18px 0}.experiment-material-table{border:0}.experiment-material-head{display:none}.experiment-material-row{display:grid;grid-template-columns:55px minmax(0,1fr) 28px;gap:6px;border:1px solid #dfe8e4;border-radius:12px;margin-bottom:8px;padding:9px}.experiment-material-row>.code-chip{grid-column:1}.experiment-material-name{grid-column:2}.experiment-material-row>.material-remove{grid-column:3;grid-row:1}.experiment-material-row>.position-code{grid-column:1/2}.experiment-material-row>span:nth-of-type(3){grid-column:2}.experiment-material-row>label{grid-column:1/3}.experiment-material-row>.material-total{grid-column:1/3}.guided-grid{grid-template-columns:1fr}.experiment-images{grid-template-columns:1fr 1fr}.experiment-ai-docs article{grid-template-columns:31px minmax(0,1fr)}.ai-doc-actions{grid-column:2}.experiment-sticky-actions{margin-left:-14px;margin-right:-14px;margin-bottom:-82px;padding:10px 14px;display:grid}.experiment-sticky-actions>div{display:grid;grid-template-columns:1fr 1fr}.experiment-sticky-actions>div:first-child{grid-template-columns:1fr}.experiment-sticky-actions .btn{width:100%}.stock-check-head{display:none}.stock-check-table{border:0}.stock-check-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;border:1px solid #dfe8e4;border-radius:12px;margin-bottom:8px;padding:10px}.stock-check-row>div:first-child{grid-column:1/-1}.stock-order-actions>div:not(.alert){display:block}.stock-order-actions .btn{width:100%;margin-top:10px}.experiment-card{grid-template-columns:38px minmax(0,1fr)}.experiment-card-actions{grid-column:2;justify-content:flex-start}.experiments-panel{padding:12px}}

/* =========================================================
   Patch 04 — inventory header hardening + richer AI documents
   ========================================================= */
.inventory-table .col-code{width:76px}
.inventory-table .col-code .sort-head{white-space:nowrap;flex-wrap:nowrap;gap:2px;font-size:.65rem;letter-spacing:.025em}
.inventory-table .col-code .sort-arrows{flex:0 0 auto}
.ai-quality-notes{margin-top:10px;border:1px solid #d9e7e1;border-radius:12px;background:#fbfdfc;padding:11px 13px;font-size:.76rem;color:#4f665e}
.ai-quality-notes>b{font-weight:600;color:#254f42}
.ai-quality-notes ul{margin:7px 0 0;padding-left:18px}
.ai-quality-notes li{margin:3px 0;line-height:1.45}
@media(min-width:721px) and (max-width:980px){
  .inventory-table .col-code{width:68px}
  .inventory-table .col-code .sort-head{font-size:.56rem;letter-spacing:0}
  .inventory-table .col-pending{width:78px}
  .inventory-table .col-cost{width:75px}
  .inventory-table .col-status{width:72px}
}

/* =========================================================
   Patch 05 — experiment studio + inventory simplification
   ========================================================= */

/* Inventory no longer carries experiment-selection controls. */
.inventory-table .col-code{width:78px}
.inventory-table .col-position{width:67px}
.inventory-table .col-stock{width:78px}
.inventory-table .col-reorder{width:53px}
.inventory-table .col-pending{width:108px}
.inventory-table .col-cost{width:100px}
.inventory-table .col-status{width:86px}
.inventory-table .col-code .sort-head{white-space:nowrap!important;line-height:1}
.inventory-table .code-chip{white-space:nowrap}
.inventory-table tbody tr.selected{background:#fff}

/* Experiments library controls */
.experiment-library-filter{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,300px) auto;gap:10px;align-items:end;margin-bottom:16px}
.experiment-library-filter .search-wrap{min-width:0}
.inline-filter{display:grid;gap:5px;min-width:0}
.inline-filter>span{font-size:.7rem;color:#657a73}
.inline-filter select{width:100%;border:1px solid #d9e5df;background:#fff;border-radius:13px;padding:11px 12px;color:var(--ink);outline:none}
.inline-filter select:focus{border-color:#66bc91;box-shadow:0 0 0 4px rgba(60,170,113,.1)}

/* AI workbench lives directly inside the experiment editor. */
.experiment-ai-workbench{margin:18px 0 2px;border:1px solid #cfe2d8;border-radius:18px;background:linear-gradient(145deg,#f0f8f4,#fbfdfc);padding:16px 18px;box-shadow:0 12px 30px rgba(23,74,59,.05)}
.ai-workbench-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px}
.ai-workbench-head h3{margin:1px 0 4px;font-size:1.02rem;font-weight:600}
.ai-workbench-head p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.5;max-width:850px}
.ai-spark{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#123e34;color:#c8f3db;margin-right:7px;font-size:.68rem;vertical-align:middle}
.ai-brief-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(210px,.55fr);gap:12px;align-items:start}
.ai-brief-grid label{display:grid;gap:6px}
.ai-brief-grid label>span{font-size:.76rem;color:#52665f}
.ai-brief-grid textarea,.ai-brief-grid input,.ai-brief-grid select{width:100%;border:1px solid #d5e4dd;background:#fff;border-radius:12px;padding:11px 12px;color:var(--ink);outline:none}
.ai-brief-grid textarea{resize:vertical;min-height:118px}
.ai-brief-side{display:grid;gap:10px}
.ai-workbench-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}
.ai-workbench-actions .muted{font-size:.73rem;line-height:1.45;max-width:750px}
.ai-result-intro{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:13px 0 10px;color:#2a5749;font-size:.8rem}
.ai-result-intro strong{font-weight:600;color:#143e34}
.ai-procurement{margin-top:12px;border:1px solid #eadfc3;border-radius:13px;background:#fffdf8;padding:12px 14px}
.ai-procurement h4{margin:0 0 8px;font-size:.86rem;font-weight:600}
.ai-procurement>div{padding:8px 0;border-top:1px solid #f0e8d5;font-size:.76rem}
.ai-procurement>div:first-of-type{border-top:0}
.ai-procurement p{margin:3px 0;color:#66786f}
.ai-procurement ul{margin:5px 0 0;padding-left:18px}
.ai-procurement a{color:#247250;text-decoration:underline;text-underline-offset:2px}

/* Materials: selected list + embedded warehouse picker. */
.material-source-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}
.material-source-actions p{margin:0;color:var(--muted);font-size:.77rem}
.external-material-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#75867f;margin:11px 0 6px}
.external-material-row{display:grid;grid-template-columns:auto minmax(150px,1fr) 150px 115px 30px;gap:8px;align-items:center;border:1px solid #e3eae7;border-radius:11px;padding:8px 10px;margin-top:6px;background:#fcfdfc;font-size:.78rem}
.external-material-row label{display:flex;gap:6px;align-items:center}
.external-material-row input{width:78px;border:1px solid #d8e4de;border-radius:8px;padding:6px 7px}
.external-material-row small{color:var(--muted);white-space:nowrap}
.external-badge{font-size:.64rem;border-radius:999px;background:#f2eee7;color:#786449;padding:4px 7px;white-space:nowrap}
.external-material-form{display:grid;grid-template-columns:minmax(180px,1fr) 110px 110px auto;gap:8px;align-items:end;margin:9px 0;padding:11px;border:1px dashed #cfded7;border-radius:12px;background:#fbfdfc}
.external-material-form label{display:grid;gap:5px}
.external-material-form label>span{font-size:.7rem;color:#60736c}
.external-material-form input{width:100%;border:1px solid #d8e4de;border-radius:9px;padding:8px 9px;background:#fff}
.external-form-actions{display:flex;gap:6px}
.material-picker-shell{margin-top:14px;border:1px solid #dce7e2;border-radius:14px;overflow:hidden;background:#fff}
.material-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:#f6f9f7;border-bottom:1px solid #e1e9e5}
.material-picker-head>div:first-child{min-width:0}
.material-picker-head strong{display:block;font-size:.83rem;font-weight:600}
.material-picker-head small{display:block;margin-top:2px;color:var(--muted);font-size:.68rem}
.material-picker-filter{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e7eeeb}
.material-picker-filter .search-wrap{min-width:0}
.embedded-inventory-head,.embedded-inventory-row{display:grid;grid-template-columns:74px minmax(180px,1fr) 90px 105px 35px;gap:8px;align-items:center;min-width:0}
.embedded-inventory-head{padding:7px 11px;background:#f4f8f6;color:#6a7e77;font-size:.64rem;text-transform:uppercase;letter-spacing:.035em}
.embedded-inventory-rows{max-height:305px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.embedded-inventory-row{padding:7px 11px;border-top:1px solid #e7eeeb;font-size:.77rem;min-height:42px}
.embedded-inventory-row:first-child{border-top:0}
.embedded-inventory-row.picked{background:#f2f8f5}
.picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.picker-add{width:30px;height:30px;border:1px solid #d6e4de;border-radius:9px;background:#eff6f2;color:#20714f;display:grid;place-items:center;font-size:1.05rem;cursor:pointer}
.picker-add:hover:not(:disabled){background:#def0e6;border-color:#b9d9c9}
.picker-add:disabled{opacity:.55;cursor:default}

/* Ordered worksheet composition */
.worksheet-order-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.worksheet-order-toolbar .muted{font-size:.72rem;text-align:right}
.worksheet-blocks{display:grid;gap:7px}
.worksheet-block{display:grid;grid-template-columns:34px 28px minmax(0,1fr) 28px;gap:8px;align-items:center;border:1px solid #dfe8e4;border-radius:12px;background:#fff;padding:8px 9px;transition:.13s}
.worksheet-block.dragging{opacity:.5;transform:scale(.995)}
.worksheet-block.drag-over{border-color:#54ae80;background:#f0f8f4;box-shadow:inset 0 0 0 1px #54ae80}
.drag-handle{width:30px;height:32px;border:0;border-radius:8px;background:#f0f5f2;color:#668078;cursor:grab;font-size:1rem;line-height:1}
.drag-handle:active{cursor:grabbing}
.block-order{width:24px;height:24px;border-radius:8px;background:#eaf5ef;color:#327657;display:grid;place-items:center;font-size:.7rem}
.block-copy{min-width:0}
.block-copy>span{display:block;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.block-copy>small{display:block;color:var(--muted);font-size:.66rem;margin-top:2px}
.block-copy input,.block-copy textarea{width:100%;border:1px solid #dce6e2;border-radius:9px;padding:7px 9px;background:#fbfdfc;font-size:.78rem}
.block-copy textarea{margin-top:5px;resize:vertical}
.block-lock,.block-remove{width:26px;height:26px;display:grid;place-items:center;color:#7c8d87}
.block-remove{border:0;border-radius:8px;background:#fff1ef;color:#a04b42;cursor:pointer}
.drawing-preview{max-height:none!important;min-height:180px}

@media(min-width:721px) and (max-width:980px){
  .inventory-table .col-code{width:68px}
  .inventory-table .col-position{width:50px}
  .inventory-table .col-stock{width:62px}
  .inventory-table .col-reorder{width:42px}
  .inventory-table .col-pending{width:77px}
  .inventory-table .col-cost{width:76px}
  .inventory-table .col-status{width:70px}
  .experiment-library-filter{grid-template-columns:minmax(180px,1fr) minmax(185px,245px) auto}
  .experiment-editor-head{padding-left:22px}.experiment-form{padding-left:22px;padding-right:22px}
  .ai-brief-grid{grid-template-columns:minmax(0,1.4fr) minmax(190px,.6fr)}
  .embedded-inventory-head,.embedded-inventory-row{grid-template-columns:64px minmax(130px,1fr) 66px 82px 32px}
  .external-material-row{grid-template-columns:auto minmax(120px,1fr) 125px 90px 28px}
}

@media(max-width:720px){
  .inventory-table tr{grid-template-columns:62px minmax(0,1fr) auto!important}
  .inventory-table .col-code{grid-column:1;grid-row:1}
  .inventory-table .col-name{grid-column:2;grid-row:1}
  .inventory-table .col-status{grid-column:3;grid-row:1}
  .inventory-table .col-position{grid-column:1;grid-row:2}
  .inventory-table .col-stock{grid-column:2;grid-row:2}
  .inventory-table .col-reorder{grid-column:3;grid-row:2}
  .inventory-table .col-pending{grid-column:1/3;grid-row:3}
  .inventory-table .col-cost{grid-column:3;grid-row:3}
  .experiment-library-filter{grid-template-columns:1fr}
  .experiment-library-filter .btn{width:100%}
  .ai-brief-grid{grid-template-columns:1fr}
  .ai-workbench-actions{display:grid;grid-template-columns:1fr}
  .ai-workbench-actions .btn{width:100%}
  .material-source-actions{align-items:flex-start;flex-direction:column}
  .external-material-form{grid-template-columns:1fr 1fr}
  .external-material-form label:first-child{grid-column:1/-1}
  .external-form-actions{grid-column:1/-1}
  .external-material-row{grid-template-columns:minmax(0,1fr) auto}
  .external-material-row .external-badge{grid-column:1/-1;width:max-content}
  .external-material-row label{grid-column:1}.external-material-row>span:nth-last-child(2){grid-column:2}
  .material-picker-head{align-items:flex-start;flex-direction:column}
  .material-picker-filter{grid-template-columns:1fr}
  .embedded-inventory-head{display:none}
  .embedded-inventory-row{grid-template-columns:60px minmax(0,1fr) 34px;gap:5px 7px;padding:9px}
  .embedded-inventory-row>span:nth-child(1){grid-column:1;grid-row:1}
  .embedded-inventory-row .picker-name{grid-column:2;grid-row:1}
  .embedded-inventory-row .picker-add{grid-column:3;grid-row:1/3}
  .embedded-inventory-row .position-code{grid-column:1;grid-row:2}
  .embedded-inventory-row>span:nth-child(4){grid-column:2;grid-row:2;color:#526760}
  .worksheet-order-toolbar{align-items:flex-start;flex-direction:column}
  .worksheet-order-toolbar .muted{text-align:left}
  .worksheet-block{grid-template-columns:32px 24px minmax(0,1fr) 26px;padding:7px}
  .experiment-head-actions .btn{font-size:.76rem;padding:9px 10px}
}
/* Patch 05 alignment fixes */
.ai-workbench-head>div:first-child{display:flex;align-items:flex-start;gap:7px;min-width:0}
.ai-workbench-head>div:first-child>div{min-width:0}
.ai-brief-grid .full{grid-column:1/-1}
.material-picker-head h4{margin:0;font-size:.83rem;font-weight:600}
.material-picker-head p{margin:2px 0 0;color:var(--muted);font-size:.68rem}
.embedded-inventory-body{max-height:305px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.external-material-form{grid-template-columns:minmax(180px,1fr) 100px 100px auto auto}
@media(max-width:720px){.external-material-form{grid-template-columns:1fr 1fr}.external-material-form input:first-child{grid-column:1/-1}.external-material-form .btn{width:100%}}
.drag-handle{touch-action:none;user-select:none;-webkit-user-select:none}

/* =========================================================
   Patch 07 — automatic item coding + supplier workspace
   ========================================================= */
.field-help{display:block;margin-top:4px;color:#788b85;font-size:.68rem;line-height:1.4;font-weight:400}.form-grid input[readonly]{background:#eef4f1;color:#3c6558;border-color:#d7e4de;cursor:not-allowed}.smart-combo{position:relative}.smart-combo>input{padding-right:45px}.combo-toggle{position:absolute;right:5px;top:5px;width:36px;height:36px;border:0;border-radius:10px;background:#eaf4ef;color:#285d4d;cursor:pointer;font-size:1.1rem}.combo-menu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);max-height:245px;overflow:auto;background:#0e3b32;color:#f5fbf8;border:1px solid #2f6556;border-radius:13px;box-shadow:0 20px 45px rgba(5,38,31,.22);padding:6px}.combo-option{display:block;width:100%;border:0;background:transparent;color:#f4fbf8;text-align:left;padding:9px 10px;border-radius:9px;cursor:pointer;font-size:.78rem;line-height:1.35}.combo-option:hover,.combo-option:focus{background:#1d5c4c;outline:none}.combo-empty{padding:10px;color:#b9d2ca;font-size:.75rem}.nested-title{margin:0 0 10px;font-size:.78rem;color:#2d6855;font-weight:600}.supplier-inline-create{background:#f4f9f6}.supplier-inline-create .form-grid{gap:10px}.supplier-inline-create label>span{font-weight:500}.suppliers-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.supplier-toolbar{display:flex;gap:10px;align-items:end;margin-bottom:14px}.supplier-toolbar>label{display:grid;gap:5px;min-width:220px}.supplier-toolbar>label>span{font-size:.7rem;color:#617871}.supplier-toolbar select{width:100%;border:1px solid #d9e5df;background:#fbfdfc;border-radius:12px;padding:11px 12px;color:var(--ink)}.supplier-browser{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;min-height:430px}.supplier-list{border:1px solid #dfe9e5;border-radius:15px;background:#f8fbf9;padding:7px;overflow:auto;max-height:560px}.supplier-list-item{width:100%;border:0;background:transparent;border-radius:11px;padding:10px 11px;text-align:left;cursor:pointer;color:var(--ink)}.supplier-list-item+ .supplier-list-item{margin-top:3px}.supplier-list-item span,.supplier-list-item small{display:block}.supplier-list-item span{font-size:.82rem;font-weight:500}.supplier-list-item small{margin-top:3px;color:#748780;font-size:.68rem}.supplier-list-item:hover{background:#eef5f2}.supplier-list-item.active{background:#dff1e8;color:#164f3e}.supplier-detail{border:1px solid #dfe9e5;border-radius:15px;padding:16px;min-width:0}.supplier-detail-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid #e6eeea;padding-bottom:13px}.supplier-detail-head h3{margin:0;font-size:1.22rem;font-weight:600}.supplier-website{display:inline-block;margin-top:5px;color:#25855e;font-size:.76rem}.supplier-actions{display:flex;gap:7px}.supplier-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0}.supplier-contact-grid>span{background:#f6f9f7;border:1px solid #e5ece9;border-radius:11px;padding:9px 10px;font-size:.78rem;overflow-wrap:anywhere}.supplier-contact-grid small,.supplier-product-row small{display:block;color:#7a8b85;font-size:.63rem;margin-bottom:2px}.supplier-notes{margin:8px 0 15px;padding:10px 12px;background:#fffaf0;border:1px solid #f0e3c2;border-radius:11px;color:#655b46;font-size:.77rem;line-height:1.45}.supplier-products-head{display:flex;justify-content:space-between;align-items:center;margin:14px 0 8px}.supplier-products-head h4{margin:0;font-size:.9rem;font-weight:600}.supplier-products-head span{font-size:.7rem;color:#71847d}.supplier-products{border:1px solid #e2eae7;border-radius:12px;overflow:hidden}.supplier-product-row{display:grid;grid-template-columns:64px minmax(0,1fr) 105px 105px;gap:10px;align-items:center;padding:9px 10px;font-size:.75rem;border-top:1px solid #e8efec;min-width:0}.supplier-product-row:first-child{border-top:0}.supplier-product-row>div{min-width:0}.supplier-product-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supplier-product-row a{display:inline-block;margin-top:2px;color:#25855e;font-size:.66rem}.supplier-product-row>span:nth-last-child(-n+2){font-variant-numeric:tabular-nums}.inventory-actions{flex-wrap:wrap}.inventory-actions #suppliersBtn{order:3}

@media(max-width:980px) and (min-width:721px){.supplier-browser{grid-template-columns:230px minmax(0,1fr)}.supplier-product-row{grid-template-columns:56px minmax(0,1fr) 86px 86px;gap:6px;padding:8px;font-size:.7rem}.supplier-contact-grid{grid-template-columns:1fr 1fr}.inventory-actions .btn{padding-inline:9px}}
@media(max-width:720px){.suppliers-head{display:block}.suppliers-head .btn{margin-top:10px}.supplier-toolbar{display:grid}.supplier-toolbar>label{min-width:0}.supplier-browser{display:block}.supplier-list{max-height:220px;margin-bottom:10px}.supplier-detail{padding:12px}.supplier-detail-head{display:block}.supplier-actions{margin-top:10px}.supplier-contact-grid{grid-template-columns:1fr}.supplier-product-row{grid-template-columns:55px minmax(0,1fr);gap:6px}.supplier-product-row>span:nth-last-child(-n+2){grid-column:2}.supplier-product-name{white-space:normal}.smart-combo .combo-menu{position:fixed;left:14px;right:14px;top:auto;bottom:14px;max-height:45vh}.inventory-actions #suppliersBtn{order:0}}


/* =========================================================
   Patch 08 — supplier workspace density + contained scrolling
   ========================================================= */
#suppliersModal{padding:16px;overflow:hidden}
#suppliersModal .modal-card.extra-wide{
  width:min(1180px,calc(100vw - 32px));
  height:min(820px,calc(100vh - 32px));
  max-height:calc(100vh - 32px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
#suppliersModal .modal-head{flex:0 0 auto;margin-bottom:14px}
#suppliersModal .supplier-toolbar{flex:0 0 auto;margin-bottom:12px}
#suppliersModal .supplier-browser{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  overflow:hidden;
  grid-template-columns:minmax(350px,38%) minmax(0,1fr);
  gap:12px;
}
#suppliersModal .supplier-list{
  min-height:0;
  height:100%;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  padding:5px;
  overscroll-behavior:contain;
}
#suppliersModal .supplier-list-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:35px;
  padding:7px 9px;
  white-space:nowrap;
}
#suppliersModal .supplier-list-item + .supplier-list-item{margin-top:1px}
#suppliersModal .supplier-list-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.79rem;
  font-weight:500;
}
#suppliersModal .supplier-list-meta{
  margin:0;
  white-space:nowrap;
  font-size:.65rem;
  color:#748780;
}
#suppliersModal .supplier-detail{
  min-height:0;
  height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
#suppliersModal .supplier-contact-grid{margin:11px 0;gap:7px}
#suppliersModal .supplier-contact-grid>span{padding:8px 9px}
#suppliersModal .supplier-products-head{margin:11px 0 7px}
#suppliersModal .supplier-product-row{padding-top:7px;padding-bottom:7px}

@media(max-width:980px) and (min-width:721px){
  #suppliersModal{padding:10px}
  #suppliersModal .modal-card.extra-wide{width:calc(100vw - 20px);height:calc(100vh - 20px);max-height:calc(100vh - 20px)}
  #suppliersModal .supplier-browser{grid-template-columns:minmax(300px,40%) minmax(0,1fr);gap:9px}
  #suppliersModal .supplier-list-item{padding:6px 8px;min-height:33px}
}
@media(max-width:720px){
  #suppliersModal{padding:7px}
  #suppliersModal .modal-card.extra-wide{width:calc(100vw - 14px);height:calc(100vh - 14px);max-height:calc(100vh - 14px)}
  #suppliersModal .supplier-browser{display:flex;flex-direction:column;min-height:0}
  #suppliersModal .supplier-list{height:190px;min-height:145px;max-height:190px;flex:0 0 190px;margin-bottom:0}
  #suppliersModal .supplier-detail{flex:1 1 auto;height:auto;min-height:0}
  #suppliersModal .supplier-list-item{grid-template-columns:minmax(0,1fr) auto}
}

/* =========================================================
   Patch 09 — order builder, editable pending orders, history
   ========================================================= */
.order-page-actions{align-items:center}.order-builder-panel{padding:18px 20px}.order-builder-top{align-items:flex-start;margin-bottom:12px}.order-builder-top h2{margin-bottom:3px}.order-draft-banner{display:flex;gap:8px 18px;align-items:center;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid #cfe4d9;border-radius:12px;background:#f0f8f4;color:#315e50;font-size:.76rem}.order-draft-banner strong{font-weight:600;color:#174b3c}.order-draft-banner span{color:#647a72}.order-builder-table{border:1px solid #dfe9e4;border-radius:14px;overflow:hidden;min-width:0}.order-builder-head,.order-builder-row{display:grid;grid-template-columns:30px 64px minmax(160px,1.4fr) 88px 78px minmax(145px,1fr) 88px 34px;gap:8px;align-items:center;min-width:0}.order-builder-head{padding:8px 10px;background:#f1f6f3;color:#657c74;font-size:.64rem;text-transform:uppercase;letter-spacing:.035em}.order-builder-row{padding:7px 10px;border-top:1px solid #e6eeea;min-height:48px;font-size:.77rem;background:#fff;transition:.15s}.order-builder-row:first-child{border-top:0}.order-builder-row.is-off{background:#fafbfa;color:#8b9994}.order-builder-row.is-off .order-line-name,.order-builder-row.is-off .order-line-code{opacity:.55}.order-line-check{display:grid;place-items:center}.order-line-check input{width:15px;height:15px;accent-color:#2fa26d}.order-line-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#277258;background:#edf6f2;border-radius:9px;padding:5px 6px;text-align:center;font-size:.74rem;white-space:nowrap}.order-line-name{min-width:0}.order-line-name>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#133b32}.order-line-name small{display:block;margin-top:1px;color:#81918c;font-size:.63rem}.order-line-stock,.order-line-pending{font-variant-numeric:tabular-nums;white-space:nowrap}.order-line-pending{color:#8c6419}.order-line-supplier,.order-line-qty{width:100%;min-width:0;border:1px solid #d8e4de;border-radius:9px;background:#fbfdfc;color:#183e34;padding:7px 8px;font:inherit}.order-line-qty{font-variant-numeric:tabular-nums}.order-link-btn{width:30px;height:30px;border:1px solid #dce7e2;border-radius:9px;background:#f5f8f6;color:#8da098;cursor:pointer;font-size:.9rem}.order-link-btn.has-link{color:#247a59;background:#eaf6ef;border-color:#cfe6da}.order-builder-empty{display:grid;gap:3px;place-items:center;text-align:center;padding:42px 20px;color:#6c8179;font-size:.8rem}.order-builder-empty strong{font-weight:600;color:#355f52}.order-builder-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:13px}.order-builder-summary{display:flex;gap:8px 16px;flex-wrap:wrap;color:#647b73;font-size:.78rem}.order-builder-summary span:last-child{color:#194b3c;font-weight:500}.order-builder-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.order-material-modal{max-height:min(760px,92vh)}.order-material-toolbar{display:flex;gap:9px;align-items:center;margin-bottom:12px}.order-material-toolbar .search-wrap{flex:1}.order-material-results{border:1px solid #e0e9e5;border-radius:13px;overflow-y:auto;overflow-x:hidden;max-height:470px}.order-material-result{display:grid;grid-template-columns:64px minmax(0,1fr) 88px;gap:10px;align-items:center;width:100%;border:0;border-top:1px solid #e8efec;background:#fff;padding:9px 11px;text-align:left;color:var(--ink);cursor:pointer}.order-material-result:first-child{border-top:0}.order-material-result:hover{background:#f4f9f6}.order-material-result:disabled{cursor:default;background:#fafbfa;color:#8b9994}.order-material-result-main{min-width:0}.order-material-result-main strong{display:block;font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-material-result-main small{display:block;color:#768982;font-size:.67rem;margin-top:2px}.order-material-result>span:last-child{text-align:right;color:#2b875f;font-size:.72rem}.order-history-modal{width:min(1120px,calc(100vw - 30px));height:min(820px,calc(100vh - 30px));max-height:calc(100vh - 30px);overflow:hidden;display:flex;flex-direction:column}.order-history-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex:0 0 auto}.order-history-list{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:3px}.order-history-card{padding:12px 13px}.order-history-card .row-title{font-size:.9rem}.order-history-card .order-card-meta{margin-top:6px}.order-history-card .detail-actions{margin:8px 0 0}.order-item-flow #initialStockFields{background:#f1f8f4;border-color:#cfe6da}.order-item-flow #initialStockFields::before{content:'Νέο υλικό για παραγγελία — αρχικό απόθεμα 0';grid-column:1/-1;color:#2d7457;font-size:.71rem;font-weight:600}.order-item-flow #itemLab:disabled,.order-item-flow input[readonly],.order-item-flow select:disabled{opacity:1;color:#365f52;background:#eef5f2}
@media(max-width:980px) and (min-width:721px){.order-builder-panel{padding:16px}.order-builder-head,.order-builder-row{grid-template-columns:28px 58px minmax(140px,1.25fr) 78px 68px minmax(128px,1fr) 78px 30px;gap:6px}.order-builder-row{padding:7px 8px;font-size:.72rem}.order-line-supplier,.order-line-qty{padding:6px}.order-builder-head{padding-inline:8px}.order-page-actions .btn{white-space:nowrap}}
@media(max-width:720px){.order-page-actions{display:grid;grid-template-columns:1fr}.order-page-actions .btn,.order-page-actions .lab-select{width:100%}.order-builder-panel{padding:13px}.order-builder-head{display:none}.order-builder-table{border:0;overflow:visible}.order-builder-row{display:grid;grid-template-columns:28px 56px minmax(0,1fr) 32px;gap:7px 8px;border:1px solid #dfe8e4;border-radius:13px;margin-bottom:8px;padding:10px;min-height:0}.order-builder-row:first-child{border-top:1px solid #dfe8e4}.order-line-check{grid-column:1}.order-line-code{grid-column:2}.order-line-name{grid-column:3}.order-link-btn{grid-column:4;grid-row:1}.order-line-stock{grid-column:2/3}.order-line-pending{grid-column:3/5}.order-line-supplier{grid-column:2/5}.order-line-qty{grid-column:2/5}.order-builder-footer{display:block}.order-builder-summary{margin-bottom:10px}.order-builder-actions{display:grid;grid-template-columns:1fr}.order-builder-actions .btn{width:100%}.order-material-toolbar{display:grid}.order-material-result{grid-template-columns:58px minmax(0,1fr);}.order-material-result>span:last-child{grid-column:2;text-align:left}.order-history-modal{width:calc(100vw - 14px);height:calc(100vh - 14px);max-height:calc(100vh - 14px)}.order-history-head{display:block}.order-history-head .btn{margin-top:8px}}

/* Patch 11 — reports + interactive storage map */
.report-preview{display:grid;gap:0}.report-preview-row{min-width:0}.report-preview-row .row-title{font-weight:500}.report-preview-row .stock-badge{white-space:nowrap}

.location-map-panel{padding:18px;overflow:visible}.location-map-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}.location-map-toolbar label{display:grid;gap:6px;min-width:min(360px,100%)}.location-map-toolbar label>span{font-size:.76rem;color:var(--muted)}.location-map-toolbar select{min-width:300px}.map-legend{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.76rem}.map-legend span{display:inline-flex;align-items:center;gap:7px}.map-legend-dot{width:11px;height:11px;border-radius:3px;display:inline-block;border:1px solid #86ae9e}.map-legend-dot.cabinet{background:#dff3e9}.map-legend-dot.outside{background:#fff;border-style:dashed}
.map-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:2px 2px 12px}.map-caption h2{margin:0 0 4px;font-size:1.05rem;font-weight:600}.map-caption p{margin:0;max-width:860px}.map-resolution-badge{white-space:nowrap;border:1px solid #dce8e3;background:#f5faf8;border-radius:999px;padding:6px 9px;color:#607a70;font-size:.69rem}
.storage-map-stage{position:relative;width:100%;max-width:1420px;margin:0 auto;border:1px solid #dce8e3;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 10px 28px rgba(19,58,48,.06);cursor:crosshair;line-height:0;user-select:none}.storage-map-stage .storage-map{width:100%;height:auto;display:block;border:0;border-radius:0}.storage-map-hotspots{position:absolute;inset:0;pointer-events:none}.storage-map-hotspot{position:absolute;pointer-events:auto;border:1.5px solid transparent;border-radius:4px;background:transparent;padding:0;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s;line-height:1;color:transparent}.storage-map-hotspot span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:0}.storage-map-hotspot:hover,.storage-map-hotspot:focus-visible{background:rgba(45,169,113,.15);border-color:#2da971;box-shadow:0 0 0 2px rgba(45,169,113,.13);outline:0}.storage-map-hotspot.selected{background:rgba(28,128,86,.18);border-color:#14704d;box-shadow:0 0 0 2px rgba(20,112,77,.14)}.storage-map-hotspot:hover span,.storage-map-hotspot:focus-visible span,.storage-map-hotspot.selected span{font-size:.68rem;color:#083e31;background:rgba(255,255,255,.92);border-radius:999px;padding:3px 5px;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.map-unavailable{padding:20px;border:1px dashed #ccdcd5;border-radius:16px;background:#f8fbfa}.map-unavailable>strong{display:block;margin-bottom:5px;font-weight:600}.map-unavailable>span{display:block;color:var(--muted);font-size:.85rem}.compact-fallback{margin-top:16px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-height:460px;overflow:auto;padding-right:5px}.compact-fallback .location-card{appearance:none;width:100%;text-align:left;cursor:pointer}.compact-fallback .location-card:hover{background:#f2f8f5;border-color:#9cc9b7}
.location-inspector{margin-top:17px;padding:18px;min-height:150px}.location-inspector-empty{min-height:112px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted);gap:5px}.location-inspector-empty strong{font-weight:600;color:#214b40}.location-inspector-empty span{font-size:.84rem;max-width:700px;line-height:1.5}.location-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid #e6eeea}.location-inspector-head h2{margin:2px 0 4px;font-size:1.18rem;font-weight:600}.location-inspector-head p{margin:0}.location-inspector-kpis{display:flex;gap:8px}.location-inspector-kpis>span{min-width:82px;background:#f1f8f5;border:1px solid #dfeae5;border-radius:12px;padding:9px 11px;text-align:center}.location-inspector-kpis b{display:block;font-size:1rem;font-weight:600;color:#155a44}.location-inspector-kpis small{display:block;margin-top:2px;color:var(--muted);font-size:.66rem}.location-content-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;max-height:430px;overflow:auto;padding-right:4px}.location-content-row{appearance:none;border:0;border-bottom:1px solid #e8efec;background:transparent;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:10px 2px;cursor:pointer;min-width:0;color:inherit}.location-content-row:hover{background:#f7fbf9}.location-content-main{min-width:0}.location-content-main>span{display:block;font-size:.84rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-content-main small{display:block;color:var(--muted);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.location-content-stock{white-space:nowrap;font-size:.86rem}.location-content-stock small{color:var(--muted);font-size:.7rem}

@media(max-width:1180px){.location-content-list{grid-template-columns:1fr}.location-map-toolbar{align-items:stretch}.map-legend{justify-content:flex-start}.storage-map-stage{max-width:none}}
@media(max-width:820px){.location-map-panel{padding:12px}.location-map-toolbar,.map-caption,.location-inspector-head{display:block}.location-map-toolbar select{min-width:0;width:100%}.map-legend{margin-top:11px}.map-resolution-badge{display:inline-block;margin-top:9px}.storage-map-stage{border-radius:12px}.location-inspector-kpis{margin-top:12px}.location-content-list{max-height:390px}.storage-map-hotspot:hover span,.storage-map-hotspot:focus-visible span,.storage-map-hotspot.selected span{font-size:.58rem}}

/* AI warehouse workbench v12 */
.ai-page-head{align-items:flex-start;gap:22px}.ai-source-pills{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.ai-source-pills span{font-size:.72rem;padding:7px 10px;border:1px solid #dbe7e2;border-radius:999px;background:#f7faf8;color:#6a7f78}.ai-source-pills span.active{background:#e7f5ed;border-color:#c7e8d6;color:#1e6b4d}.ai-workbench-grid{display:grid;grid-template-columns:minmax(340px,.78fr) minmax(0,1.22fr);gap:16px;align-items:start}.ai-control-panel{padding:20px}.ai-control-form{display:grid;gap:15px}.ai-control-form label{display:grid;gap:6px}.ai-control-form label>span{font-size:.78rem;color:#35564d;font-weight:550}.ai-control-form label>small{font-size:.69rem;color:var(--muted);line-height:1.4}.ai-control-form select,.ai-control-form textarea{width:100%;border:1px solid #d6e3dd;border-radius:13px;padding:11px 12px;background:#fbfdfc;font:inherit;color:#123d33}.ai-control-form textarea{resize:vertical;min-height:140px;line-height:1.55}.ai-task-explainer{border:1px solid #dce9e3;background:#f2f8f5;border-radius:14px;padding:12px 13px;display:grid;gap:4px}.ai-task-explainer b{font-size:.82rem;font-weight:600;color:#205b48}.ai-task-explainer span{font-size:.76rem;line-height:1.55;color:#5c716a}.ai-method-panel h2{margin:2px 0 14px;font-size:1.32rem;font-weight:600}.ai-method-steps{display:grid;gap:4px}.ai-method-steps article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #e8efec}.ai-method-steps article:last-child{border-bottom:0}.ai-method-steps article>span{width:30px;height:30px;border-radius:10px;background:#eaf5ef;color:#2d7b59;display:grid;place-items:center;font-size:.72rem;font-weight:600}.ai-method-steps h3{margin:0 0 2px;font-size:.88rem;font-weight:600}.ai-method-steps p{margin:0;font-size:.76rem;color:var(--muted);line-height:1.5}.ai-cabinet-legend{margin-top:13px;padding:12px 14px;border-radius:13px;background:#0d3d34;color:#d7eee5;display:grid;gap:5px;font-size:.72rem}.ai-cabinet-legend b{color:#fff;font-size:.78rem;font-weight:600}.ai-result{margin-top:16px}.ai-result-head{align-items:flex-start}.ai-report-summary{font-size:.9rem;line-height:1.65;color:#36574d;background:#f1f8f4;border:1px solid #deebe5;border-radius:14px;padding:14px 16px}.ai-report-section{margin-top:20px}.ai-report-section>h3{font-size:1rem;font-weight:600;margin:0 0 10px}.ai-report-section-title{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:start;margin-bottom:10px}.ai-report-section-title>span{width:28px;height:28px;border-radius:9px;background:#153f35;color:#c7efdb;display:grid;place-items:center;font-size:.68rem}.ai-report-section-title h3{margin:0;font-size:1rem;font-weight:600}.ai-report-section-title p{margin:2px 0 0;font-size:.72rem;color:var(--muted)}.ai-finding-list,.ai-action-list,.ai-doc-gap-list,.ai-normalize-list{display:grid;gap:8px}.ai-finding{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;border:1px solid #e1eae6;border-radius:12px;padding:11px 12px;background:#fff}.ai-finding h4{margin:0 0 3px;font-size:.84rem;font-weight:600}.ai-finding p{margin:0;color:#536a62;font-size:.76rem;line-height:1.5}.ai-finding small{display:block;margin-top:5px;color:#7a8c85;font-size:.68rem}.ai-action-card{border:1px solid #dfe9e4;border-radius:13px;padding:11px 12px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.ai-action-main>div:first-child{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.ai-action-main b{font-size:.82rem;font-weight:600}.ai-action-main small{font-size:.67rem;color:var(--muted)}.ai-route{display:flex!important;gap:8px!important;align-items:center;margin:8px 0 5px;flex-wrap:wrap}.ai-route span{background:#eef5f2;border-radius:8px;padding:5px 8px;font-size:.73rem;color:#335b4f}.ai-route b{font-weight:500;color:#6b8179}.ai-action-main p{margin:2px 0;font-size:.76rem;line-height:1.5;color:#4c655d}.ai-human-check{display:inline-block!important;margin-top:7px!important;padding:5px 8px!important;border-radius:8px;background:#fff5e7;color:#8a6220!important}.ai-doc-gap{border:1px solid #dfe9e4;border-radius:13px;padding:11px 12px;background:#fff;display:grid;grid-template-columns:minmax(150px,.7fr) minmax(180px,1.2fr) minmax(180px,.8fr) auto;gap:12px;align-items:center}.ai-doc-gap>div:first-child{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ai-doc-gap b{font-size:.8rem;font-weight:600}.ai-doc-gap small{font-size:.66rem;color:var(--muted)}.ai-doc-gap p{margin:0;font-size:.73rem;line-height:1.45;color:#536a62}.ai-doc-source{display:grid;gap:3px}.ai-doc-source a{font-size:.73rem;color:#167652;text-decoration:none;overflow-wrap:anywhere}.ai-doc-source a:hover{text-decoration:underline}.ai-doc-source span{font-size:.71rem;color:#7b8d86}.ai-normalize-card{border:1px solid #dfe9e4;border-radius:13px;padding:11px 12px;background:#fff;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);gap:14px;align-items:center}.ai-normalize-card b{font-size:.78rem;font-weight:600;color:#185742}.ai-normalize-card p{margin:4px 0;font-size:.76rem;color:#425f56}.ai-normalize-card small{font-size:.67rem;color:var(--muted)}.ai-normalize-choice{display:flex;gap:7px}.ai-normalize-choice select{min-width:0;flex:1;border:1px solid #d8e5df;border-radius:10px;padding:9px;background:#fbfdfc}.ai-plan-list{margin:0;padding-left:22px;color:#425f56;font-size:.78rem;line-height:1.6}.ai-plan-list li+li{margin-top:5px}.ai-warning-section{padding:12px 14px;border:1px solid #f0d9b9;border-radius:13px;background:#fffaf1}.ai-warning-section ul{margin:0;padding-left:20px;font-size:.75rem;color:#755a31;line-height:1.55}.ai-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ai-source-list a{display:grid;gap:2px;border:1px solid #e0eae5;border-radius:10px;padding:9px 10px;text-decoration:none;color:#1d654d;background:#fff;min-width:0}.ai-source-list b{font-size:.73rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-source-list small{font-size:.64rem;color:var(--muted)}
@media(max-width:1180px){.ai-workbench-grid{grid-template-columns:1fr}.ai-control-form{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-control-form label:nth-child(4),.ai-control-form .ai-task-explainer,.ai-control-form>button{grid-column:1/-1}.ai-doc-gap{grid-template-columns:minmax(130px,.6fr) minmax(180px,1fr) minmax(160px,.8fr) auto}}
@media(max-width:820px){.ai-source-pills{justify-content:flex-start;margin-top:12px}.ai-control-form{grid-template-columns:1fr}.ai-control-form label:nth-child(4),.ai-control-form .ai-task-explainer,.ai-control-form>button{grid-column:auto}.ai-action-card,.ai-doc-gap,.ai-normalize-card{grid-template-columns:1fr}.ai-normalize-choice{flex-direction:column}.ai-source-list{grid-template-columns:1fr}}

/* AI call telemetry / proof of response */
.ai-run-status{margin-top:12px;border:1px solid #dbe8e2;background:#f9fcfa;border-radius:14px;padding:12px;display:grid;gap:10px}.ai-run-status-head{display:flex;gap:10px;align-items:flex-start}.ai-run-status-head>div{display:grid;gap:2px;min-width:0}.ai-run-status-head b{font-size:.83rem;font-weight:600}.ai-run-status-head small{font-size:.71rem;line-height:1.45;color:var(--muted)}.ai-run-dot{width:11px;height:11px;border-radius:50%;margin-top:4px;flex:0 0 11px;background:#aebdb7;box-shadow:0 0 0 4px rgba(174,189,183,.12)}.ai-run-dot.running{background:#d79b28;box-shadow:0 0 0 4px rgba(215,155,40,.12);animation:aiPulse 1.25s ease-in-out infinite}.ai-run-dot.success{background:#2da66e;box-shadow:0 0 0 4px rgba(45,166,110,.13)}.ai-run-dot.error{background:#c45445;box-shadow:0 0 0 4px rgba(196,84,69,.13)}@keyframes aiPulse{50%{transform:scale(1.2);opacity:.65}}.ai-run-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ai-run-facts>span{display:grid;gap:1px;border:1px solid #e2ece7;background:#fff;border-radius:10px;padding:7px 8px;min-width:0}.ai-run-facts small{font-size:.61rem;color:#7d9088;text-transform:uppercase;letter-spacing:.04em}.ai-run-facts b{font-size:.69rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-run-error{margin:0;padding:8px 9px;border-radius:9px;background:#fff0ed;color:#9a4438;font-size:.7rem;line-height:1.45}.ai-response-proof{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:9px 10px;border:1px solid #dce8e3;border-radius:11px;background:#f7fbf9}.ai-response-proof span{font-size:.68rem;color:#657b73;background:#fff;border:1px solid #e3ece8;border-radius:999px;padding:4px 7px}.ai-response-proof .ok{color:#176b4b;background:#eaf7f1;border-color:#d7eee3}.ai-empty-result{margin-top:10px}
@media(max-width:760px){.ai-run-facts{grid-template-columns:1fr}.ai-response-proof{align-items:flex-start}}

/* =========================================================
   Patch 16 — item dossier, AI full-width, worksheet blocks
   ========================================================= */
/* AI sorting: explanation first, then one full-width working surface. */
.ai-task-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.ai-task-guide article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;padding:13px 14px;border:1px solid #dfe9e5;border-radius:15px;background:#fff;min-width:0}.ai-task-guide article>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#eaf5ef;color:#237151;font-size:.68rem;font-weight:600}.ai-task-guide h3{margin:0 0 3px;font-size:.83rem;font-weight:600}.ai-task-guide p{margin:0;color:var(--muted);font-size:.71rem;line-height:1.48}.ai-control-panel-full{width:100%;padding:18px}.ai-control-form-wide{display:grid;gap:12px}.ai-control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.ai-note-field{display:grid;gap:6px}.ai-control-form-wide textarea{min-height:112px}.ai-run-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-run-row .btn{min-width:190px}.ai-source-pill{border:1px solid #dce8e3;border-radius:999px;background:#f5f9f7;color:#6c8179;font-size:.68rem;padding:6px 9px}.ai-source-pill.active{background:#e8f6ef;color:#1e704f;border-color:#cbe6d8}.ai-control-form-wide .ai-run-status{margin-top:0}.ai-open-item{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.ai-open-item:hover,.ai-open-item:focus-visible{outline:0;border-color:#9dcdb8!important;background:#fbfefc;box-shadow:0 8px 22px rgba(21,79,63,.07)}.ai-code-button{border:0;cursor:pointer}.ai-code-button:hover,.ai-code-button:focus-visible{outline:2px solid #9fd2bc;outline-offset:2px}.ai-doc-linked{white-space:nowrap}.ai-doc-gap a{position:relative;z-index:2}

/* Material card: one glance for stock, procurement and documentation. */
#detailModal .modal-card.extra-wide{width:min(1120px,calc(100vw - 28px));max-height:min(92vh,940px);overflow-y:auto;overflow-x:hidden}.item-detail-hero{grid-template-columns:48px minmax(0,1fr);align-items:start;padding-right:36px}.item-detail-hero .detail-code{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.item-detail-hero .detail-title h2{margin:2px 0 6px;font-size:1.55rem;font-weight:600;line-height:1.2}.item-detail-hero .detail-title>p.muted{margin:0;line-height:1.5}.detail-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.item-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.item-detail-section{border:1px solid #e0e9e5;border-radius:15px;background:#fff;padding:14px 15px;margin-top:12px;min-width:0}.item-detail-columns .item-detail-section{margin-top:0}.item-detail-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.item-detail-section-head h3{margin:0;font-size:.92rem;font-weight:600}.item-detail-section-head>span{color:var(--muted);font-size:.7rem}.item-info-list{display:grid;gap:0;margin:0}.item-info-list>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid #edf2ef}.item-info-list>div:first-child{border-top:0}.item-info-list dt{color:var(--muted);font-size:.72rem}.item-info-list dd{margin:0;font-size:.79rem;min-width:0;overflow-wrap:anywhere}.item-info-list a,.item-doc-card a,.friendly-order-link{color:#157551;text-decoration:underline;text-underline-offset:2px}.item-doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.item-doc-card{display:grid;align-content:start;gap:5px;border:1px solid #e3ebe7;border-radius:13px;padding:11px 12px;background:#f9fcfa;min-height:112px}.item-doc-card>span{color:#2b7c59;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.item-doc-card>b{font-size:.78rem;font-weight:500;line-height:1.4;overflow-wrap:anywhere}.item-doc-card>a,.item-doc-card>small{font-size:.69rem;line-height:1.45;margin-top:auto}.item-doc-card>small{color:var(--muted)}.item-orders-list{border:1px solid #e2eae7;border-radius:12px;overflow:hidden}.item-order-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 11px;border-top:1px solid #e8efec;background:#fff;cursor:pointer;transition:.15s;min-width:0}.item-order-row:first-child{border-top:0}.item-order-row:hover,.item-order-row:focus-visible{outline:0;background:#f3f9f6}.item-order-row>span:first-child{min-width:0}.item-order-row b{display:block;font-size:.79rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-order-row small{display:block;color:var(--muted);font-size:.66rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-order-row>span:nth-child(2){font-size:.74rem;white-space:nowrap}.friendly-order-link{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.69rem;white-space:nowrap}.item-detail-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}

/* Friendlier material editor. */
.item-editor-modal{width:min(1100px,calc(100vw - 28px))!important;max-height:min(94vh,980px);overflow-y:auto;overflow-x:hidden}.item-editor-head{margin-bottom:8px}.item-editor-form{display:grid;gap:11px}.item-form-section{border:1px solid #e0e9e5;border-radius:16px;padding:14px 15px;background:#fcfdfc}.item-form-section-head{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:start;margin-bottom:12px}.item-form-section-head>span{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:#eaf5ef;color:#277454;font-size:.68rem;font-weight:600}.item-form-section-head h3{margin:0;font-size:.9rem;font-weight:600}.item-form-section-head p{margin:2px 0 0;color:var(--muted);font-size:.7rem;line-height:1.45}.item-editor-form .form-grid{gap:10px 12px}.item-editor-form .form-grid label>span{font-weight:500}.item-editor-form .form-actions{margin-top:2px}.item-editor-form input,.item-editor-form select,.item-editor-form textarea{background:#fff}.item-editor-form textarea{resize:vertical}.item-editor-form .field-help{font-size:.65rem}.item-editor-form .check{align-self:end;display:flex;align-items:center;min-height:44px;gap:8px}.item-editor-form .check input{width:17px;height:17px;accent-color:#32a56f}.item-editor-form .check span{font-size:.8rem}.item-editor-form .supplier-inline-create{grid-column:1/-1;border:1px dashed #cfe1d8;border-radius:13px;padding:12px;background:#f5faf7}

/* Block-based worksheet builder. */
.worksheet-builder-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:14px;align-items:start}.worksheet-palette{position:sticky;top:92px;display:grid;gap:6px;border:1px solid #dfe9e5;border-radius:15px;padding:10px;background:#f6faf8;max-height:calc(94vh - 150px);overflow-y:auto;overflow-x:hidden}.worksheet-palette-title{margin:1px 4px 4px;color:#607970;font-size:.69rem;text-transform:uppercase;letter-spacing:.06em}.worksheet-palette button,.worksheet-image-add{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;gap:1px 8px;align-items:center;width:100%;border:1px solid transparent;border-radius:11px;background:#fff;color:var(--ink);padding:8px 9px;text-align:left;cursor:pointer}.worksheet-palette button:hover,.worksheet-palette button:focus-visible,.worksheet-image-add:hover{outline:0;border-color:#b9ddcc;background:#fafffc}.worksheet-palette button>span,.worksheet-image-add>span{grid-row:1/3;width:29px;height:29px;border-radius:9px;background:#e9f4ee;color:#267755;display:grid;place-items:center;font-size:.68rem}.worksheet-palette b,.worksheet-image-add b{font-size:.73rem;font-weight:550}.worksheet-palette small,.worksheet-image-add small{font-size:.61rem;color:var(--muted);line-height:1.3}.worksheet-canvas-shell{min-width:0;border:1px solid #dfe9e5;border-radius:16px;padding:12px;background:#f7faf8}.worksheet-canvas-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin:0 2px 10px}.worksheet-canvas-head h4{margin:0;font-size:.9rem;font-weight:600}.worksheet-canvas-head p{margin:3px 0 0;color:var(--muted);font-size:.68rem}.worksheet-canvas{display:grid;gap:8px}.worksheet-block-rich{grid-template-columns:30px 26px minmax(0,1fr) 28px;align-items:start;padding:10px;border-radius:13px;background:#fff;min-width:0}.worksheet-block-rich .drag-handle{position:sticky;top:0}.worksheet-block-rich .block-order{width:24px;height:24px;border-radius:8px;background:#153f35;color:#d8f3e5;display:grid;place-items:center;font-size:.62rem;margin-top:4px}.block-copy{min-width:0}.block-title-row{display:flex;justify-content:space-between;gap:9px;align-items:center;margin-bottom:7px}.block-title-row strong{font-size:.77rem;font-weight:550;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-title-row small{color:var(--muted);font-size:.6rem;white-space:nowrap}.block-remove{width:26px;height:26px;border:0;border-radius:8px;background:#fff0ed;color:#a44f42;cursor:pointer}.block-editor-fields{display:grid;gap:7px}.block-editor-fields>label,.block-image-editor>label,.block-table-fields label{display:grid;gap:5px;font-size:.67rem;color:#587067}.block-editor-fields input,.block-editor-fields textarea,.block-image-editor input,.block-table-fields textarea{width:100%;border:1px solid #dce7e2;border-radius:10px;background:#fbfdfc;color:var(--ink);padding:8px 9px;font-size:.77rem;line-height:1.45;resize:vertical}.block-editor-fields textarea:focus,.block-editor-fields input:focus,.block-image-editor input:focus,.block-table-fields textarea:focus{outline:0;border-color:#70bd96;box-shadow:0 0 0 3px rgba(55,166,111,.09)}.block-kind-label{font-size:.64rem;color:#2a7a58;text-transform:uppercase;letter-spacing:.05em}.block-static-preview{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 9px;border-radius:10px;background:#f0f7f3}.block-static-preview b{font-size:.73rem;font-weight:550}.block-static-preview span{font-size:.65rem;color:var(--muted);text-align:right}.block-image-editor{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;align-items:start}.block-image-editor img{width:150px;height:96px;object-fit:cover;border-radius:9px;background:#eef3f1}.block-table-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.block-drawing-preview{width:min(100%,560px);aspect-ratio:auto;border:1.5px dashed #a8bbb3;border-radius:11px;background:#fff;max-height:560px}.worksheet-block.dragging{opacity:.48;box-shadow:none}.worksheet-block.drag-over{border-color:#4caf7d;background:#eef8f3;box-shadow:inset 0 0 0 1px #4caf7d}.experiment-ai-run-status{margin-top:12px}.experiment-ai-run-status .ai-run-facts,.experiment-ai-run-status .ai-run-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.ai-run-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.ai-run-metrics>span{display:grid;gap:1px;border:1px solid #e2ece7;background:#fff;border-radius:10px;padding:7px 8px;min-width:0}.ai-run-metrics small{font-size:.61rem;color:#7d9088;text-transform:uppercase;letter-spacing:.04em}.ai-run-metrics b{font-size:.69rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:1180px){.ai-task-guide{grid-template-columns:repeat(2,minmax(0,1fr))}.worksheet-builder-layout{grid-template-columns:220px minmax(0,1fr)}.item-doc-grid{grid-template-columns:1fr 1fr}.item-doc-card:last-child{grid-column:1/-1}.ai-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px) and (min-width:721px){.worksheet-builder-layout{grid-template-columns:200px minmax(0,1fr)}.worksheet-palette{top:78px}.worksheet-palette small{display:none}.worksheet-palette button,.worksheet-image-add{grid-template-rows:auto;padding:8px}.worksheet-palette button>span,.worksheet-image-add>span{grid-row:auto}.item-detail-columns{grid-template-columns:1fr}.item-doc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.item-doc-card:last-child{grid-column:auto}.ai-task-guide p{font-size:.68rem}}
@media(max-width:720px){.ai-task-guide{grid-template-columns:1fr}.ai-control-grid{grid-template-columns:1fr}.ai-run-row{display:grid;grid-template-columns:1fr}.ai-run-row .btn{width:100%}.worksheet-builder-layout{display:block}.worksheet-palette{position:static;max-height:none;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.worksheet-palette-title{grid-column:1/-1}.worksheet-palette button,.worksheet-image-add{min-width:0}.worksheet-canvas-shell{padding:9px}.worksheet-block-rich{grid-template-columns:28px 24px minmax(0,1fr) 26px;padding:8px}.block-title-row{display:block}.block-title-row small{display:block;margin-top:2px}.block-image-editor,.block-table-fields{grid-template-columns:1fr}.block-image-editor img{width:100%;height:180px}.item-detail-columns{grid-template-columns:1fr}.item-doc-grid{grid-template-columns:1fr}.item-doc-card:last-child{grid-column:auto}.item-order-row{grid-template-columns:minmax(0,1fr) auto}.item-order-row .friendly-order-link{grid-column:1/-1}.item-info-list>div{grid-template-columns:1fr;gap:3px}.item-detail-actions{display:grid}.item-detail-actions .btn{width:100%}.item-editor-form .form-grid{grid-template-columns:1fr}.experiment-ai-run-status .ai-run-facts,.experiment-ai-run-status .ai-run-metrics,.ai-run-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.worksheet-palette{grid-template-columns:1fr}.experiment-ai-run-status .ai-run-facts,.experiment-ai-run-status .ai-run-metrics,.ai-run-metrics{grid-template-columns:1fr}.item-detail-hero{grid-template-columns:42px minmax(0,1fr);padding-right:26px}.item-detail-hero .detail-code{width:42px;height:42px}}
.ai-control-form.ai-control-form-wide{grid-template-columns:1fr!important}

/* Dashboard stock identity: shelf first, explicit item code second. */
.overview-shelves{display:flex;flex-wrap:wrap;gap:5px;max-width:138px}.shelf-chip{display:inline-flex;align-items:center;min-height:29px;padding:5px 9px;border-radius:9px;background:#e8f3ee;color:#176b4c;font-size:.7rem;font-weight:600;letter-spacing:.025em;white-space:nowrap}.shelf-chip.outside{background:#f1f3f2;color:#667a73}
@media(max-width:720px){.overview-shelves{max-width:110px}.shelf-chip{font-size:.65rem;padding:4px 7px}}

/* Single vertical scroll surface: the page, or the modal overlay while a modal is open. */
html.modal-open,body.modal-open{overflow:hidden}
.modal{align-items:flex-start;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.modal-card,.modal-card.experiment-editor,#detailModal .modal-card.extra-wide,.item-editor-modal,.order-material-modal,.order-history-modal,#suppliersModal .modal-card.extra-wide{height:auto;max-height:none;overflow:visible;margin:auto 0}

.recording-workspace{min-height:520px;background:#fff}
.inventory-pdf-modal{width:min(1240px,calc(100vw - 30px));height:calc(100vh - 30px);max-height:calc(100vh - 30px);overflow:hidden;display:flex;flex-direction:column;margin:auto 0}
.inventory-pdf-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex:0 0 auto}
.inventory-pdf-modal iframe{display:block;width:100%;min-height:0;flex:1;border:1px solid #dce7e2;border-radius:14px;background:#eef3f1}
@media(max-width:720px){.recording-workspace{min-height:420px}.inventory-pdf-modal{width:calc(100vw - 14px);height:calc(100vh - 14px);max-height:calc(100vh - 14px)}.inventory-pdf-head{align-items:flex-start;padding-right:28px}.inventory-pdf-head .btn{white-space:nowrap}}
#suppliersModal{overflow-y:auto;overflow-x:hidden}
#suppliersModal .supplier-browser,#suppliersModal .supplier-list,#suppliersModal .supplier-detail{height:auto;min-height:0;max-height:none;overflow:visible}
.order-material-results,.order-history-list,.movement-history-list,.embedded-inventory-rows,.embedded-inventory-body,.compact-fallback,.location-content-list,.worksheet-palette,.supplier-list,.log-json{height:auto;max-height:none;overflow-y:visible;overflow-x:visible;overscroll-behavior:auto}
.order-material-results{overflow:visible}

/* Compact inventory filters, editable recording rows and aligned AI controls. */
.inventory-filterbar #locationFilter{width:230px;min-width:230px;max-width:230px}.inventory-filterbar .hazard-switch{white-space:nowrap}
.recording-table-wrap{overflow-x:hidden;overflow-y:visible}.recording-table{width:100%;min-width:0;table-layout:fixed}.recording-table th{white-space:normal;padding:9px 7px}.recording-table td{padding:9px 7px;min-width:0!important;white-space:normal;overflow-wrap:anywhere}.recording-table th:nth-child(1){width:10%}.recording-table th:nth-child(2){width:14%}.recording-table th:nth-child(3){width:8%}.recording-table th:nth-child(4){width:13%}.recording-table th:nth-child(5){width:22%}.recording-table th:nth-child(6){width:12%}.recording-table .recording-actions-col{width:42px}.recording-table .recording-type{max-width:100%;white-space:normal}.recording-table .row-actions{display:table-cell;width:42px;text-align:left;padding-left:4px;padding-right:4px}.recording-table .row-actions .icon-btn{width:30px;height:30px;padding:5px}.recording-row-editable{cursor:pointer}.recording-row-editable:hover{background:#f4faf7}.recording-row-editable:focus{outline:2px solid #76bd99;outline-offset:-2px}.recording-row-editable .recording-delete{position:relative;z-index:2}
.ai-control-grid{align-items:start}.ai-control-grid>label{grid-template-rows:auto 48px;align-content:start}.ai-control-grid select{height:48px;min-height:48px;padding:11px 14px}
@media(max-width:720px){.inventory-filterbar #locationFilter{width:100%;min-width:0;max-width:none}.recording-table{font-size:.72rem}.recording-table th,.recording-table td{padding:7px 4px}.recording-table th:nth-child(2){width:13%}.recording-table th:nth-child(5){width:23%}.recording-table th:nth-child(7),.recording-table td:nth-child(7){display:none}}

/* Receipt destination belongs to each order line, never to the order as a whole. */
.receive-modal-card{width:min(1120px,calc(100vw - 28px))}
.receive-form{display:grid;gap:14px}.receive-table{border:1px solid #dfe8e3;border-radius:14px;overflow:hidden;background:#fff}.receive-head,.receive-row{display:grid;grid-template-columns:minmax(250px,1.35fr) minmax(145px,.75fr) minmax(200px,1fr) 115px;gap:10px;align-items:center}.receive-head{padding:8px 11px;background:#f1f6f3;color:#667c74;font-size:.64rem;text-transform:uppercase;letter-spacing:.035em}.receive-row{padding:10px 11px;border-top:1px solid #e5ede9}.receive-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:9px;align-items:center;min-width:0}.receive-item strong{display:block;font-size:.77rem;font-weight:550;line-height:1.35}.receive-item small{display:block;margin-top:2px;color:var(--muted);font-size:.65rem}.receive-field{display:grid;gap:4px;min-width:0}.receive-label{display:none;color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.035em}.receive-position{display:block;color:#245f4c;font-size:.72rem;line-height:1.45}.receive-position.empty{min-height:1.1em}.receive-row select,.receive-row input{width:100%;min-width:0;border:1px solid #d8e4de;border-radius:9px;background:#fbfdfc;color:#183e34;padding:8px;font:inherit}.receive-row input{font-variant-numeric:tabular-nums}
@media(max-width:820px){.receive-head{display:none}.receive-row{grid-template-columns:1fr 1fr;align-items:start}.receive-item{grid-column:1/-1}.receive-label{display:block}.receive-form .form-actions{grid-column:auto}}
@media(max-width:560px){.receive-row{grid-template-columns:1fr}.receive-item{grid-column:auto}.receive-form .form-actions{display:grid}.receive-form .form-actions .btn{width:100%}}

/* Auditable stock adjustment inside the existing material editor. */
.stock-adjust-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:11px 12px;border:1px solid #dce8e2;border-radius:12px;background:#f3f8f5}.stock-adjust-summary span{color:var(--muted);font-size:.72rem}.stock-adjust-summary output{color:#185c46;font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums}.stock-adjust-grid textarea{min-height:76px}.stock-adjust-grid input[readonly]{background:#f1f5f3;color:#60756d}

/* Storage contents appear above the map; the modal overlay is the only vertical scroll surface. */
.location-content-modal-card{width:min(1080px,calc(100vw - 28px))}.location-inspector-modal-body{min-height:140px}.location-inspector-modal-body .location-content-list{height:auto;max-height:none;overflow:visible;padding-right:0}
@media(max-width:720px){.location-content-modal-card{width:calc(100vw - 14px)}.location-inspector-modal-body .location-content-row{grid-template-columns:54px minmax(0,1fr) auto}.location-inspector-modal-body .location-inspector-kpis{display:grid;grid-template-columns:1fr 1fr}}

/* Both laboratory plans share the same hotspot and OUT behavior. */
.storage-map-area:not(.hidden)~.storage-map-area:not(.hidden){margin-top:26px;padding-top:24px;border-top:1px solid #e3ece8}.unmapped-locations{margin-top:14px;padding:12px;border:1px dashed #cdded6;border-radius:14px;background:#f8fbfa}.unmapped-locations-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.unmapped-locations-head strong{font-size:.78rem;font-weight:600;color:#2b5d4d}.unmapped-locations-head span{color:var(--muted);font-size:.68rem}.unmapped-locations .compact-fallback{margin-top:9px}.unmapped-locations .location-card{max-width:310px}
@media(max-width:720px){.storage-map-area:not(.hidden)~.storage-map-area:not(.hidden){margin-top:18px;padding-top:18px}.unmapped-locations-head{display:grid;gap:3px}.unmapped-locations .location-card{max-width:none}}

/* Saved AI report library and explicit report actions. */
.ai-report-library{margin-top:16px}.ai-library-head{align-items:flex-start}.ai-library-head h2{margin:2px 0 4px}.ai-library-count{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border-radius:999px;background:#eaf6ef;color:#226d50;border:1px solid #d2e9dd;font-size:.69rem;font-weight:600;white-space:nowrap}.ai-saved-report-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ai-saved-report-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid #dfe9e5;border-radius:15px;background:linear-gradient(145deg,#fff,#f9fcfa);transition:border-color .16s,box-shadow .16s,transform .16s;min-width:0}.ai-saved-report-card:hover{border-color:#b8dacb;box-shadow:0 9px 24px rgba(21,74,60,.07);transform:translateY(-1px)}.ai-saved-report-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#153f35,#2f8d65);color:#dff7ea;box-shadow:0 7px 16px rgba(24,88,67,.16)}.ai-saved-report-copy{min-width:0}.ai-saved-report-copy h3{margin:0 0 4px;font-size:.84rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-saved-report-meta{display:flex;gap:5px 9px;flex-wrap:wrap;color:#6b8078;font-size:.66rem;line-height:1.4}.ai-saved-report-meta span{display:inline-flex;align-items:center;gap:4px}.ai-saved-report-actions{display:flex;align-items:center;gap:6px}.ai-saved-report-actions .btn{padding:8px 10px;border-radius:10px;font-size:.7rem}.ai-saved-report-actions .ai-card-delete{width:34px;height:34px;padding:0}.ai-report-head-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.ai-report-head-actions .btn{padding:9px 12px}.ai-report-save.is-saved{background:#eaf6ef;color:#267052;border:1px solid #cfe7db;box-shadow:none}.ai-report-save.is-saved:hover{transform:none}.ai-report-delete[hidden]{display:none}.ai-report-library .empty-state{grid-column:1/-1;min-height:94px;padding:18px}.ai-report-library .empty-state span{font-size:.75rem;color:var(--muted)}
@media(max-width:1050px){.ai-saved-report-list{grid-template-columns:1fr}.ai-result-head{display:block}.ai-report-head-actions{justify-content:flex-start;margin-top:12px}}
@media(max-width:620px){.ai-library-head{display:block}.ai-library-count{margin-top:9px}.ai-saved-report-card{grid-template-columns:38px minmax(0,1fr)}.ai-saved-report-icon{width:38px;height:38px;border-radius:11px}.ai-saved-report-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr auto}.ai-saved-report-actions .btn:first-child{width:100%}.ai-report-head-actions{display:grid;grid-template-columns:1fr 1fr}.ai-report-head-actions .btn{width:100%}.ai-report-head-actions #downloadPdfBtn{grid-column:1/-1}}

/* Universal visual grammar: rounded positions, directional material-code tickets. */
.item-code-ticket,.code-chip,.order-line-code{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 15px 4px 8px;border:1px solid #15933a;background:#39b54a;color:#071d0c;font-family:"Noto Sans",sans-serif;font-size:.73rem;font-weight:700;line-height:1;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%);border-radius:0;white-space:nowrap;cursor:inherit}.item-code-ticket.compact{min-height:23px;padding:3px 13px 3px 6px;font-size:.67rem}.item-code-ticket.large{min-height:48px;padding:8px 21px 8px 12px;font-size:.86rem}.ai-code-button.item-code-ticket{cursor:pointer}.position-ticket,.position-code,.shelf-chip{display:inline-flex;align-items:center;border:1px solid #3037b6;border-radius:999px;background:#454bd7;color:#fff;padding:4px 9px;font-family:"Noto Sans",sans-serif;font-size:.7rem;font-weight:600;line-height:1.2;white-space:nowrap}.position-code{white-space:normal}.position-code-list{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.position-ticket.outside{background:#596273;border-color:#454d5c;color:#fff}.position-ticket.origin{background:#d7463c;border-color:#b93229;color:#fff}.position-ticket.destination{background:#249f66;border-color:#18794b;color:#fff}
.item-code-ticket[class*="subject-"],.code-chip[class*="subject-"],.order-line-code{background:#39b54a;color:#071d0c;border-color:#15933a}.overview-shelves .shelf-chip{background:#454bd7;color:#fff;border-color:#3037b6}.overview-shelves .shelf-chip.outside{background:#596273;color:#fff;border-color:#454d5c}
.detail-code,.order-line-code,.item-detail-hero .detail-code,.friendly-order-link,.order-link-label{font-family:"Noto Sans",sans-serif}

/* Material editor switches, batches and expiry emphasis. */
.switch-field{display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:48px;border:1px solid #d9e5df;border-radius:13px;padding:9px 12px;background:#fbfdfc}.switch-field>span{font-size:.78rem;color:#526860}.switch-input{position:absolute;opacity:0;pointer-events:none}.switch-field i,.mini-switch i{display:block;position:relative;width:42px;height:24px;border-radius:999px;background:#cbd8d2;transition:.18s;cursor:pointer}.switch-field i:after,.mini-switch i:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.18s}.switch-field:has(input:checked) i,.mini-switch:has(input:checked) i{background:#2fa36e}.switch-field:has(input:checked) i:after,.mini-switch:has(input:checked) i:after{transform:translateX(18px)}.mini-switch{display:inline-flex}.mini-switch input{position:absolute;opacity:0}.mini-switch i{width:34px;height:20px}.mini-switch i:after{width:14px;height:14px}.mini-switch:has(input:checked) i:after{transform:translateX(14px)}.batch-section-head{margin:9px 0}.batch-section-head h4{margin:0;font-size:.9rem}.batch-section-head p{margin:4px 0 0;color:var(--muted);font-size:.72rem}.item-batches{display:grid;gap:8px}.batch-row{display:grid;grid-template-columns:minmax(230px,1fr) minmax(180px,240px) auto auto;gap:9px;align-items:end;padding:10px;border:1px solid #dfe8e4;border-radius:13px;background:#fbfdfc}.batch-row.expired{border-left:6px solid #d7493d;background:#fff3f1}.batch-row.retired{opacity:.62}.batch-row strong,.batch-row small{display:block}.batch-row small{margin-top:3px;color:var(--muted);font-size:.68rem}.batch-row label{display:grid;gap:4px}.batch-row label span{font-size:.65rem;color:var(--muted)}.batch-row input{width:100%;border:1px solid #d6e2dc;border-radius:9px;padding:8px}.expired-row{background:#fff0ee!important;box-shadow:inset 5px 0 #d94b3d}.status.expired{background:#ffe2de;color:#a9362d}.consumable-label{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e9f4ef;color:#176448;font-size:.7rem;font-weight:600}.expired-switch{color:#a53c33}

/* Teacher requests and handler workflow. */
.role-teacher .order-builder-panel,.role-teacher #orderHistoryBtn{display:none}.teacher-request-panel,.procurement-handler-panel,.request-history{margin-bottom:14px}.request-new-material{display:grid;grid-template-columns:minmax(220px,1fr) 110px 100px auto;gap:8px;align-items:end;padding:11px;border:1px dashed #cddfd7;border-radius:13px}.request-new-material label{display:grid;gap:5px}.request-search-results{display:grid;gap:5px}.request-result{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #dce7e2;border-radius:11px;background:#fff;padding:8px;text-align:left;cursor:pointer}.request-draft-list,.procurement-requests{display:grid;gap:8px}.request-draft-list>div,.procurement-lines>div{display:grid;grid-template-columns:minmax(0,1fr) 100px auto 30px;gap:8px;align-items:center;padding:7px;border-bottom:1px solid #e6eeea}.request-draft-list input{width:100%;border:1px solid #d8e4de;border-radius:8px;padding:7px}.request-draft-list button{border:0;background:transparent;color:#a33;cursor:pointer}.request-history>h3{margin:0 0 10px}.procurement-card{border:1px solid #dfe8e4;border-radius:14px;padding:12px;background:#fff}.procurement-card-head{display:flex;justify-content:space-between;gap:12px}.procurement-card h4{margin:7px 0 2px}.procurement-card small{color:var(--muted)}.procurement-lines{margin:9px 0}.procurement-lines>div{grid-template-columns:auto minmax(0,1fr) auto}.request-owner{display:block;padding:7px 9px;border-radius:9px;background:#eef5f2}.rejection-reason{color:#9e3d34}.order-link-label{font-family:monospace;color:#276a53}.role-teacher .order-page-actions{width:min(360px,100%)}

/* Five-column receipt rows; the page/modal overlay remains the sole scroll surface. */
.receive-modal-card{width:min(1260px,calc(100vw - 28px))}.receive-head,.receive-row{grid-template-columns:minmax(240px,1.25fr) minmax(135px,.65fr) minmax(185px,.9fr) 105px minmax(155px,.72fr)}

/* Primary plan scaled to the same numeral scale as the secondary plan. */
#primaryStorageMapStage{width:100%;margin-inline:auto}

/* AI relocation overlay. */
.ai-map-modal-card{width:min(1180px,calc(100vw - 24px))}.ai-relocation-map{position:relative;width:100%;margin:auto;border:1px solid #dce7e2;border-radius:16px;overflow:hidden;background:#fafcfb}.ai-relocation-map.primary{width:100%}.ai-relocation-map img{display:block;width:100%;height:auto}.ai-relocation-map svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ai-relocation-map line{stroke:#269d67;stroke-width:.65;stroke-dasharray:2 1.4;vector-effect:non-scaling-stroke}.relocation-marker{position:absolute;transform:translate(-50%,-50%);min-width:34px;height:34px;padding:0 7px;border:3px solid #fff;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:.64rem;font-weight:700;box-shadow:0 3px 12px rgba(0,0,0,.24)}.relocation-marker.origin{background:#d7463c}.relocation-marker.destination{background:#249f66}.ai-map-reason{margin:12px 0 0;color:#536b63}

@media(max-width:820px){.batch-row{grid-template-columns:1fr 1fr}.request-new-material{grid-template-columns:1fr 1fr}.receive-head{display:none}.receive-row{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.batch-row,.request-new-material,.receive-row{grid-template-columns:1fr}}
