:root{font-family:"Source Sans 3","Segoe UI",Arial,sans-serif;color:#17243a;background:#eef4fa;font-synthesis:none;--navy:#12375f;--blue:#1f6fb2;--blue2:#eaf4ff;--green:#16845b;--red:#b94040;--border:#d7e2ee;--muted:#66778a;--card:#fff;--shadow:0 8px 28px rgba(22,54,88,.08)}*{box-sizing:border-box}body{margin:0;background:#eef4fa;color:#17243a}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{width:100%;min-height:38px;border:1px solid #c8d6e5;border-radius:7px;background:#fff;color:#18283d;padding:7px 10px;outline:none}input:focus,select:focus,textarea:focus{border-color:#3d83bd;box-shadow:0 0 0 3px rgba(61,131,189,.13)}textarea{resize:vertical}.btn{border:1px solid transparent;border-radius:7px;min-height:38px;padding:8px 15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.btn.primary{background:#176fb4;color:white}.btn.secondary{background:#e8f0f8;color:#234f77;border-color:#c1d3e4}.btn.success{background:#16845b;color:#fff}.btn.danger{background:#b94040;color:#fff}.icon-btn{border:1px solid #cbd8e4;background:#edf3f8;color:#334a61;width:32px;height:32px;border-radius:6px;font-size:18px}.danger-text{color:#b94040}.link{border:0;background:none;color:#176fb4;font-weight:700}.brand-mark{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:#176fb4;color:#fff;font-weight:900;letter-spacing:.8px}.brand-mark.small{width:40px;height:40px;border-radius:9px}.center-page,.launcher{min-height:100vh}.center-page{display:grid;place-items:center;padding:24px}.login-card{background:#fff;width:min(420px,95vw);padding:34px;border-radius:14px;box-shadow:var(--shadow);display:grid;gap:16px}.login-card h1,.launcher h1{margin:0}.login-card p,.launcher p{margin:0;color:var(--muted)}.launcher{padding:48px max(24px,7vw)}.launcher-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:28px}.launcher-top>div:first-child{display:grid;gap:8px}.launcher-actions,.actions,.modal-actions,.panel-actions,.summary-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.workspace-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.workspace-card{border:1px solid var(--border);background:#fff;border-radius:12px;text-align:left;padding:22px;display:grid;gap:8px;box-shadow:var(--shadow)}.workspace-card strong{font-size:20px}.workspace-card span{color:var(--muted);font-size:12px;word-break:break-all}.workspace-card em{font-style:normal;color:#176fb4;font-weight:700}.empty{padding:36px;border:1px dashed #c0d0e0;border-radius:10px;text-align:center;color:var(--muted);background:#f8fbfe}.notice{padding:10px 13px;border-radius:7px;background:#eaf4ff;color:#1d5f96;margin-bottom:12px}.notice.error{background:#fff0f0;color:#9b2d2d}.notice.success{background:#eaf8f1;color:#12633f}.app-shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.sidebar{background:#11375f;color:#dceafa;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.sidebar-brand{padding:19px 16px;display:flex;gap:11px;align-items:center;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-brand>div:last-child{display:grid}.sidebar-brand span{font-size:12px;color:#acc6df}.sidebar nav{padding:12px 9px;display:grid;gap:3px;overflow:auto}.sidebar nav button{border:0;background:transparent;color:#d4e3f0;text-align:left;padding:9px 12px;border-radius:7px;font-weight:600}.sidebar nav button:hover,.sidebar nav button.active{background:#1d5c91;color:#fff}.sidebar-foot{margin-top:auto;padding:14px;border-top:1px solid rgba(255,255,255,.13);display:grid;gap:8px}.sidebar-foot span{font-size:12px;color:#bcd0e3}.sidebar-foot button{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#fff;border-radius:6px;padding:7px}.app-shell>main{min-width:0}.topbar{height:66px;padding:0 25px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.topbar>div:first-child{display:grid}.topbar span{font-size:12px;color:var(--muted)}.user-chip{background:#e8f2fb;color:#1a5d92;border-radius:18px;padding:7px 12px;font-weight:700}.content{padding:23px;max-width:1680px;margin:auto}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:16px}.page-head h1{margin:0;font-size:25px;color:#163c62}.page-head p{margin:3px 0 0;color:var(--muted)}.panel{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 3px 14px rgba(32,71,108,.045);margin-bottom:17px;overflow:hidden}.panel-title{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 17px;border-bottom:1px solid var(--border)}.panel-title h2{margin:0;font-size:17px}.form-panel{padding:18px;overflow:visible}.field{display:grid;gap:5px;min-width:0}.field>span{font-size:12px;font-weight:700;color:#4c5f73}.form-row{display:grid;gap:12px;margin-bottom:12px;align-items:end}.form-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.kpis>div{background:#fff;border:1px solid var(--border);border-radius:10px;padding:17px;display:grid;gap:5px}.kpis span{color:var(--muted);font-size:12px}.kpis strong{font-size:24px;color:#173f66}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#edf4fa;color:#38556f;font-size:11px;text-transform:uppercase;letter-spacing:.04em;text-align:left}th,td{padding:10px 11px;border-bottom:1px solid #e3ebf2;vertical-align:middle}tbody tr:hover{background:#f8fbfe}.num{text-align:right;font-variant-numeric:tabular-nums}.w60{width:60px}.w120{width:120px}.w140{width:140px}.image-dot{font-size:8px;color:#16845b;margin-left:8px}.search{width:min(320px,42vw)}.modal-backdrop{position:fixed;inset:0;background:rgba(15,34,52,.45);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(96vw,1200px);max-height:94vh;background:#fff;border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.25);overflow:auto;padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:14px}.modal-head h3{margin:0;color:#173f66}.modal-actions,.panel-actions{justify-content:flex-end;margin-top:16px}.line-editor{border:1px solid var(--border);border-radius:8px;margin:13px 0;overflow:hidden}.line-editor>.btn{margin:10px}.output-form{padding:18px;overflow:visible}.output-top{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:17px;align-items:stretch}.output-fields{min-width:0}.output-image{border:1px solid #bfd0df;background:#f6f9fc;border-radius:8px;min-height:132px;display:grid;place-items:center;overflow:hidden;color:#8796a5;font-size:12px}.output-image img{width:100%;height:100%;max-height:160px;object-fit:contain;background:#fff}.fast-entry{display:grid;grid-template-columns:minmax(260px,2.1fr) .65fr .62fr .8fr .9fr .9fr auto;gap:9px;align-items:end;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:15px 0;margin-top:15px}.autocomplete{position:relative}.suggestions{position:absolute;left:0;right:0;top:100%;z-index:40;background:#fff;border:1px solid #bfd0df;border-radius:8px;box-shadow:0 12px 26px rgba(25,56,86,.18);max-height:290px;overflow:auto}.suggestions button{display:grid;grid-template-columns:120px 1fr;width:100%;border:0;border-bottom:1px solid #eef2f5;background:#fff;text-align:left;padding:9px 11px}.suggestions button:hover{background:#edf6ff}.suggestions span{color:#52667a}.output-lines{overflow:auto;margin-top:12px;border:1px solid var(--border);border-radius:8px}.output-summary{margin-top:13px;display:flex;align-items:center;gap:28px;background:#eef5fb;border:1px solid #d4e2ee;padding:12px 14px;border-radius:8px}.output-summary>div:not(.summary-actions){display:grid}.output-summary span{font-size:11px;color:#5d7082}.output-summary strong{font-size:18px;color:#153f65}.summary-actions{margin-left:auto}.badge{display:inline-flex;padding:4px 7px;border-radius:12px;font-size:11px;font-weight:800;background:#e8f1f8;color:#38556f}.status-out_of_stock,.status-critical{background:#ffe8e8;color:#a52f2f}.status-reorder{background:#fff3d9;color:#8a5b00}.status-normal{background:#e9f7ef;color:#1d704c}.status-overstock{background:#eaf1ff;color:#315eae}.role-row{display:flex;justify-content:space-between;gap:20px;padding:13px 16px;border-bottom:1px solid var(--border)}.role-row>div{display:grid}.role-row span,.role-row small{color:var(--muted)}.pdf-wrap{background:#dce5ed;padding:24px;overflow:auto}.pdf-note{position:relative;width:min(820px,100%);min-height:1050px;margin:auto;background:#fff;padding:42px 48px;box-shadow:0 7px 22px rgba(31,52,72,.14);color:#1d2935}.pdf-note header{display:flex;justify-content:space-between;gap:24px;padding-bottom:16px;border-bottom:3px solid #176fb4}.pdf-note header>div:first-child{display:grid}.pdf-note header strong{font-size:19px}.pdf-note header span{font-size:12px;color:#5f6e7d}.pdf-title{text-align:right;display:grid}.pdf-title h2{color:#176fb4;margin:0}.pdf-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 20px;padding:16px 0;font-size:12px}.pdf-note table{font-size:11px}.pdf-note th{background:#dbeaf6;color:#1c4d76}.pdf-totals{display:flex;gap:24px;justify-content:flex-end;margin-top:14px;border-top:1px solid #cbd8e4;padding-top:10px}.pdf-notes{margin-top:17px;border:1px solid #d8e3ed;background:#f8fbfd;padding:10px;font-size:12px}.pdf-notes.danger{background:#fff1f1;border-color:#efc3c3;color:#8e2929}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:95px}.signatures>div{border-top:1px solid #546474;text-align:center;padding-top:6px;font-size:11px}.void-watermark{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%) rotate(-25deg);font-size:90px;font-weight:900;color:rgba(180,35,35,.11);letter-spacing:6px;pointer-events:none}.characteristics-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}.character-list{border:1px solid var(--border);border-radius:8px;overflow:hidden}.character-list button{width:100%;display:grid;grid-template-columns:1fr auto;border:0;border-bottom:1px solid var(--border);background:#fff;text-align:left;padding:12px}.character-list button.active{background:#eaf4ff}.character-list span{color:var(--muted);font-size:12px}.product-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:18px}.product-photo-box{border:1px solid #bfd0df;background:#f7fafc;border-radius:8px;min-height:190px;display:grid;place-items:center;overflow:hidden}.product-photo-box img{max-width:100%;max-height:190px;object-fit:contain}.product-photo-actions{display:grid;gap:8px;margin-top:8px}.char-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tab-row{display:flex;gap:6px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--border)}.tab-row button{border:1px solid #c6d5e3;background:#eaf1f7;color:#31516e;padding:7px 10px;border-radius:7px}.tab-row button.active{background:#176fb4;color:#fff;border-color:#176fb4}
@media(max-width:1050px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.fast-entry{grid-template-columns:repeat(3,minmax(0,1fr))}.autocomplete{grid-column:span 2}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row.four{grid-template-columns:repeat(2,minmax(0,1fr))}.characteristics-layout{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;height:auto;min-height:0}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-foot{display:none}.topbar{position:static}.content{padding:14px}.page-head{align-items:stretch;flex-direction:column}.form-row.two,.form-row.three,.form-row.four,.kpis,.output-top,.product-editor-grid,.char-values,.pdf-meta{grid-template-columns:1fr}.output-image{min-height:170px}.fast-entry{grid-template-columns:repeat(2,minmax(0,1fr))}.autocomplete{grid-column:1/-1}.output-summary{align-items:stretch;flex-direction:column;gap:9px}.summary-actions{margin-left:0}.pdf-note{min-height:0;padding:25px}.pdf-note header{flex-direction:column}.pdf-title{text-align:left}.signatures{gap:30px}}
@media print{body{background:#fff}.sidebar,.topbar,.page-head,.panel-title,.no-print,.btn{display:none!important}.app-shell{display:block}.content{padding:0}.panel,.pdf-wrap{border:0;box-shadow:none;background:#fff;padding:0;margin:0}.pdf-note{box-shadow:none;width:100%;min-height:auto;margin:0;padding:12mm}.pdf-note thead{display:table-header-group}.pdf-note tr{break-inside:avoid}.signatures{break-inside:avoid}}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}.file-btn{position:relative;cursor:pointer}.panel p{color:#5f7082}.actions select{width:auto;min-width:180px}

.product-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:18px}.product-image-box{min-width:0}.image-preview{border:1px solid #bfd0df;background:#f7fafc;border-radius:8px;min-height:190px;display:grid;place-items:center;overflow:hidden;margin-bottom:9px}.image-preview img{width:100%;max-height:190px;object-fit:contain;background:#fff}.product-image-box small{display:block;color:#718293;margin-top:6px}.product-image-box input[type=file]{max-width:100%}@media(max-width:760px){.product-form-grid{grid-template-columns:1fr}}
.capacity-badge{display:inline-flex;margin-top:8px;padding:6px 10px;border-radius:999px;background:#eaf2ff;color:#174a8b;font-weight:700;font-size:.85rem;border:1px solid #bfd4f4}.workspace-card:disabled{opacity:.58;cursor:not-allowed}.form-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-stack{display:flex;flex-direction:column;gap:16px}@media(max-width:760px){.form-grid.two{grid-template-columns:1fr}}

/* F5 Desktop -> OFIDB migration */
.helper{margin:0;color:#526375;font-size:.92rem;line-height:1.45}.migration-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;border:1px solid #d9e3ee;border-radius:12px;background:#f7faff}.migration-summary>div{display:flex;flex-direction:column;gap:3px;min-width:0}.migration-summary span{font-size:.76rem;color:#6b7c8f;text-transform:uppercase;letter-spacing:.035em}.migration-summary strong{color:#16324f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty.compact{padding:12px}.launcher-actions{flex-wrap:wrap}
@media(max-width:760px){.migration-summary{grid-template-columns:1fr 1fr}}
