:root{--bg: #0f1320;--bg-grad: radial-gradient(1200px 600px at 50% -10%, #1c2236 0%, #0f1320 60%);--panel: #171c2e;--panel-border: #272f47;--text: #e7e9f0;--muted: #9aa3bd;--accent: #c9a24b;--accent-hover: #d8b461;--danger: #ff6b6b;--ring: rgba(201, 162, 75, .35);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg-grad),var(--bg);-webkit-font-smoothing:antialiased}.screen-center{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:14px}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;box-shadow:0 20px 50px #00000059}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:10px;background:#0e1322;border:1px solid var(--accent);color:var(--accent);font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:20px;letter-spacing:.5px}.brand-text h1{font-size:20px;margin:0;letter-spacing:.3px}.brand-text p{margin:2px 0 0;color:var(--muted);font-size:13px}.login-card{width:100%;max-width:380px;padding:30px 28px;display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:13px;color:var(--muted)}.field input{background:#0e1322;border:1px solid var(--panel-border);border-radius:9px;padding:11px 12px;color:var(--text);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.btn-primary{margin-top:4px;background:var(--accent);color:#1a1500;border:none;border-radius:9px;padding:12px 14px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s,transform .05s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{opacity:.6;cursor:default}.error{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.35);color:var(--danger);border-radius:9px;padding:9px 11px;font-size:13.5px}.footnote{color:var(--muted);font-size:12px;letter-spacing:.4px}.spinner{width:34px;height:34px;border:3px solid var(--panel-border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--panel-border);background:#0f1320b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.brand-sm .brand-mark{width:38px;height:38px;font-size:16px}.brand-sm .brand-text strong{display:block;font-size:15px;line-height:1.1}.brand-sm .brand-text span{color:var(--muted);font-size:12px}.topbar-right{display:flex;align-items:center;gap:14px}.role-badge{background:#c9a24b1f;border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600}.user-email{color:var(--muted);font-size:13.5px}.btn-ghost{background:transparent;border:1px solid var(--panel-border);color:var(--text);border-radius:8px;padding:7px 13px;font-size:13.5px;cursor:pointer;transition:border-color .15s,background .15s}.btn-ghost:hover{border-color:var(--accent);background:#c9a24b14}.content{flex:1;padding:40px 22px;display:flex;justify-content:center}.welcome-card{max-width:620px;width:100%;padding:30px 32px}.welcome-card h2{margin:0 0 10px;font-size:22px}.welcome-card p{margin:0 0 8px;line-height:1.55}.muted{color:var(--muted);font-size:14px}@media (max-width: 520px){.user-email{display:none}.content{padding:26px 16px}}.mainnav{display:flex;gap:4px;margin-left:28px;flex:1}.mainnav a{color:var(--muted);text-decoration:none;font-size:14px;padding:8px 14px;border-radius:8px}.mainnav a:hover{color:var(--text);background:#ffffff0a}.mainnav a.active{color:var(--accent);background:#c9a24b14}.card.pad{padding:22px 24px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.page-head h2{margin:0;font-size:20px}.crumb{color:var(--muted);text-decoration:none;font-weight:400}.crumb:hover{color:var(--accent)}.crumb-sep{color:var(--muted);margin:0 6px;font-weight:400}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--panel-border);margin-bottom:18px}.tabs a{color:var(--muted);text-decoration:none;font-size:14px;padding:9px 16px;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--panel-border)}.data-table td{padding:9px 10px;border-bottom:1px solid rgba(39,47,71,.6)}.data-table.clickable tbody tr{cursor:pointer}.data-table.clickable tbody tr:hover td{background:#ffffff08}.row-off td{opacity:.45}.row-actions{text-align:right;white-space:nowrap}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;border:1px solid}.pill.ok{color:#7fd6a0;border-color:#7fd6a066}.pill.off{color:var(--muted);border-color:var(--panel-border)}.inline-form{display:flex;gap:10px;margin:6px 0 16px;flex-wrap:wrap}.inline-form input,.inline-form select{flex:1;min-width:160px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:18px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.form-grid label.span2{grid-column:span 2}.form-grid label.check{flex-direction:row;align-items:center;gap:10px;align-self:end;padding-bottom:8px}.detail-form h3{margin:22px 0 4px;font-size:16px}input,select,textarea{background:#0e1322;color:var(--text);border:1px solid var(--panel-border);border-radius:8px;padding:9px 11px;font-size:14px;font-family:var(--font)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}input:disabled,select:disabled,textarea:disabled{opacity:.55}.rate-grid td{padding:4px 10px}.cell-input{width:90px;padding:6px 9px;text-align:right}.cell-input::placeholder{color:#3a425c}.form-actions{display:flex;align-items:center;gap:14px;margin-top:16px}.ok-msg{color:#7fd6a0;font-size:14px}.error-msg{color:var(--danger);font-size:14px}.small{font-size:13px}.btn{background:var(--accent);color:#14171f;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:default}.inline-form.compact{margin:0}.inline-form.compact input{padding:6px 9px}.entry-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 18px}.entry-toolbar select{min-width:200px}.entry-grid{display:grid;grid-template-columns:3fr 2fr;gap:18px;align-items:start}@media (max-width: 1000px){.entry-grid{grid-template-columns:1fr}}.sheet-meta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.line-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.line-row select{flex:1}.line-row input{width:76px;flex:none}.line-price{min-width:64px;text-align:right}.total-row{font-weight:600;margin:10px 0 6px}.entry-page,.kiosk-page{width:100%;max-width:1180px}.kiosk-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}.kiosk-head .btn-ghost{font-size:15px;padding:12px 18px;white-space:nowrap}.kiosk-title{flex:1;text-align:center}.kiosk-title h2{margin:0;font-size:20px}.kiosk-head-spacer{width:132px}.kiosk-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 16px}.kiosk-controls select,.kiosk-controls input{font-size:16px;padding:13px 12px;width:100%;box-sizing:border-box}.kiosk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.kiosk-tile{position:relative;min-height:92px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;color:var(--text);font-size:16px;font-weight:600;font-family:var(--font);cursor:pointer;padding:10px;transition:border-color .15s}.kiosk-tile:hover{border-color:var(--accent)}.kiosk-tile:active{transform:scale(.98)}.kiosk-tile.has-qty{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.kiosk-qty{position:absolute;top:6px;left:6px;min-width:30px;height:30px;padding:0 8px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#14171f;border-radius:999px;font-size:15px;font-weight:700}.kiosk-plus,.kiosk-minus{position:absolute;width:34px;height:34px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#0e1322;border:1px solid var(--panel-border);border-radius:999px;font-size:20px;line-height:1}.kiosk-plus{top:6px;right:6px;color:var(--accent)}.kiosk-minus{bottom:6px;right:6px;color:var(--danger)}.kiosk-minus:hover{border-color:var(--danger)}.kiosk-footer{position:sticky;bottom:12px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding:14px 16px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px}.kiosk-summary{flex:1;font-size:15.5px;font-weight:600;min-width:220px}.kiosk-submit{font-size:16px;padding:14px 30px}.sheet-card{width:100%}.add-ticket-btn{margin-left:auto}@media (max-width: 640px){.kiosk-head-spacer{display:none}.kiosk-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.pill.draft{color:var(--muted);border-color:var(--panel-border)}.pill.sent{color:var(--accent);border-color:var(--ring)}.pill.paid{color:#7fd6a0;border-color:#7fd6a066}.pill.void{color:var(--danger);border-color:#ff6b6b66}.total-row td{border-top:1px solid var(--panel-border)}.date-input{color-scheme:dark;cursor:pointer}.date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85}.date-input:disabled{cursor:default;opacity:.6}.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid var(--panel-border);white-space:nowrap}.badge.hold{color:#f0b86e;border-color:#f0b86e80}.badge.return{color:#7fb0ff;border-color:#7fb0ff80}.badge.returned{color:#7fd6a0;border-color:#7fd6a073}.rfid-terminal{display:flex;flex-direction:column;min-height:100vh}.rfid-topbar{display:flex;align-items:center;gap:18px;padding:12px 22px;border-bottom:1px solid var(--panel-border);background:#00000040}.rfid-title{flex:1;text-align:center;font-size:18px}.rfid-crumb{background:none;border:none;color:var(--accent);font-size:18px;font-weight:600;cursor:pointer;font-family:var(--font)}.rfid-main{flex:1;padding:26px;max-width:1180px;width:100%;margin:0 auto;box-sizing:border-box}.rfid-footer{padding:10px 22px;text-align:right;color:var(--muted);font-size:14px;border-top:1px solid var(--panel-border)}.rfid-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 900px){.rfid-grid{grid-template-columns:repeat(2,1fr)}}.rfid-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:6px;min-height:150px;padding:18px 20px;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;color:var(--text);cursor:pointer;text-align:left;font-family:var(--font);text-decoration:none;transition:border-color .15s,transform .05s}.rfid-tile:hover:not(:disabled):not(.soon){border-color:var(--accent)}.rfid-tile:active:not(:disabled):not(.soon){transform:scale(.99)}.rfid-tile-n{position:absolute;top:14px;left:20px;color:var(--accent);font-size:15px;font-weight:700;letter-spacing:1px}.rfid-tile-label{font-size:21px;font-weight:650}.rfid-tile-sub{color:var(--muted);font-size:14px}.rfid-tile.soon{opacity:.45;cursor:default}.rfid-tile-soon{position:absolute;top:12px;right:14px;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);border:1px solid var(--panel-border);border-radius:999px;padding:3px 9px}.rfid-manage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px}@media (max-width: 900px){.rfid-manage-grid{grid-template-columns:1fr}}.rfid-scan{display:flex;align-items:center;gap:20px;padding:26px;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;margin:8px 0 14px}.rfid-scan strong{font-size:19px}.rfid-scan p{margin:6px 0 0}.rfid-play{flex:0 0 auto;width:84px;height:84px;border-radius:50%;background:var(--accent);color:#14181f;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.rfid-play:hover{background:var(--accent-hover)}.rfid-play svg{margin-left:5px}.rfid-scan.reading{border-color:var(--accent);position:relative;overflow:hidden}.rfid-scan-pulse{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(100deg,transparent 30%,rgba(201,162,75,.1) 50%,transparent 70%);background-size:220% 100%;animation:rfidsweep 1.6s linear infinite}@keyframes rfidsweep{0%{background-position:120% 0}to{background-position:-120% 0}}.rfid-scan-body{flex:1}.rfid-scan-row{display:flex;gap:10px;margin-top:14px}.rfid-scan-row input{flex:1;font-size:19px;letter-spacing:1px;padding:13px 14px;background:var(--bg);border:1px solid var(--panel-border);border-radius:10px;color:var(--text);font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.rfid-scan-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:none}.rfid-garment{background:var(--panel);border:1px solid var(--accent);border-radius:14px;padding:18px 20px;margin:8px 0 14px}.rfid-garment-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rfid-garment-head strong{font-size:20px}.rfid-garment-facts{display:flex;flex-wrap:wrap;gap:26px;margin:14px 0 0}.rfid-garment-facts dt{color:var(--muted);font-size:12.5px;text-transform:uppercase;letter-spacing:.6px}.rfid-garment-facts dd{margin:4px 0 0;font-size:16.5px}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;letter-spacing:1px}.rfid-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rfid-actions.column{flex-direction:column;align-items:flex-start}.rfid-actions .btn,.rfid-actions .btn-ghost,.rfid-actions .btn-danger{font-size:16px;padding:12px 20px}.rfid-notice{background:#c9a24b1a;border:1px solid var(--accent);border-radius:10px;padding:12px 16px;color:var(--text)}.btn-danger{background:none;border:1px solid var(--danger);color:var(--danger);border-radius:10px;cursor:pointer;font-family:var(--font)}.btn-danger:hover:not(:disabled){background:#ff6b6b1a}.btn-danger:disabled{opacity:.5;cursor:default}.rfid-search{width:100%;box-sizing:border-box;font-size:17px;padding:12px 14px;margin:8px 0 14px;background:var(--bg);border:1px solid var(--panel-border);border-radius:10px;color:var(--text)}.rfid-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:none}.rfid-pick-grid,.rfid-wearer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 900px){.rfid-pick-grid,.rfid-wearer-grid{grid-template-columns:repeat(2,1fr)}}.rfid-pick,.rfid-wearer{display:flex;flex-direction:column;gap:5px;padding:16px 18px;min-height:62px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;color:var(--text);cursor:pointer;text-align:left;font-family:var(--font)}.rfid-pick:hover,.rfid-wearer:hover{border-color:var(--accent)}.rfid-pick strong,.rfid-wearer strong{font-size:17.5px}.rfid-pick span,.rfid-wearer span{color:var(--muted);font-size:13.5px;min-height:1em}.rfid-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--panel-border);border-radius:10px;margin-bottom:12px;font-size:17px}.rfid-size-row{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.rfid-size{min-width:76px;padding:16px 18px;font-size:19px;font-weight:650;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;color:var(--text);cursor:pointer;font-family:var(--font)}.rfid-size:hover{border-color:var(--accent)}.rfid-clock{letter-spacing:.4px}.rfid-fn h3{margin:4px 0 10px}.rfid-type-form{max-width:520px;margin-bottom:18px}.rfid-type-form .field{margin-bottom:12px}.rfid-type-form select{width:100%;box-sizing:border-box;font-size:15.5px;padding:11px 12px;background:var(--bg);border:1px solid var(--panel-border);border-radius:10px;color:var(--text)}.crumbs{margin:0 0 10px}.rfid-groups{display:flex;flex-direction:column;gap:12px;margin-top:14px}.rfid-group{background:var(--panel, #14140f);border:1px solid var(--line, #2a2a22);border-radius:12px;padding:12px 16px}.rfid-group-head{display:flex;align-items:center;gap:10px}.rfid-group-head strong{font-size:18px}.rfid-group-head .pill{margin-left:auto}.rfid-group-items{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.rfid-group-items li{display:flex;align-items:center;gap:12px;padding:6px 0;border-top:1px solid var(--line, #2a2a22)}.rfid-group-items li .mono{margin-left:auto}.rfid-x{background:none;border:1px solid var(--line, #2a2a22);color:var(--muted, #9a9a8a);border-radius:8px;width:34px;height:34px;font-size:18px;line-height:1;cursor:pointer}.rfid-x:hover:not(:disabled){border-color:var(--danger, #c0392b);color:var(--danger, #c0392b)}.rfid-done{text-align:center;padding:22px 0}.rfid-done-tick{color:var(--accent, #c9a44a);margin-bottom:6px}.rfid-done h3{font-size:24px;margin:6px 0}.rfid-ticket-list{max-width:460px;margin:16px auto;display:flex;flex-direction:column;gap:8px}.rfid-ticket-row{display:flex;align-items:center;gap:14px;background:var(--panel, #14140f);border:1px solid var(--line, #2a2a22);border-radius:10px;padding:10px 16px}.rfid-ticket-row .muted{margin-left:auto}.rfid-done .rfid-actions{justify-content:center}
