:root{--bg: #f3f6f4;--surface: #ffffff;--surface-2: #e9efec;--ink: #12201b;--muted: #5a6b64;--line: #d5dfda;--accent: #df9a14;--accent-ink: #1e1504;--accent-soft: #fbefd6;--pin: #e2372d;--stage: #0b1210;--stage-ink: #dfe8e4;--focus: #0f7a6e;--font: "Be Vietnam Pro", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--r: 10px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0e1815;--surface: #14211d;--surface-2: #1a2a25;--ink: #e6eeea;--muted: #93a69e;--line: #253630;--accent: #f1b23c;--accent-ink: #1e1504;--accent-soft: #33280f;--pin: #ff554a;--stage: #070c0a;--stage-ink: #dfe8e4;--focus: #3cc4b2;color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1815;--surface: #14211d;--surface-2: #1a2a25;--ink: #e6eeea;--muted: #93a69e;--line: #253630;--accent: #f1b23c;--accent-ink: #1e1504;--accent-soft: #33280f;--pin: #ff554a;--stage: #070c0a;--stage-ink: #dfe8e4;--focus: #3cc4b2;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:400 15px/1.5 var(--font);-webkit-font-smoothing:antialiased;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}svg{flex:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:calc(10px + env(safe-area-inset-top,0px));padding-bottom:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:30px;height:30px;color:var(--pin)}.brand-name{font-weight:800;font-size:17px;letter-spacing:-.01em;line-height:1.1}.brand-sub{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout{display:grid;grid-template-columns:minmax(0,1fr)}.stage{background:var(--stage);color:var(--stage-ink);padding-block:14px 10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.stage-inner{display:flex;flex-direction:column;align-items:center;gap:10px;height:100%;min-height:0}.canvas-wrap{position:relative;border-radius:12px;overflow:hidden;background:#16201c;box-shadow:0 10px 40px #00000073;touch-action:manipulation;max-width:100%}.canvas-wrap.editing{cursor:crosshair;outline:2px solid var(--accent);outline-offset:2px}#preview{display:block;width:100%;height:100%}.stage-status{position:absolute;left:50%;bottom:14px;transform:translate(-50%);background:#0a0e12db;color:#fff;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis}.transport{display:flex;align-items:center;gap:10px;width:100%;max-width:560px}.transport input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.time{font-family:var(--mono);font-size:12.5px;color:#a8b7b1;white-space:nowrap;font-variant-numeric:tabular-nums}.icon-btn{width:42px;height:42px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;background:var(--accent);color:var(--accent-ink)}.icon-btn svg{width:22px;height:22px}.icon-btn .i-pause{display:none}.icon-btn.playing .i-pause{display:block}.icon-btn.playing .i-play{display:none}.chip-btn{border:1px solid #33443e;background:transparent;color:var(--stage-ink);padding:7px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.chip-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.panel{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:4px calc(76px + env(safe-area-inset-bottom,0px));min-width:0}.step{padding-block:20px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:14px}.step-head{display:flex;align-items:center;gap:10px}.step-head h2{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em;text-wrap:balance}.step-no{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 13px var(--mono);background:var(--ink);color:var(--bg)}.count{margin-left:auto;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:6px;min-width:0;border:0;padding:0;margin:0}.field-label{font-size:13px;font-weight:600;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.field-label em{font-style:normal;font-weight:400}.field-label output{color:var(--ink);font-weight:500}.input{width:100%;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-size:15px;outline:none}.input:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 22%,transparent)}textarea.input{resize:vertical;line-height:1.55}.input-row{display:flex;gap:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}input[type=range]{accent-color:var(--accent);width:100%}.hint{margin:0;font-size:13px;color:var(--muted)}.hint.err{color:var(--pin)}.hint.ok{color:var(--focus)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r);border:1px solid transparent;padding:10px 16px;font-weight:700;font-size:15px;cursor:pointer;white-space:nowrap}.btn svg{width:19px;height:19px}.btn-block{width:100%;padding-block:13px}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:disabled{opacity:.55;cursor:progress}.btn-quiet{background:var(--surface-2);color:var(--ink);border-color:var(--line)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);padding:7px 12px;font-size:14px}.link-btn{background:none;border:0;color:var(--focus);font-weight:600;cursor:pointer;padding:4px 2px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.seg{display:flex;flex-wrap:wrap;gap:6px}.seg button{flex:1 1 auto;border:1px solid var(--line);background:var(--surface);padding:8px 12px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;color:var(--ink)}.seg button[aria-checked=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.empty{background:var(--surface-2);border-radius:var(--r);padding:14px 16px}.empty p{margin:0;font-size:14px;color:var(--muted)}.sub-head{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.sub-note{text-transform:none;letter-spacing:0;font-weight:500}.admin-box{display:flex;flex-direction:column;gap:8px}.admin-where{margin:0;display:flex;flex-direction:column;gap:2px;font-size:14px}.admin-where span{font-size:12.5px;color:var(--muted)}.admin-ranh{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r);border:1px solid color-mix(in srgb,#ff2e7e 45%,var(--line));background:color-mix(in srgb,#ff2e7e 8%,var(--surface));cursor:pointer;font-size:14px}.admin-ranh input{width:18px;height:18px;accent-color:#ff2e7e;margin:2px 0 0;flex:none}.road-list{display:flex;flex-wrap:wrap;gap:6px}.road-chip{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px 6px 9px;font-size:13.5px;font-weight:600}.road-chip input{position:absolute;opacity:0;pointer-events:none}.road-chip .dot{width:10px;height:10px;border-radius:50%}.road-chip .km{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:500}.road-chip:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.road-chip:has(input:not(:checked)){opacity:.6}.road-chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.poi-list{display:flex;flex-direction:column;gap:2px}.cat-group{border-top:1px solid var(--line)}.cat-group:first-child{border-top:0}.cat-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 2px;font-weight:700;font-size:14.5px}.cat-group>summary::-webkit-details-marker{display:none}.cat-group>summary .n{margin-left:auto;font-size:12.5px;color:var(--muted);font-weight:500}.cat-group>summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 4px 3px 2px;transition:transform .15s}.cat-group[open]>summary:after{transform:rotate(-135deg);margin-bottom:-3px}.cat-ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff}.cat-ic svg{width:15px;height:15px}.poi-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 4px 8px 6px;border-radius:8px;cursor:pointer}.poi-row:hover{background:var(--surface-2)}.poi-row input{width:18px;height:18px;accent-color:var(--accent);margin:0}.poi-name{font-size:14px;min-width:0;overflow-wrap:anywhere}.poi-km{font-family:var(--mono);font-size:12.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.poi-row.manual .poi-name:after{content:" \b7  t\1ef1  th\eam";color:var(--muted);font-size:12px}.addpoi,.script{border:1px dashed var(--line);border-radius:var(--r);padding:10px 14px}.addpoi>summary,.script>summary{cursor:pointer;font-weight:600;font-size:14px}.addpoi[open],.script[open]{display:flex;flex-direction:column;gap:10px}.addpoi[open]>summary,.script[open]>summary{margin-bottom:2px}.audio-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.file-row{display:flex;align-items:center;gap:8px;min-width:0}.file-btn{position:relative;overflow:hidden;padding:8px 12px;font-size:14px}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-name{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.vol{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.check{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer}.check input{accent-color:var(--accent);width:17px;height:17px}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 11px 5px 6px;font-size:13px;font-weight:600;color:var(--ink)}.swatch .sw{width:20px;height:20px;border-radius:50%;box-shadow:0 0 0 2px #00000014 inset,0 0 8px var(--glow, transparent)}.swatch[aria-checked=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.script-list{display:flex;flex-direction:column;gap:8px}.seg-line{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.seg-line .seg-name{font-size:12.5px;font-weight:700;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.seg-line .seg-name .vst{font-weight:500;font-variant-numeric:tabular-nums}.seg-line .seg-name .vst.ok{color:var(--focus)}.seg-line textarea{min-height:44px;font-size:14px;padding:8px 10px}.ai-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.field-label .link-btn{font-size:13px;padding:0}.export-box{display:flex;flex-direction:column;gap:8px}.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress-bar{height:100%;width:0;background:var(--accent);transition:width .2s}.export-meta{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}.result{display:flex;flex-direction:column;gap:10px}.result video{width:100%;max-height:60vh;background:#000;border-radius:var(--r)}.result-actions{display:flex;flex-wrap:wrap;gap:8px}.result-actions .btn{flex:1 1 160px}.foot{padding-block:16px 0}.foot p{margin:0;font-size:12px;color:var(--muted)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));width:min(440px,calc(100% - 32px));background:var(--ink);color:var(--bg);border-radius:12px;padding:12px 16px;z-index:50;box-shadow:0 10px 30px #0000004d}.toast{font-size:14px;font-weight:600;text-align:center}@media (min-width: 980px){.layout{grid-template-columns:minmax(0,1fr) 440px;align-items:start}.stage{position:sticky;top:61px;height:calc(100vh - 61px);padding-block:22px 16px}.panel{border-left:1px solid var(--line);min-height:calc(100vh - 61px)}}@media (max-width: 979px){.stage{position:relative}}@media (max-width: 420px){.grid2,.audio-row{grid-template-columns:1fr}.brand-sub{display:none}}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.road-chip .alt{color:var(--muted);font-weight:500}.top-actions{display:flex;align-items:center;gap:8px;flex:none}.acct-btn{gap:7px}.acct-btn svg{width:17px;height:17px}.acct-btn.has-acct{padding:4px 4px 4px 6px;border-radius:999px}.credit-pill{font:600 12.5px var(--mono);font-variant-numeric:tabular-nums;background:var(--accent-soft);color:var(--ink);padding:4px 9px;border-radius:999px;white-space:nowrap}.credit-pill.empty{background:color-mix(in srgb,var(--pin) 16%,transparent);color:var(--pin)}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-weight:800;font-size:13px}.credit-note{margin:0;font-size:13.5px;color:var(--muted);background:var(--surface-2);border-radius:var(--r);padding:9px 12px}.credit-note strong{color:var(--ink)}.credit-note .link-btn{padding:0 2px}.dlg{border:0;padding:0;background:transparent;color:var(--ink);width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 24px)}.dlg::backdrop{background:#060c0a9e;backdrop-filter:blur(2px)}.dlg-card{position:relative;display:flex;flex-direction:column;gap:12px;background:var(--surface);border-radius:16px;padding:22px 20px 20px;box-shadow:0 24px 60px #00000059;max-height:calc(100dvh - 24px);overflow:auto}.dlg-card h3{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em;padding-right:34px}.dlg-x{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:0;background:var(--surface-2);font-size:22px;line-height:1;cursor:pointer;color:var(--muted)}.hint.small{font-size:12.5px}.hint.center{text-align:center}.trial-line{margin:0;font-size:14px;background:var(--accent-soft);border-radius:var(--r);padding:9px 12px}.auth-tabs button{flex:1 1 0}.pkg-list{display:flex;flex-direction:column;gap:10px}.pkg-list.busy{opacity:.55;pointer-events:none}.pkg{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:13px 14px;cursor:pointer;color:var(--ink)}.pkg:hover{border-color:var(--ink)}.pkg.hot{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pkg-tag{position:absolute;top:-9px;left:12px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:800;padding:1px 8px;border-radius:99px}.pkg-name{font-weight:800;font-size:15.5px}.pkg-price{font:700 16px var(--mono);font-variant-numeric:tabular-nums;text-align:right}.pkg-desc{font-size:13px;color:var(--muted)}.pkg-per{font-size:12px;color:var(--muted);text-align:right;grid-row:2;grid-column:2;font-variant-numeric:tabular-nums}.pkg-price s{font-weight:500;font-size:13px;color:var(--muted);margin-right:4px}.promo-box{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid var(--accent);color:var(--ink);font-size:14px}.promo-box span{font-size:13px;color:var(--muted)}.promo-box b{color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums}.pending-order{text-align:left;border:1px dashed var(--focus);background:color-mix(in srgb,var(--focus) 8%,var(--surface));color:var(--ink);border-radius:12px;padding:10px 12px;font-size:13.5px;cursor:pointer}.qr-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.qr-wrap canvas{width:min(250px,70vw);height:auto;aspect-ratio:1;border-radius:12px;background:#fff;border:1px solid var(--line);image-rendering:pixelated}.qr-cap{font-size:12.5px;color:var(--muted);text-align:center}.qr-img{width:min(300px,78vw);height:auto;border-radius:16px;background:#fff;box-shadow:0 6px 24px #0000002e;-webkit-touch-callout:default}.qr-save{width:min(300px,78vw);margin-top:6px}.pkg.loading{opacity:.7;pointer-events:none}.pkg.loading:after{content:"\110 ang t\1ea1o m\e3  QR\2026";display:block;font-size:12.5px;font-weight:700;margin-top:4px}.pay-info{margin:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px}.pay-info>div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line)}.pay-info>div:first-child{border-top:0}.pay-info dt{font-size:12.5px;color:var(--muted)}.pay-info dd{margin:0;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14.5px;min-width:0;overflow-wrap:anywhere}.copy{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:3px 9px;font-size:12.5px;font-weight:600;cursor:pointer;flex:none;color:var(--ink)}.pay-status{margin:0;display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--focus);animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.pay-done{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--focus);padding-top:8px}.pay-done svg{width:64px;height:64px}.pay-done h3{color:var(--ink);padding:0}.pay-done p{margin:0;color:var(--ink)}.credit-big{display:flex;align-items:baseline;gap:8px;background:var(--surface-2);border-radius:12px;padding:12px 14px}.credit-big strong{font:800 28px var(--mono);font-variant-numeric:tabular-nums}.credit-big span{color:var(--muted);font-size:14px}.ac-sec{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}.ac-sec>summary{cursor:pointer;font-weight:600;font-size:14px}.ac-sec[open]{display:flex;flex-direction:column;gap:10px}.ac-sec h4{margin:6px 0 0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.hist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;font-size:13px}.hist-list li{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:8px;padding:6px 0;border-top:1px solid var(--line)}.hist-list li:first-child{border-top:0}.hist-list li>span:first-child{color:var(--muted);font-variant-numeric:tabular-nums}.hist-list .plus{color:var(--focus);font-weight:700}.hist-list .minus{color:var(--muted);font-weight:700}.st{font-size:12px;font-weight:700;white-space:nowrap}.st-paid{color:var(--focus)}.st-pending{color:var(--accent)}.st-cancelled{color:var(--muted)}@media (max-width: 420px){.credit-pill{font-size:11.5px;padding:3px 7px}.pay-info>div{grid-template-columns:88px minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}.add-results{display:flex;flex-direction:column;gap:4px}.add-results:empty{display:none}.add-hit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--ink)}.add-hit:hover{border-color:var(--ink)}.add-hit-name{font-weight:600;font-size:14px;overflow-wrap:anywhere}.add-hit-km{font:500 12.5px var(--mono);color:var(--muted)}.add-hit-where{grid-column:1 / -1;font-size:12.5px;color:var(--muted)}.seg-line .seg-say{font-size:12px;color:var(--focus);line-height:1.4}.seg-line .seg-say:empty{display:none}.lbl-acts{display:inline-flex;gap:12px}.logo-preview{height:34px;max-width:96px;object-fit:contain;border-radius:6px;background:#fff;padding:3px}#musicLib{margin-bottom:4px}.low-banner{margin:0 auto;max-width:1400px;padding:9px 16px;background:#f1b23c24;border-bottom:1px solid rgba(241,178,60,.35);color:var(--ink);font-size:14px;text-align:center}.low-banner .link-btn{font-weight:700}.low-banner.promo{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-bottom-color:var(--accent)}.low-banner [data-promo-left]{font-variant-numeric:tabular-nums;font-weight:700}.ref-box{margin:14px 0 4px;padding:12px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-soft)}.ref-box h4{margin:0 0 4px;font-size:15px}.ref-box .input-row{margin:8px 0}.ref-line{color:var(--accent)}.foot-links{margin-top:6px}.foot-links a{color:inherit}.proj-row{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}.proj-row .btn{flex:1 1 140px}.proj-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;margin-top:4px}.proj-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.proj-item.cur{border-color:var(--accent);background:var(--accent-soft)}.proj-item .pi-txt{flex:1;min-width:0;display:flex;flex-direction:column}.proj-item .pi-txt strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-item .pi-txt span{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-item .btn{padding:6px 12px;min-height:34px;font-size:13.5px}.proj-item .del{color:var(--pin)}.zalo-fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:40;display:inline-flex;align-items:center;gap:6px;padding:10px 14px 10px 10px;border-radius:999px;background:#0b6cff;color:#fff;font:700 14px/1 var(--font);text-decoration:none;box-shadow:0 8px 24px #0b6cff59}.zalo-fab svg{width:26px;height:26px;color:#fff}.zalo-fab[hidden]{display:none}.install-btn{background:var(--accent);color:var(--accent-ink);border:0;font-weight:800;font-size:14px;padding:8px 13px;gap:6px;box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent);animation:install-pulse 2.4s ease-out 1.2s 3}.install-btn svg{width:17px;height:17px}.install-btn:hover{filter:brightness(1.05)}@keyframes install-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%,to{box-shadow:0 0 0 12px transparent}}@media (prefers-reduced-motion: reduce){.install-btn{animation:none}}.brand-name{white-space:nowrap}@media (max-width: 520px){.topbar{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));gap:8px}.brand{gap:7px}.brand-mark{width:26px;height:26px}.brand-name{font-size:15.5px}.top-actions{gap:6px}.install-btn,.acct-btn{padding:7px 10px;font-size:13.5px}.acct-btn.has-acct{padding:3px 3px 3px 5px}}@media (max-width: 379px){.acct-label{display:none}.acct-btn:not(.has-acct){padding:7px 9px}}.result-install{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-top:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--accent);background:var(--accent-soft);cursor:pointer}.result-install div{display:flex;flex-direction:column;line-height:1.35}.result-install div span{font-size:13px;color:var(--muted)}.result-install .btn{flex:none;background:var(--accent);color:var(--accent-ink);border:0;font-weight:800}.big-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;padding:12px 18px 12px 14px;border-radius:999px;border:0;background:#0000009e;color:#fff;font:800 15px/1 var(--font);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:pointer;box-shadow:0 8px 24px #00000059;white-space:nowrap}.big-play svg{width:26px;height:26px;color:var(--accent)}.canvas-wrap{position:relative}@media (max-width: 600px){.zalo-fab{padding:0;width:52px;height:52px;justify-content:center}.zalo-fab span{display:none}.zalo-fab svg{width:30px;height:30px}.panel{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}}.photo-row{display:flex;flex-wrap:wrap;gap:8px}.photo-th{position:relative;width:74px;height:74px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}.photo-th img{width:100%;height:100%;object-fit:cover;display:block}.photo-th button{position:absolute;top:3px;right:3px;width:24px;height:24px;border-radius:50%;border:0;background:#000000a6;color:#fff;font-size:15px;line-height:24px;padding:0;cursor:pointer}.photo-th .ord{position:absolute;left:4px;bottom:3px;font:700 11px var(--mono);color:#fff;text-shadow:0 1px 2px #000}.photo-add{width:74px;height:74px;border-radius:10px;border:1.5px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--muted);font-size:11.5px;font-weight:700}.photo-add span:first-of-type{font-size:22px;line-height:1}.photo-add:hover{border-color:var(--ink);color:var(--ink)}.photo-add input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-add.busy{opacity:.6;pointer-events:none}.style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.style-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:center;text-align:left;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.style-card[aria-checked=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.style-card .st-sw{grid-row:span 2;width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:15px}.style-card strong{font-size:14px}.style-card span.st-d{font-size:11.5px;color:var(--muted);line-height:1.35}.leads-btn{position:relative;display:inline-flex;align-items:center;gap:6px}.leads-btn svg{width:20px;height:20px}.leads-btn .badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font:800 11px/18px var(--mono, monospace);text-align:center}.dlg-wide .dlg-card{max-width:640px}.ltabs{display:flex;gap:6px;margin:12px 0;border-bottom:1px solid var(--line)}.ltabs button{border:0;background:none;color:var(--muted);font:700 14.5px/1 inherit;padding:10px 12px;border-bottom:2.5px solid transparent;cursor:pointer}.ltabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.lead-filter{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}.lead-filter button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:6px 11px;font-size:13px;cursor:pointer}.lead-filter button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.lead-list,.page-list{display:grid;gap:10px}.lead{border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:8px;background:var(--surface)}.lead header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.lead-phone{display:flex;gap:8px}.lead-phone .btn{flex:1;justify-content:center;min-height:42px}.lead-phone .btn-quiet{flex:0 0 auto}.lead-want{margin:0;font-weight:700;font-size:14px}.lead-row{display:flex;align-items:center;gap:8px}.lead-row .dot{width:12px;height:12px;border-radius:50%;flex:none}.empty{text-align:center;padding:18px 8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats div{border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;background:var(--surface)}.stats b{display:block;font-size:22px}.stats span{font-size:12px;color:var(--muted)}.pg{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--surface)}.pg img,.pg-noimg{width:72px;height:72px;border-radius:10px;object-fit:cover;display:grid;place-items:center;background:var(--line);font-size:28px}.pg-body{display:grid;gap:3px;min-width:0}.pg-stats{font-size:13px}.pg-actions{display:flex;flex-wrap:wrap;gap:4px 12px}.link-btn.danger{color:#dc2626}.ok-line{font-weight:700}.page-result{display:grid;gap:8px;margin-top:10px}.page-acts{display:flex;flex-wrap:wrap;gap:8px}.page-acts .btn{flex:1 1 auto;justify-content:center}.lead-phone a,.page-acts a{text-decoration:none}:root{--topbar-h: 56px;--nav-h: 62px;--stepnav-h: 64px}.brand-sub{display:none}.step{padding-block:18px 22px;border-bottom:0;gap:16px}.steps>.step:not(.on){display:none}.step-head h2{font-size:19px}.hint.center,.center{text-align:center}.btn-lg{padding-block:15px;font-size:16px;border-radius:12px}.btn-dark{background:var(--ink);color:var(--bg)}.btn-dark:hover{filter:brightness(1.15)}.btn-dark:disabled{opacity:.55;cursor:progress}.input{border-radius:10px}.grid2{gap:12px 10px}.stepper{list-style:none;margin:0;padding:12px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;counter-reset:s}.stepper button{width:100%;display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:0;padding:6px 2px 9px;cursor:pointer;color:var(--muted);position:relative;font:600 12.5px/1.2 var(--font)}.stepper button:after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:3px;border-radius:3px;background:var(--line)}.stepper .sn{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:700 13px var(--mono);background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.stepper .sl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.stepper button.cur{color:var(--ink)}.stepper button.cur .sn{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.stepper button.cur:after{background:var(--accent)}.stepper button.done .sn{background:var(--focus);border-color:var(--focus);color:#fff;font-size:0}.stepper button.done .sn:before{content:"\2713";font-size:15px}.stepper button.done:after{background:var(--focus)}.subtabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:var(--surface-2);border-radius:12px}.subtabs button{border:0;background:none;padding:9px 4px;border-radius:9px;font:700 13.5px/1.2 var(--font);color:var(--muted);cursor:pointer}.subtabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.subpane{display:flex;flex-direction:column;gap:16px}.subpane[hidden]{display:none}.seg-wrap button{flex:1 1 calc(50% - 6px)}.more{border:1px solid var(--line);border-radius:12px;background:var(--surface)}.more>summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.more>summary::-webkit-details-marker{display:none}.more>summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin-top:-4px;transition:transform .15s}.more[open]>summary:after{transform:rotate(-135deg);margin-top:4px}.more-body{padding:2px 14px 14px;display:flex;flex-direction:column;gap:14px}.empty-state{text-align:center;padding:26px 16px;border:1.5px dashed var(--line);border-radius:14px;display:grid;gap:12px;justify-items:center}.empty-state p{margin:0;color:var(--muted)}.page-card{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--surface)}.page-card h3{margin:0 0 2px;font-size:16px}.page-card-head p{margin:0}.step-nav{display:flex;gap:8px;padding:10px 0}.step-nav[hidden]{display:none}.step-nav #stepBack{flex:0 0 56px;font-size:18px}.step-nav #stepNext{flex:1;padding-block:13px;font-size:15.5px}.appnav{display:flex}.nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--muted);cursor:pointer;text-decoration:none;font:600 11.5px/1.2 var(--font);padding:6px 4px;border-radius:12px}.nav-item svg{width:23px;height:23px}.nav-item.on{color:var(--ink)}.nav-item.on svg{color:var(--accent)}.nav-item:hover{color:var(--ink)}.nav-item .badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font:800 11px/18px var(--mono);text-align:center}.nav-item[hidden],.nav-foot{display:none}@media (min-width: 980px){body.studio{height:100dvh;display:flex;flex-direction:column;overflow:hidden;min-height:0}.topbar,.low-banner{flex:none}.layout{flex:1;min-height:0;grid-template-columns:84px minmax(0,1fr) 460px;align-items:stretch}.appnav{flex-direction:column;gap:6px;padding:14px 8px;border-right:1px solid var(--line);background:var(--surface)}.nav-item{padding:10px 4px}.nav-item.on{background:var(--accent-soft)}.nav-foot{display:flex;flex-direction:column;gap:6px;margin-top:auto;text-align:center}.nav-foot a{font-size:11px;color:var(--muted);text-decoration:none}.nav-foot a:hover{color:var(--ink)}.stage{position:relative;top:auto;height:auto;min-height:0;padding:22px 24px 16px}.panel{display:flex;flex-direction:column;min-height:0;padding:0;border-left:1px solid var(--line);background:var(--bg)}.stepper{padding:14px 20px 0;background:var(--surface);border-bottom:1px solid var(--line)}.steps{flex:1;min-height:0;overflow-y:auto;padding:0 20px 20px;scrollbar-gutter:stable}.step-nav{padding:12px 20px;border-top:1px solid var(--line);background:var(--surface)}}@media (max-width: 979px){:root{--topbar-h: 52px}.topbar{padding-top:calc(6px + env(safe-area-inset-top,0px));padding-bottom:6px}.stage{position:sticky;top:calc(var(--topbar-h) + env(safe-area-inset-top,0px));z-index:15;padding-block:10px 6px;box-shadow:0 6px 18px #0000002e}.stage-inner{gap:6px}.transport{max-width:520px}body.mini-stage .transport{gap:8px}body.mini-stage .icon-btn{width:36px;height:36px}body.mini-stage .chip-btn{padding:5px 10px;font-size:12px}.panel{padding-bottom:calc(var(--nav-h) + var(--stepnav-h) + 20px + env(safe-area-inset-bottom,0px))}.stepper{padding-top:14px}.appnav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding:4px 6px env(safe-area-inset-bottom,0px);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line)}.appnav .nav-item[hidden]{display:none}.step-nav{position:fixed;left:0;right:0;z-index:25;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding:10px max(14px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}body.studio .toast{bottom:calc(var(--nav-h) + var(--stepnav-h) + 14px + env(safe-area-inset-bottom,0px))}}@media (min-width: 600px) and (max-width: 979px){.panel{max-width:640px;margin-inline:auto}}
