*,:before,:after{box-sizing:border-box}body{color:#1a1a1a;-webkit-font-smoothing:antialiased;background:#fafafa;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#fafafa;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.container{max-width:860px;margin:0 auto;padding:48px 24px}header{margin-bottom:32px}h1{letter-spacing:-.02em;color:#111;font-size:1.5rem;font-weight:600}table{border-collapse:collapse;background:#fff;border:1px solid #e5e5e5;border-radius:8px;width:100%;overflow:hidden}thead{background:#f5f5f5}th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:#888;border-bottom:1px solid #e5e5e5;padding:12px 16px;font-size:.75rem;font-weight:600}th:last-child{width:80px}td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:13px 16px;font-size:.9rem}tr:last-child td{border-bottom:none}tr:hover:not(.editing) td{background:#fafafa}.cell-nom{color:#111;white-space:nowrap;font-weight:500}.cell-desc{color:#555}.cell-prix{font-variant-numeric:tabular-nums;white-space:nowrap;color:#111;font-weight:500}tr.editing td{background:#fffbf0;padding:8px 10px}tr.editing input{color:#111;background:#fff;border:1px solid #d0d0d0;border-radius:5px;outline:none;width:100%;padding:7px 10px;font-family:inherit;font-size:.9rem;transition:border-color .15s}tr.editing input:focus{border-color:#555}input.price-input{max-width:100px}.actions{justify-content:flex-end;gap:4px;padding-right:12px;display:flex}.actions button{cursor:pointer;color:#aaa;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;transition:background .15s,color .15s;display:flex}.btn-edit:hover{color:#333;background:#f0f0f0}.btn-delete:hover{color:#c00;background:#fff0f0}.btn-save{color:#2a7a2a!important;background:#f0faf0!important}.btn-save:hover{background:#d4f0d4!important}.btn-cancel{color:#888!important;background:#f5f5f5!important}.btn-cancel:hover{color:#444!important;background:#ebebeb!important}.footer-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.btn-add{color:#777;cursor:pointer;background:0 0;border:1px dashed #ccc;border-radius:6px;padding:8px 14px;font-family:inherit;font-size:.85rem;transition:border-color .15s,color .15s}.btn-add:hover{color:#333;border-color:#888}.btn-rebuild{color:#fff;cursor:pointer;background:#111;border:none;border-radius:6px;margin-left:auto;padding:8px 16px;font-family:inherit;font-size:.85rem;transition:background .15s,opacity .15s}.btn-rebuild:hover:not(:disabled){background:#333}.btn-rebuild:disabled{opacity:.5;cursor:default}.btn-rebuild.ok{background:#2a7a2a}.btn-rebuild.err{background:#c00}.error-banner{color:#c00;background:#fff0f0;border:1px solid #fcc;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;font-size:.85rem;display:flex}.error-banner button{cursor:pointer;color:#c00;background:0 0;border:none;padding:0 2px;font-size:.85rem}.pin-gate{background:#fafafa;justify-content:center;align-items:center;min-height:100vh;display:flex}.pin-form{background:#fff;border:1px solid #e5e5e5;border-radius:12px;flex-direction:column;align-items:center;gap:20px;padding:40px 52px;display:flex;box-shadow:0 2px 12px #0000000f}.pin-form h2{letter-spacing:.04em;text-transform:uppercase;color:#888;font-size:.9rem;font-weight:600}.pin-form input{letter-spacing:.4em;text-align:center;border:1px solid #d0d0d0;border-radius:8px;outline:none;width:128px;padding:14px 0;font-family:inherit;font-size:1.6rem;transition:border-color .15s}.pin-form input:focus{border-color:#555}.pin-form input:disabled{color:#bbb;cursor:not-allowed;background:#f5f5f5}.pin-error{color:#c00;text-align:center;max-width:200px;font-size:.78rem}.state-msg{color:#999;justify-content:center;align-items:center;height:100vh;font-size:.9rem;display:flex}
