*{box-sizing:border-box}:root{--bg: #f4f5f7;--card: #fff;--text: #222;--muted: #666;--border: #dcdfe4;--accent: #0b5cad;--danger: #b00020;--ok: #2e7d32;--warn: #8a6d3b}body{font-family:system-ui,sans-serif;margin:0;background:var(--bg);color:var(--text);font-size:15px}a{color:var(--accent)}input,select,textarea,button{font:inherit}input,select,textarea{padding:.35rem .5rem;border:1px solid var(--border);border-radius:4px;background:#fff;max-width:100%}button{padding:.4rem .8rem;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.link{border:none;background:none;color:var(--accent);padding:0;text-decoration:underline}.error{color:var(--danger)}.ok{color:var(--ok)}.warning{color:var(--warn)}.info{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.8rem}.mono{font-family:ui-monospace,Consolas,monospace}.pre{white-space:pre-wrap}.nowrap{white-space:nowrap}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-form{background:var(--card);padding:2rem;border-radius:8px;box-shadow:0 1px 4px #00000026;display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:360px}.login-form h1,.login-form p{margin:0}.login-form label,.form-stack label,.form-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding:.75rem 1.5rem;background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:700}.main-nav{display:flex;flex-wrap:wrap;gap:1rem;flex:1}.main-nav a{text-decoration:none;color:var(--text);padding:.25rem 0;border-bottom:2px solid transparent}.main-nav a.active{border-bottom-color:var(--accent);color:var(--accent)}.user-box{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.role-tag{color:var(--muted)}.page{padding:1.5rem;max-width:1280px;margin:0 auto}.narrow{max-width:720px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.card h3{margin-top:0}.form-stack{display:flex;flex-direction:column;gap:.75rem}.form-stack button{align-self:flex-start}.form-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.form-row h3{width:100%;margin:0}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.filters{display:flex;flex-direction:column;gap:.75rem}.filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:.75rem}.filters .filter-row{margin-bottom:0}.filter-row input[type=search]{min-width:220px}label.inline{display:inline-flex;align-items:center;gap:.35rem}.state-chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;cursor:pointer;font-size:.85rem;-webkit-user-select:none;user-select:none}.chip input{display:none}.chip-on{background:var(--accent);border-color:var(--accent);color:#fff}.chip-strike{text-decoration:line-through;color:var(--muted);background:#f3f4f6}.bulk-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;background:var(--card)}.data-table th,.data-table td{border-bottom:1px solid var(--border);padding:.5rem;text-align:left;vertical-align:top}.data-table th{background:#eef0f3;font-weight:600;font-size:.85rem}.data-table .num{text-align:right;white-space:nowrap}.data-table input[type=password]{width:8rem}.row-inactive{color:var(--muted);background:#f7f7f7}.row-warning{background:#fff3cd}.state{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap;background:#e8eaed}.state-submitted{background:#dbeafe;color:#1e40af}.state-accepted{background:#e0e7ff;color:#3730a3}.state-in_production{background:#dcfce7;color:#166534}.state-cancelled{background:#fee2e2;color:#991b1b}.warn-icon{color:var(--warn);cursor:help}.tag{font-size:.75rem;background:#fde68a;border-radius:4px;padding:.05rem .4rem;font-weight:400}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.details{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}.details dt{color:var(--muted)}.details dd{margin:0}.history{list-style:none;padding:0}.history li{padding:.35rem 0;border-bottom:1px solid var(--border)}.history-note{margin:.25rem 0 0 1rem;color:var(--muted)}a.button{display:inline-block;padding:.4rem .8rem;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);text-decoration:none}a.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.actions.compact{margin:0}.danger-link{color:var(--danger)}.order-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.order-side{position:sticky;top:1rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem 1rem}.form-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.form-grid .span-all{grid-column:1 / -1}.dropzone{border:2px dashed #9aa3ad;border-radius:8px;padding:1.5rem;text-align:center;background:var(--card);cursor:pointer}.dropzone p{margin:.25rem 0}.dropzone-active{border-color:var(--accent);background:#eef5fd}.upload-list{list-style:none;padding:0;margin:.5rem 0}.upload-list li{display:grid;grid-template-columns:minmax(0,1fr) auto 180px;gap:.75rem;align-items:center;padding:.25rem 0;border-bottom:1px solid var(--border)}.upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-list progress{width:100%}.upload-messages{margin:.5rem 0;font-size:.85rem}.table-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:.5rem}.items-table .thumb{max-width:80px;max-height:80px;display:block;background:repeating-conic-gradient(#ddd,#ddd 25%,#fff 0%,#fff 50%) 50% / 12px 12px;border:1px solid var(--border)}.items-table .name-cell{max-width:320px;word-break:break-word}.num-input{width:5rem;text-align:right}.num-input.missing{border-color:var(--danger);background:#fff5f5}.row-incomplete{background:#fdecec}.source-tag{font-size:.7rem;color:#888;margin-left:.25rem}.warning-badge{color:var(--warn);font-size:.8rem;margin:0;padding-left:1rem}.summary dl{grid-template-columns:1fr auto}.summary dd{text-align:right}.accept-panel .warning{display:flex;flex-direction:column;gap:.5rem}.spinner{display:inline-block;width:.9em;height:.9em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-.1em}@keyframes spin{to{transform:rotate(360deg)}}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.tab{border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;background:none;padding:.5rem 1rem;margin-bottom:-1px}.tab-on{background:var(--card);border-color:var(--border);font-weight:600}.compact-table th,.compact-table td{padding:.25rem .35rem}.compact-table .num-input{width:4.2rem}.subrow td{background:#f7f7f9}.summary-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;margin-bottom:1rem}.summary-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem}.summary-card.strong{border-color:var(--accent)}.summary-value{font-size:1.15rem;font-weight:600}.problems ul{margin:0;padding-left:1.2rem}.problems-error{border-color:var(--danger)}.group-row td{background:#f3f4f7}.rows-table .positions a,.rows-table .positions span{display:inline-block;width:1.2rem;text-align:center}.match-control{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.match-control select{max-width:16rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10}.modal{width:min(480px,92vw)}.pricelist-table .num-input{width:3.9rem}.page:has(.pricelist-table){max-width:1640px}.pricelist-table input,.pricelist-table select{padding:.2rem .3rem}.page:has(.operations-table){max-width:1500px}.print-badges{display:inline-flex;gap:.6rem;margin-left:.6rem;font-size:.95rem;font-weight:400}.print-panel .approval{margin:.5rem 0 1.25rem}.approval-table td{vertical-align:top}.approval-table input{min-width:16rem}.preview-cell img{display:block;max-width:160px;max-height:160px;object-fit:contain}img.checkerboard{background-color:#fff;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;border:1px solid var(--border)}button.image-button{border:none;background:none;padding:0;cursor:zoom-in}.preview-thumbs{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0;max-width:160px}.preview-cell .preview-thumbs img{width:36px;height:36px;object-fit:cover;border:1px solid var(--border)}.lightbox{flex-direction:column;gap:.75rem;background:#000c;z-index:20}.lightbox img{max-width:92vw;max-height:82vh;object-fit:contain;background:#fff}.lightbox-nav{display:flex;align-items:center;gap:1rem;color:#fff}.lightbox-close{position:fixed;top:1rem;right:1rem;font-size:1.5rem;line-height:1}.preview-cell a.small{display:block}.kondemand-previews{display:flex;flex-direction:column;gap:.2rem;max-width:22rem}.kondemand-previews ul{margin:.25rem 0;padding-left:1.1rem}.actions:has(.kondemand-previews){align-items:flex-start}.thumb{max-width:64px;max-height:64px;display:block;background:repeating-conic-gradient(#ddd,#ddd 25%,#fff 0%,#fff 50%) 50% / 12px 12px;border:1px solid var(--border)}.thumb-large{max-width:320px;max-height:320px}.matrix-table input{width:5.5rem;text-align:right}.link-button{background:none;border:none;padding:0;font:inherit;font-weight:600;cursor:pointer;color:inherit}.state-draft{background:#f3f4f6;color:#374151}.state-paused{background:#fef3c7;color:#92400e}.state-in_erp{background:#e0e7ff;color:#3730a3}.state-printed{background:#ffedd5;color:#c2410c}.state-shipped{background:#dcfce7;color:#166534}.motif-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem}.motif-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--card);cursor:pointer;text-align:center;font:inherit}.motif-card:hover{border-color:#6b7280}.motif-card .thumb{max-width:140px;max-height:140px}.size-input{width:4.5rem;text-align:right}.size-input.bad{border-color:var(--danger);background:#fff5f5}.order-group-summary{display:flex;flex-wrap:wrap;gap:1rem;align-items:baseline;margin:.5rem 0}.page:has(.orders-table){max-width:none}.orders-table tr.order-first td{border-top:2px solid #8b929b}.orders-table{border-right:1px solid var(--border)}.orders-table th,.orders-table td{border-left:1px solid var(--border)}.orders-table tr.order-alt td{background:#f6f8fb}input.bad{border-color:var(--danger);background:#fff5f5}.tag.ok{background:#dcfce7}.tag.error{background:#fee2e2}.caption-bottom{caption-side:bottom;text-align:left;padding-top:.25rem}.motif-cards{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;margin-bottom:1rem}.motif-cards>.card{margin-bottom:0}.motif-new{flex:1 1 280px}.motif-cards .bulk-upload{flex:0 0 480px;min-width:0}.bulk-upload.dragging{outline:2px dashed var(--accent);outline-offset:-6px;background:#eef4fb}.utt-list{border-left:4px solid var(--border)}.utt-list-now{border-left-color:var(--ok)}.utt-list-external{border-left-color:#c2410c}.utt-list-blocked{border-left-color:var(--danger)}.utt-list-removed{border-left-color:var(--muted)}.utt-preview{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.external{color:#c2410c}.utt-external{border-left:4px solid #c2410c;padding-left:.75rem;margin:1rem 0}.orders-table td.center,.utt-external td.center{text-align:center}.box-qty{font-weight:600;font-size:.95rem;margin-top:.15rem}.utt-account{font-size:1.15rem;padding:.5rem .75rem;margin:.5rem 0 .75rem;border-left:4px solid var(--accent);background:#eef4fb}
