:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f8;--surface:#fff;--surface-2:#e9ebf2;--text:#171c26;--muted:#6b7180;--border:#d9dce5;--accent:#4f46e5;--accent-soft:#e0dffb;--accent-contrast:#fff;--danger:#c2321f;--danger-soft:#f7dcd7;--ok:#1f7a3c;--ok-soft:#d8efdf;--stage:#fff;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:40px;--radius:10px;--radius-lg:16px;--topbar-h:56px;--shadow:0 1px 2px #171c260f, 0 4px 16px #171c2614;--shadow-lift:0 2px 4px #171c261a, 0 12px 28px #171c262e}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1218;--surface:#171b24;--surface-2:#222835;--text:#e8eaf1;--muted:#9aa1b2;--border:#2d3442;--accent:#8b85ff;--accent-soft:#2a2860;--accent-contrast:#0f1218;--danger:#ef6a58;--danger-soft:#4a221c;--ok:#5fc07a;--ok-soft:#1d3a26;--stage:#fff;--shadow:0 1px 2px #00000059, 0 4px 16px #0006;--shadow-lift:0 2px 4px #0006, 0 12px 28px #0000008c}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.125rem}p{margin:0 0 var(--space-3)}a{color:var(--accent);text-decoration:none}.muted{color:var(--muted);font-size:.9rem}.mono{font-family:var(--font-mono)}.pre-wrap{white-space:pre-wrap}.error-text{color:var(--danger);margin:0 0 var(--space-3);font-size:.9rem}.notice-text{color:var(--ok);margin:0 0 var(--space-3);font-size:.9rem}.app-shell{flex-direction:column;height:100%;display:flex}.offline-banner{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--accent-soft);color:var(--text);border-bottom:1px solid var(--border);flex:none;font-size:.85rem;font-weight:500;display:flex}.topbar{height:var(--topbar-h);justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-4);padding-top:env(safe-area-inset-top);background:var(--surface);border-bottom:1px solid var(--border);flex:none;display:flex}.brand{align-items:center;gap:var(--space-2);color:var(--text);font-size:1.1rem;font-weight:700;display:inline-flex}.brand svg{color:var(--accent)}.topbar-right{align-items:center;gap:var(--space-2);display:flex}.app-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.page{max-width:960px;padding:var(--space-4);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));margin:0 auto}.page-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.page-sub{margin:0}.center-page{text-align:center;justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;min-height:100%;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:42px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;font-weight:600;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{filter:brightness(1.08);background:var(--accent)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(1.08);background:var(--danger)}.btn-ghost{background:0 0;border-color:#0000}.icon-btn{border-radius:var(--radius);width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.icon-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none;background:0 0}.tip{display:inline-flex}.tip-slot{justify-content:center;align-items:center;width:40px;height:40px}.tip-bubble{z-index:60;background:var(--text);color:var(--bg);white-space:nowrap;box-shadow:var(--shadow);pointer-events:none;border-radius:8px;padding:5px 9px;font-size:.78rem;font-weight:500;line-height:1.3;position:fixed;transform:translate(-50%,-100%)}.tip-bubble-below{transform:translate(-50%)}.icon-btn-danger{color:var(--danger)}.field{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;min-width:0;display:flex}.field-grow{flex:1}.form-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.form-row>.field{flex:200px}.label{color:var(--muted);font-size:.85rem;font-weight:600}.input,.select{width:100%;min-height:42px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:1rem}.input.mono{font-family:var(--font-mono);letter-spacing:.04em}.input-masked{-webkit-text-security:disc}.masked-input{position:relative}.masked-input .input{padding-right:44px}.masked-input-toggle{border-radius:var(--radius);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.masked-input-toggle:hover{color:var(--text);background:var(--surface-2)}textarea.input{resize:vertical;line-height:1.4}.input:focus,.select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.input-invalid{border-color:var(--danger)}.modal-actions,.editor-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow)}.card-title{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.card-title svg{color:var(--accent)}.badge{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700;display:inline-block}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-ok{background:var(--ok-soft);color:var(--ok)}.cellstack{flex-direction:column;min-width:0;display:flex}.cellstack>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-state{padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-lg)}.login-page{min-height:100%;padding:var(--space-4);background:radial-gradient(60% 50% at 20% 10%, var(--accent-soft), transparent 70%), radial-gradient(50% 40% at 90% 90%, var(--accent-soft), transparent 70%), var(--bg);justify-content:center;align-items:center;display:flex}.login-card{flex-direction:column;width:100%;max-width:400px;display:flex}.login-brand{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);color:var(--accent);flex-direction:column;display:flex}.login-brand h1{color:var(--text);font-size:1.6rem}.login-card>.muted{text-align:center}.login-submit{width:100%;margin-top:var(--space-2)}.avatar{border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar-initials{background:var(--accent);color:var(--accent-contrast);font-weight:700}.user-menu{position:relative}.user-menu-trigger{align-items:center;gap:var(--space-1);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:4px 6px;display:inline-flex}.user-menu-trigger:hover{background:var(--surface-2)}.user-menu-list{min-width:240px;padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);z-index:20;margin:0;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.user-menu-header{align-items:center;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:var(--space-1);display:flex}.user-menu-id{flex-direction:column;min-width:0;display:flex}.user-menu-id>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-menu-name{font-weight:600}.user-menu-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.user-menu-item:hover{background:var(--surface-2)}.modal-backdrop{padding:var(--space-4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#0f121880;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:480px;max-height:100%;padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);overflow-y:auto}.modal h2{margin-bottom:var(--space-3)}.table-card{padding:0;overflow-x:auto}.table-card-title{padding:var(--space-4) var(--space-4) 0}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);text-align:left;vertical-align:middle}.table th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem}.col-center{text-align:center!important}.row-actions-inline{gap:var(--space-1);display:inline-flex}.users-create-card{margin-bottom:var(--space-4)}.invite-row{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.invite-row>.field{flex:160px;margin-bottom:0}.invite-row>.btn{flex:100%}.mfa-setup{gap:var(--space-4);flex-wrap:wrap;align-items:flex-start;display:flex}.mfa-setup img{border-radius:var(--radius);background:#fff;flex:none}.mfa-setup-fields{flex:200px}.mfa-secret{padding:var(--space-2);border-radius:var(--radius);background:var(--surface-2);font-family:var(--font-mono);word-break:break-all;-webkit-user-select:all;user-select:all;font-size:.85rem;display:block}.mfa-code-input{max-width:200px;font-family:var(--font-mono);letter-spacing:.3em}.profile-hero{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.profile-hero .cellstack{flex:1}.profile-grid{gap:var(--space-4);margin-bottom:var(--space-4);display:grid}.search-box{margin-bottom:var(--space-4);display:block;position:relative}.search-box svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-box .input{padding-left:40px}.wallet-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.card-tile-link{color:inherit;border-radius:var(--radius-lg);outline-offset:3px;display:block}.card-tile-frame{container-type:inline-size}.card-tile{aspect-ratio:1.586;border-radius:var(--radius-lg);box-shadow:var(--shadow);justify-content:center;align-items:center;padding:7cqw;transition:transform .12s,box-shadow .12s;display:flex;position:relative;overflow:hidden}.card-tile:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff2e,#0000 55%);position:absolute;inset:0}.card-tile-link:hover .card-tile,.card-tile-link:focus-visible .card-tile{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.card-tile-logo{object-fit:contain;z-index:1;width:auto;max-width:76cqw;height:auto;max-height:35cqw}.card-tile-name{z-index:1;letter-spacing:-.01em;text-align:center;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11cqw;font-weight:800;line-height:1.15;display:-webkit-box;overflow:hidden}.card-tile-name-mid{font-size:9cqw}.card-tile-name-long{font-size:8cqw}.card-tile-shared{z-index:1;color:#fff;background:#00000059;border-radius:999px;align-items:center;gap:4px;max-width:70%;padding:2px 7px;font-size:.68rem;font-weight:600;line-height:1.4;display:inline-flex;position:absolute;top:4cqw;left:4cqw}.card-tile-shared>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-logo{object-fit:contain;z-index:1;flex:none;width:auto}.card-logo-initials{letter-spacing:.02em;background:#ffffff38;border-radius:12px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.wallet-hint{margin:0 0 var(--space-3)}.card-tile-add{aspect-ratio:1.586;border:2px dashed var(--border);border-radius:var(--radius-lg);color:var(--muted);background:0 0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background .12s;display:flex}.card-tile-add:hover,.card-tile-add:focus-visible{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.card-sheet{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.card-sheet-head{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);display:flex}.card-sheet-title{text-align:center;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.card-sheet-shared{opacity:.85;align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.card-sheet-name{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.35rem;font-weight:700;line-height:1.2}.card-sheet-actions{gap:var(--space-1);flex:none;display:flex}.hero-btn{width:40px;height:40px;color:inherit;cursor:pointer;background:#00000024;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hero-btn:hover{background:#00000042}.barcode-stage{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);background:var(--stage);color:#111827;flex-direction:column;display:flex}.card-sheet-body{padding:var(--space-4);border-top:1px solid var(--border)}.barcode-stage-tappable{cursor:pointer;position:relative}.barcode-enlarge{right:var(--space-3);bottom:var(--space-3);color:#6b7180;display:inline-flex;position:absolute}.till-mode{z-index:100;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-4);color:#111827;cursor:pointer;background:#fff;flex-direction:column;display:flex;position:fixed;inset:0}.till-close{top:calc(var(--space-3) + env(safe-area-inset-top));right:calc(var(--space-3) + env(safe-area-inset-right));color:#111827;cursor:pointer;background:#f3f4f8;border:0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;position:absolute}.till-name{color:#6b7180;font-size:1.1rem;font-weight:600}.till-code{justify-content:center;width:100%;display:flex}.till-code .barcode-linear svg{width:100%;max-width:720px;max-height:40vh}.till-code-qr canvas{width:min(85vw,60vh);height:min(85vw,60vh)}.till-value{font-family:var(--font-mono);letter-spacing:.08em;text-align:center;word-break:break-all;font-size:clamp(1.4rem,6vw,2.4rem);font-weight:700}.till-hint{color:#6b7180;font-size:.8rem}.card-sheet-body .card-section:last-child{margin-bottom:0}.barcode{justify-content:center;width:100%;display:flex}.barcode-linear svg{width:100%;max-width:480px;height:auto;max-height:150px}.barcode-invalid{min-height:24px}.barcode-value{font-family:var(--font-mono);letter-spacing:.06em;text-align:center;word-break:break-all;font-size:1.35rem;font-weight:600}.barcode-format{text-transform:uppercase;letter-spacing:.08em;color:#6b7180;font-size:.75rem}.card-section{margin-bottom:var(--space-4)}.card-section .label{display:block}.short-code{margin-top:var(--space-1);padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.12em;font-size:1.4rem;font-weight:700;display:inline-block}.editor-form{gap:var(--space-3);flex-direction:column;display:flex}.editor-section .field:last-child{margin-bottom:0}.editor-title{margin:0 0 var(--space-3);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.85rem;font-weight:600}.editor-identity{column-gap:var(--space-3);grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:stretch;display:grid}.editor-identity>.tip{grid-row:1/span 2;align-self:stretch}.editor-identity>.field:last-of-type{margin-bottom:0}.editor-notice{margin:var(--space-3) 0 0;grid-column:1/-1}.scan-btn{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--accent);height:100%;min-height:144px;color:var(--accent-contrast);cursor:pointer;box-shadow:var(--shadow);border:0;justify-content:center;align-items:center;transition:filter .12s,transform .12s;display:inline-flex}.scan-btn:hover{filter:brightness(1.08)}.scan-btn:active{transform:translateY(1px)}.scan-btn:disabled{opacity:.6;cursor:default}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.editor-barcode{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(130px,38%);align-items:stretch;display:grid}.editor-barcode-fields{min-width:0}.editor-barcode-fields .field:last-child{margin-bottom:0}.barcode-preview{min-height:72px;padding:var(--space-3);background:var(--stage);border:1px dashed var(--border);border-radius:var(--radius);justify-content:center;align-items:center;display:flex;overflow:hidden}.barcode-preview .barcode-linear svg{max-width:100%;max-height:84px}.barcode-preview-sample{gap:var(--space-2);flex-direction:column}.barcode-preview-sample .barcode{opacity:.35}.barcode-preview-caption{font-size:.8rem}.editor-look{align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.tile-preview{flex:0 0 200px;max-width:100%}.editor-look-controls{gap:var(--space-3);flex-direction:column;flex:200px;display:flex}.logo-controls,.swatches{gap:var(--space-2);flex-wrap:wrap;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:34px;height:34px;padding:0;box-shadow:inset 0 0 0 1px #00000026}.swatch-active{border-color:var(--text);box-shadow:inset 0 0 0 1px #00000026, 0 0 0 2px var(--surface)}.share-picker-hint{margin:0 0 var(--space-3);align-items:flex-start;gap:6px;display:flex}.share-picker-hint svg{flex:none;margin-top:3px}.share-picker-search{margin-bottom:var(--space-3)}.share-list{border:1px solid var(--border);border-radius:var(--radius);max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.share-list>li+li{border-top:1px solid var(--border)}.share-list>li.muted{padding:var(--space-3)}.share-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer;display:flex}.share-row:hover{background:var(--surface-2)}.share-row input{width:18px;height:18px;accent-color:var(--accent);flex:none}.color-picker{position:relative}.color-btn{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:left;display:inline-flex}.color-btn:hover{background:var(--surface-2)}.color-btn-swatch{border-radius:50%;flex:none;width:40px;height:40px;box-shadow:inset 0 0 0 1px #00000026,0 1px 3px #0003}.color-btn-text{flex-direction:column;line-height:1.25;display:flex}.color-btn-title{align-items:center;gap:6px;font-weight:600;display:inline-flex}.color-btn-value{font-size:.8rem}.color-panel{z-index:30;width:min(320px, calc(100vw - 2 * var(--space-4)));padding:var(--space-3);gap:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);left:0}.color-panel .react-colorful{width:100%;height:170px}.color-panel .react-colorful__saturation{border-radius:var(--radius) var(--radius) 0 0}.color-panel .react-colorful__last-control{border-radius:0 0 var(--radius) var(--radius)}.color-panel-foot{gap:var(--space-2);align-items:center;display:flex}.color-hex{flex:1;min-width:0}@media (width>=581px){.wallet-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.invite-row>.btn{flex:none}.editor-barcode{grid-template-columns:minmax(0,1fr) minmax(220px,45%)}.card-sheet{max-width:600px;margin:0 auto}.editor-look-controls{gap:var(--space-5);flex-direction:row}.logo-controls{flex-direction:column;align-items:flex-start}}@media (width>=900px){.profile-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
