:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f4f6f4;--color-surface:#fff;--color-border:#d8ded8;--color-text:#1c241c;--color-muted:#5c6b5c;--color-primary:#2f6a34;--color-primary-hover:#24512a;--color-danger:#a83232;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}a{color:var(--color-primary)}button{cursor:pointer;border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;border-radius:4px;padding:.4rem .8rem;font-family:inherit;font-size:.9rem}button:hover{background:var(--color-primary-hover)}button.secondary{color:var(--color-primary);background:#fff}button.danger{background:var(--color-danger);border-color:var(--color-danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{border:1px solid var(--color-border);color:var(--color-text);background:#fff;border-radius:4px;padding:.35rem .5rem;font-family:inherit;font-size:.9rem}input:disabled,select:disabled,textarea:disabled{color:var(--color-muted);background:#eef0ee}table{border-collapse:collapse;background:var(--color-surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem .6rem;font-size:.9rem}th{background:#eef2ee;font-weight:600}tr:hover td{background:#fafcfa}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-primary);color:#fff;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.6rem 1rem;display:flex}.app-header-brand{font-size:1.1rem;font-weight:700}.app-nav{flex-wrap:wrap;flex:1;gap:1rem;display:flex}.app-nav a{color:#fff;opacity:.85;border-bottom:2px solid #0000;padding:.25rem 0;font-size:.9rem;text-decoration:none}.app-nav a.active,.app-nav a:hover{opacity:1;border-bottom-color:#fff}.app-header-user{align-items:center;gap:.6rem;font-size:.85rem;display:flex}.app-header-user button{background:0 0;border-color:#fff9}html{scrollbar-gutter:stable}.app-main{box-sizing:border-box;flex:1;width:100%;max-width:min(96vw,1800px);margin:0 auto;padding:1.25rem clamp(.5rem,2vw,1.75rem)}.table-wrap{width:100%;overflow-x:auto}table.specs-table{table-layout:auto}table.specs-table th,table.specs-table td{overflow-wrap:break-word;padding:.45rem .5rem}table.specs-table td.col-actions{width:15rem;max-width:18rem;line-height:1.6}table.specs-table td.col-actions a{white-space:nowrap}table.specs-table td.col-count{min-width:5rem;max-width:16rem}@media (width>=1600px){table.specs-table th,table.specs-table td{font-size:.95rem}table.specs-table td.col-actions{width:20rem}}@media (width<=1100px){table.specs-table th,table.specs-table td{padding:.35rem .4rem;font-size:.82rem}}.page-loading{text-align:center;color:var(--color-muted);padding:2rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:1rem;padding:1rem}.field-row{flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;display:flex}.field{flex-direction:column;gap:.25rem;min-width:180px;display:flex}.field label{color:var(--color-muted);font-size:.8rem;font-weight:600}.field-wide{flex:1;min-width:260px}.error-banner{border:1px solid var(--color-danger);color:var(--color-danger);background:#fbeaea;border-radius:4px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.9rem}.section-title{color:var(--color-primary);border-bottom:1px solid var(--color-border);margin:0 0 .75rem;padding-bottom:.35rem;font-size:1rem;font-weight:700}.login-shell{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border:1px solid var(--color-border);background:#fff;border-radius:8px;width:320px;padding:2rem}.image-slot-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.image-slot{border:1px dashed var(--color-border);text-align:center;border-radius:6px;padding:.5rem;font-size:.8rem}.image-slot img{max-width:100%;max-height:100px;margin:0 auto .4rem;display:block}.image-slot-drag-over{border-color:var(--color-primary);background:#eef6ee;border-style:solid}.library-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.library-tile{border:1px solid var(--color-border);background:var(--color-surface);cursor:grab;border-radius:6px;padding:.5rem}.library-tile:active{cursor:grabbing}.library-tile-drag-over{border-color:var(--color-primary);background:#eef6ee;border-style:dashed;border-width:2px}.library-tile img{object-fit:cover;pointer-events:none;border-radius:4px;width:100%;height:90px;margin-bottom:.35rem;display:block}.library-tile-caption{color:var(--color-muted);overflow-wrap:break-word;font-size:.75rem}label.file-button{cursor:pointer;border:1px solid var(--color-primary);color:var(--color-primary);text-align:center;background:#fff;border-radius:4px;padding:.4rem .8rem;font-family:inherit;font-size:.75rem;display:block}label.file-button:hover{background:#eef6ee}label.file-button.disabled{opacity:.5;cursor:not-allowed}label.file-button input{display:none}.upload-preview{object-fit:cover;border-radius:4px;max-width:100%;max-height:60px;margin-top:.4rem;display:block}.slider-value{color:var(--color-muted);font-size:.8rem}.subtabs{border-bottom:1px solid var(--color-border);gap:1.25rem;margin-bottom:1rem;display:flex}.subtabs a{color:var(--color-muted);border-bottom:2px solid #0000;padding:.1rem 0 .6rem;font-size:.9rem;font-weight:600;text-decoration:none}.subtabs a.active,.subtabs a:hover{color:var(--color-primary);border-bottom-color:var(--color-primary)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.tag{border-radius:10px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.tag-live{color:#23662a;background:#e2f3e2}.tag-disabled{color:#8a6d1d;background:#f3ecd8}.tag-archived{color:#555;background:#e6e6e6}.tag-decommissioned{color:#8a2323;background:#f3d8d8}.action-bar{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex;position:sticky;top:0;box-shadow:0 2px 6px #00000014}.library-tile,.image-slot{cursor:zoom-in}.library-tile[draggable=true]{cursor:grab}.image-zoom-hover{z-index:1000;border:1px solid var(--color-border);pointer-events:none;background:#fff;border-radius:8px;padding:6px;position:fixed;box-shadow:0 10px 30px #00000059}.image-zoom-hover img{object-fit:contain;border-radius:4px;display:block}.image-zoom-lightbox{z-index:2000;cursor:zoom-out;background:#000000d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.image-zoom-lightbox img{object-fit:contain;cursor:default;background:#fff;border-radius:6px;max-width:94vw;max-height:94vh}.image-zoom-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:2.4rem;line-height:1;position:absolute;top:12px;right:18px}.count-range{flex-direction:column;gap:.4rem;display:flex}.count-range-row{flex-wrap:wrap;align-items:flex-end;gap:.6rem;display:flex}.count-range-row label{color:var(--color-muted);flex-direction:column;gap:.2rem;font-size:.75rem;font-weight:600;display:flex}.count-range-row select{min-width:90px}.count-chips{flex-wrap:wrap;gap:.25rem;display:flex}.count-chip{background:var(--color-surface);color:var(--color-text,inherit);border:1px solid var(--color-border);cursor:pointer;border-radius:999px;padding:.15rem .5rem;font-size:.8rem}.count-chip-on{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.count-range-hint{color:var(--color-muted);font-size:.8rem}.count-chip-stray{border-style:dashed}a.button-link{background:var(--color-primary);color:#fff;border-radius:4px;padding:.4rem .8rem;font-size:.9rem;text-decoration:none;display:inline-block}a.button-link:hover{background:var(--color-primary-hover)}table.masterfile-table{table-layout:fixed}table.masterfile-table .col-check{width:2.2rem}table.masterfile-table .col-code{width:7rem}table.masterfile-table .col-active,table.masterfile-table .col-action{width:5rem}table.masterfile-table .col-scope{width:9rem}textarea.grow-text{box-sizing:border-box;resize:none;width:100%;min-height:2.1rem;line-height:1.35;display:block;overflow:hidden}.library-missing{text-align:center;min-height:90px;color:var(--color-danger,#a63030);background:#fbeeee;border-radius:4px;justify-content:center;align-items:center;padding:.5rem;font-size:.78rem;display:flex}.nav-badge{color:#fff;text-align:center;background:#c0392b;border-radius:999px;min-width:1.2rem;margin-left:.35rem;padding:0 .35rem;font-size:.72rem;font-weight:700;line-height:1.2rem;display:inline-block}.modal-backdrop{z-index:50;background:#141e1473;justify-content:center;align-items:flex-start;padding:3vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:min(900px,100%);padding:1.1rem 1.25rem;box-shadow:0 10px 40px #00000040}.modal h2{margin:0 0 .6rem;font-size:1.15rem}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.info-banner{color:#6b5410;background:#fff7dd;border:1px solid #e0c870;border-radius:6px;margin-bottom:.8rem;padding:.6rem .8rem}.ok-banner{color:#23662a;background:#e6f4e6;border:1px solid #9ccb9c;border-radius:6px;margin-bottom:.8rem;padding:.6rem .8rem}.diff-old{color:#a33;text-decoration:line-through}.diff-new{color:#2e6b34;font-weight:600}.diff-blank{color:var(--color-muted);font-style:italic}.tag-stale{color:#8a4a0d;background:#fde9d4}.tag-pending{color:#7a5a00;background:#fff1c9}.tag-approved{color:#23662a;background:#e2f3e2}.tag-rejected{color:#8a2222;background:#f7dede}.tag-withdrawn{color:#555;background:#e9e9e9}.row-differs td{background:#fffbe8}.muted{color:var(--color-muted)}.small{font-size:.85rem}.selected-bar{border:1px solid var(--color-border);background:#eef5ee;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.8rem;padding:.5rem .8rem;display:flex}.field.review-flag{background:#fdeaea;border-radius:6px;padding:.25rem .4rem .4rem;box-shadow:inset 0 0 0 1px #efb3b3}.field.review-flag input,.field.review-flag select,.field.review-flag textarea{background:#fff4f4;border-color:#e49a9a}.review-dot{vertical-align:middle;background:#d93025;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.review-banner{color:#7a2020;background:#fdeaea;border:1px solid #efb3b3;border-radius:6px;margin-bottom:.8rem;padding:.6rem .8rem}.review-banner a{color:#7a2020;font-weight:600}.review-hint{color:var(--color-muted);margin-top:.25rem;font-size:.75rem}.review-hint button{padding:.1rem .5rem;font-size:.75rem}.pack-list{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;max-height:11rem;overflow-y:auto}.pack-option{cursor:pointer;border-bottom:1px solid #eef1ee;align-items:flex-start;gap:.5rem;margin:0;padding:.3rem .5rem;font-weight:400;display:flex}.pack-option:last-child{border-bottom:none}.pack-option:hover{background:#f1f6f1}.pack-option input[type=checkbox]{flex:none;width:auto;margin:.2rem 0 0}.pack-chip{color:#23662a;background:#e2f3e2;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .2rem .1rem .6rem;font-size:.85rem;font-weight:600;display:inline-flex}.pack-chip button{color:#23662a;background:0 0;border:none;border-radius:999px;padding:0 .4rem;font-size:1rem;line-height:1.2}.pack-chip button:hover{color:#23662a;background:#c9e6c9}
