:root{--paper:#faf8f4;--paper-raised:#fff;--paper-sunken:#f2eee7;--ink:#221e1a;--ink-soft:#55504a;--ink-faint:#8f887f;--hairline:#e6e0d5;--hairline-strong:#d4ccbe;--plum:#7b52ab;--plum-deep:#5d3d85;--plum-wash:#f1ecf8;--gold:#a8834f;--gold-wash:#f6efe3;--danger:#b3442f;--danger-wash:#f9ece8;--ok:#3e7d51;--ok-wash:#e9f2ea;--font-body:"Alan Sans", system-ui, -apple-system, sans-serif;--font-mono:"Cutive", "Courier New", serif;--font-display:"MuseoModerno", var(--font-body);--radius:10px;--radius-sm:6px;--shadow-card:0 1px 2px #221e1a0d, 0 4px 16px #221e1a0d;--shadow-pop:0 8px 30px #221e1a29;--speed:.16s}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}a{color:var(--plum);text-decoration:none}a:hover{color:var(--plum-deep)}button{font-family:var(--font-body);cursor:pointer}input,select,textarea{font-family:var(--font-body);color:var(--ink);font-size:15px}::placeholder{color:var(--ink-faint)}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.mono{font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.015em;white-space:nowrap;font-size:13px;font-weight:560}.page{max-width:1180px;margin:0 auto;padding:28px 28px 80px;animation:.3s both page-in}.page-wide{max-width:1400px}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin:18px 0 22px;display:flex}.page-head h1{font-size:26px}.page-head .sub{color:var(--ink-soft);max-width:60ch;margin-top:4px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1}.app-footer{border-top:1px solid var(--hairline);text-align:center;padding:16px 28px 22px;font-size:12.5px}.app-footer a{color:var(--ink-faint)}.app-footer a:hover{color:var(--plum)}.app-footer .sw{color:var(--ink-soft);letter-spacing:.02em;font-weight:650}.app-footer a:hover .sw{color:var(--plum-deep)}.built-by{text-align:center;color:var(--ink-faint);margin:18px 0 0;font-size:12.5px}.built-by a{color:var(--ink-soft);letter-spacing:.02em;font-weight:650}.built-by a:hover{color:var(--plum-deep)}.topbar{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline);background:#faf8f4eb;position:sticky;top:0}.topbar-inner{align-items:center;gap:26px;max-width:1180px;height:58px;margin:0 auto;padding:0 28px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);white-space:nowrap;align-items:center;gap:9px;font-size:19px;font-weight:600;display:flex}.brand svg{display:block}.brand:hover{color:var(--ink)}.brand .brand-studio{color:var(--plum)}.topnav{flex:1;gap:4px;display:flex}.topnav a{color:var(--ink-soft);transition:background var(--speed), color var(--speed);border-radius:999px;padding:7px 13px;font-weight:550}.topnav a:hover{background:var(--paper-sunken);color:var(--ink)}.topnav a.active{background:var(--ink);color:var(--paper)}.topbar-actions{align-items:center;gap:10px;display:flex}.demo-chip{color:var(--ink-soft);background:var(--paper-raised);border:1px solid var(--hairline);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-size:12.5px;font-weight:550;display:inline-flex}.demo-chip:before{content:"";background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px var(--ok-wash);border-radius:50%}.btn{border-radius:var(--radius-sm);border:1px solid var(--hairline-strong);background:var(--paper-raised);color:var(--ink);transition:all var(--speed);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 15px;font-size:14px;font-weight:570;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-faint);box-shadow:var(--shadow-card);transform:translateY(-1px)}.btn:active{transform:none}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-primary:hover{color:var(--paper);background:#38322c;border-color:#38322c}.btn-plum{background:var(--plum);border-color:var(--plum);color:#fff}.btn-plum:hover{background:var(--plum-deep);border-color:var(--plum-deep);color:#fff}.btn-danger{color:var(--danger);border-color:#e3c4bb}.btn-danger:hover{background:var(--danger-wash);border-color:var(--danger)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--paper-sunken);box-shadow:none}.btn-sm{padding:4px 10px;font-size:13px}.card{background:var(--paper-raised);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-pad{padding:22px}.field{flex-direction:column;gap:6px;display:flex}.field label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-size:11px}.input,.select{border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);background:var(--paper-raised);transition:border-color var(--speed), box-shadow var(--speed);outline:none;width:100%;padding:9px 12px}.input:focus,.select:focus{border-color:var(--plum);box-shadow:0 0 0 3px var(--plum-wash)}.input:disabled,.select:disabled{background:var(--paper-sunken);color:var(--ink-faint)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px 22px;display:grid}.form-actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.table-wrap{border-radius:var(--radius);overflow-x:auto}table.jd{border-collapse:collapse;background:var(--paper-raised);width:100%;font-size:14px}table.jd th{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);text-align:left;border-bottom:1px solid var(--hairline-strong);background:var(--paper-raised);white-space:nowrap;padding:11px 14px;font-size:10.5px;font-weight:400;position:sticky;top:0}table.jd td{border-bottom:1px solid var(--hairline);vertical-align:middle;padding:11px 14px}table.jd tbody tr:last-child td{border-bottom:none}table.jd tbody tr{transition:background var(--speed)}table.jd tbody tr:hover{background:var(--plum-wash)}table.jd tbody tr.row-click{cursor:pointer}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--ink)}th .sort-arrow{color:var(--plum);font-family:var(--font-body);margin-left:4px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}table.jd a{color:var(--plum-deep);text-underline-offset:3px;transition:text-decoration-color var(--speed), color var(--speed);font-weight:600;-webkit-text-decoration:underline #7b52ab59;text-decoration:underline #7b52ab59;text-decoration-thickness:1px}table.jd a:hover{color:var(--plum);-webkit-text-decoration-color:var(--plum);text-decoration-color:var(--plum)}.badge{letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:10.5px;font-weight:650;display:inline-block}.badge-repair{color:#7d5f2c;background:#f6efe4}.badge-custom{color:#574577;background:#f0ecf6}.badge-sample{color:#3e614a;background:#eaf1ec}.badge-part{color:#3d5f70;background:#eaf0f3}.badge-finished{color:#82683f;background:#f5efe2}.badge-shipped{background:var(--paper-sunken);color:var(--ink-soft)}.badge-job{color:#574577;background:#f0ecf6}.badge-parts{color:#3d5f70;background:#eaf0f3}.segmented{background:var(--paper-sunken);border:1px solid var(--hairline);border-radius:999px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-soft);transition:all var(--speed);background:0 0;border:none;border-radius:999px;padding:6px 14px;font-size:13.5px;font-weight:550}.segmented button:hover{color:var(--ink)}.segmented button.active{background:var(--paper-raised);color:var(--ink);box-shadow:0 1px 3px #221e1a1f}.search-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.search-box{flex:1;min-width:240px;max-width:430px;position:relative}.search-box .input{padding-left:36px}.search-box svg{color:var(--ink-faint);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.suggest-wrap{position:relative}.suggest-list{background:var(--paper-raised);border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);z-index:30;max-height:260px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.suggest-list button{text-align:left;border:none;border-bottom:1px solid var(--hairline);background:0 0;justify-content:space-between;gap:12px;width:100%;padding:9px 13px;font-size:14px;display:flex}.suggest-list button:last-child{border-bottom:none}.suggest-list button:hover{background:var(--plum-wash)}.suggest-list .s-meta{color:var(--ink-faint);font-size:13px}.modal-overlay{z-index:100;background:#221e1a66;justify-content:center;align-items:center;padding:20px;animation:.14s both fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal{background:var(--paper-raised);box-shadow:var(--shadow-pop);border-radius:14px;width:100%;max-width:440px;padding:26px;animation:.18s cubic-bezier(.2,.9,.3,1.2) both modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.modal h3{margin-bottom:6px;font-size:18px}.modal .modal-body{color:var(--ink-soft);margin:10px 0 4px}.modal .form-actions{justify-content:flex-end}.timeline{margin:8px 0;padding-left:26px;position:relative}.timeline:before{content:"";background:linear-gradient(var(--plum), var(--hairline-strong));border-radius:2px;width:2px;position:absolute;top:6px;bottom:6px;left:7px}.timeline-item{padding:0 0 18px;position:relative}.timeline-item:last-child{padding-bottom:4px}.timeline-item:before{content:"";background:var(--paper-raised);border:3px solid var(--plum);border-radius:50%;width:12px;height:12px;position:absolute;top:5px;left:-25px}.timeline-item:not(:first-child):before{border-color:var(--hairline-strong)}.timeline-item .t-date{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.06em;font-size:11px}.timeline-item .t-loc{font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:26px;display:grid}.stat{background:var(--paper-raised);border:1px solid var(--hairline);border-radius:var(--radius);padding:16px 18px}.stat .stat-num{letter-spacing:-.02em;font-size:28px;font-weight:700}.stat .stat-label{margin-top:2px}.launch-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;display:grid}.launch-card{background:var(--paper-raised);border:1px solid var(--hairline);border-radius:var(--radius);color:var(--ink);transition:all var(--speed);padding:22px;display:block;position:relative;overflow:hidden}.launch-card:hover{box-shadow:var(--shadow-pop);border-color:var(--plum);color:var(--ink);transform:translateY(-3px)}.launch-card .lc-icon{background:var(--plum-wash);width:38px;height:38px;color:var(--plum-deep);border-radius:9px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.launch-card h3{margin-bottom:4px;font-size:16.5px}.launch-card p{color:var(--ink-soft);margin:0;font-size:13.5px}.login-wrap{min-height:100vh;display:flex}.login-visual{background:radial-gradient(60% 50% at 30% 25%,#7b52ab8c,#0000 65%),radial-gradient(50% 45% at 75% 70%,#a8834f80,#0000 60%),radial-gradient(40% 40% at 60% 20%,#b39ddb59,#0000 60%),#241f2e;flex:1.1;display:none;position:relative}@media (width>=880px){.login-visual{display:block}}.login-visual .facet{background-image:linear-gradient(115deg,#0000 48.9%,#ffffff12 49% 51%,#0000 51.1%),linear-gradient(65deg,#0000 48.9%,#ffffff0d 49% 51%,#0000 51.1%);background-size:160px 160px,220px 220px;position:absolute;inset:0}.login-visual .login-caption{color:#ffffffd9;position:absolute;bottom:44px;left:44px;right:44px}.login-visual .login-caption .eyebrow{color:#ffffff8c}.login-visual .login-caption p{font-family:var(--font-display);max-width:20ch;margin:8px 0 0;font-size:26px;font-weight:500;line-height:1.3}.login-panel{flex:1;justify-content:center;align-items:center;padding:40px 28px;display:flex}.login-card{width:100%;max-width:400px}.login-card .brand{margin-bottom:26px;font-size:24px}.login-card h1{letter-spacing:-.02em;margin-bottom:10px;font-size:30px}.login-card .login-sub{color:var(--ink-soft);margin:0 0 28px}.demo-note{border:1px dashed var(--hairline-strong);border-radius:var(--radius-sm);color:var(--ink-soft);background:var(--paper-sunken);margin-top:22px;padding:14px 16px;font-size:13px}.err-text{color:var(--danger);font-size:13.5px}.ok-text{color:var(--ok);font-size:13.5px}.empty-state{text-align:center;color:var(--ink-faint);padding:54px 20px}.empty-state .eyebrow{margin-bottom:6px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.qr-box{flex-direction:column;align-items:center;gap:14px;padding:10px 0;display:flex}.qr-box .qr-label{font-family:var(--font-mono);letter-spacing:.08em;font-size:13px}.total-bar{justify-content:flex-end;align-items:center;gap:18px;padding:16px 4px 0;display:flex}.total-bar .total-num{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.detail-cols{grid-template-columns:1.6fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.detail-cols{grid-template-columns:1fr}}.print-sheet{display:none}@media print{body *{visibility:hidden}.print-sheet,.print-sheet *{visibility:visible}.print-sheet{background:#fff;padding:24px;display:block;position:absolute;inset:0}.topbar{display:none}}
