@font-face{font-family:system-local;src:local('Arial')}*{box-sizing:border-box}body{margin:0;background:#0e1420;color:#e7e9ed;font:15px/1.6 system-ui,-apple-system,Arial,sans-serif;background-image:radial-gradient(ellipse at 70% 0,#223451 0,transparent 50%)}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button,a{cursor:pointer}button{border:1px solid #ffffff26;background:#ffffff08;color:inherit;border-radius:10px;padding:10px 16px;transition:background .2s,transform .2s}button:hover{background:#ffffff18}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:#dbc395;color:#181c26;font-weight:750;border-color:#dbc395}button.primary:hover{background:#f1dcae}button.danger{color:#ffc0b7;border-color:#a45046}a{color:#e3cc9f;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font:600 clamp(30px,3.8vw,52px)/1.13 Georgia,serif;letter-spacing:-1px}h2{font:600 25px/1.3 Georgia,serif}h3{font-size:17px}input,select,textarea{width:100%;color:#e7e9ed;background:#111a29;border:1px solid #ffffff26;padding:11px 12px;border-radius:8px;outline:none}input:focus,select:focus,textarea:focus{border-color:#dfc494;box-shadow:0 0 0 2px #d9bf8f22}textarea{min-height:110px;resize:vertical}label{display:block;font-size:13px;color:#bfc7d4}label input,label select,label textarea{margin-top:5px}hr{border:0;border-top:1px solid #ffffff13;margin:18px 0}.muted{color:#929eb0;font-size:13px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.2px;color:#d6bd8e;text-transform:uppercase;margin-bottom:12px}.panel{background:#182233bb;border:1px solid #ffffff12;border-radius:16px;padding:24px}.stack{display:grid;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.shell{max-width:1520px;margin:auto;padding:0 38px}.topbar{display:flex;justify-content:space-between;align-items:center;min-height:87px;border-bottom:1px solid #ffffff12;gap:18px}.brand{display:flex;align-items:center;gap:13px;min-width:220px}.brand-symbol{font-size:32px;color:#d6bd8e}.brand b{font:600 21px Georgia,serif;letter-spacing:1.2px}.brand small{display:block;font-size:10px;color:#8e9caf;letter-spacing:1.7px}.user-bar{display:flex;align-items:center;gap:10px;font-size:13px}.avatar{background:#2d3b51;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;color:#e4cea4}.tabs{display:flex;gap:27px;overflow:auto;border-bottom:1px solid #ffffff13;scrollbar-width:thin}.tabs button{border:0;border-radius:0;padding:20px 0;color:#8d99ac;white-space:nowrap;font-size:13px}.tabs button.active{border-bottom:2px solid #d8bf92;color:#ead7b1}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:32px 0 25px}.page-heading p{margin-bottom:0}.pill{display:inline-flex;border:1px solid #ffffff20;border-radius:30px;padding:4px 11px;font-size:11px;color:#bec8d8;gap:7px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;background:#64c3a3}.studio{display:grid;grid-template-columns:minmax(240px,1fr) minmax(320px,470px) minmax(260px,1fr);gap:28px;align-items:start}.side-title{font-size:11px;letter-spacing:1.7px;color:#8c9bb0;text-transform:uppercase;margin-bottom:20px}.timer{font:500 56px/1 Georgia,serif;color:#e9d3ab;margin:16px 0}.session-panel p{font-size:13px;color:#a8b3c4}.session-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.empty{padding:28px;text-align:center;color:#97a4b7;font-size:14px}.tiny-stats{display:flex;gap:24px;padding:18px 0;border-top:1px solid #ffffff10}.tiny-stats strong{display:block;color:#ece0c8;font-size:22px;font-weight:500}.tiny-stats span{color:#8796ad;font-size:11px}.queue{max-height:410px;overflow:auto}.queue button{display:flex;align-items:center;width:100%;text-align:left;gap:10px;margin:8px 0;padding:12px;border-radius:9px}.queue .badge{font-size:22px}.queue small{display:block;color:#8898ae;font-size:11px}.queue .qtotal{margin-left:auto;color:#e0c99d;font-size:12px}.card-stage{position:relative}.stage-caption{text-align:center;font-size:11px;letter-spacing:1.4px;color:#8495ad;margin:16px 0}.card{--rarity:#d1d8e0;position:relative;background:linear-gradient(140deg,#e9edf1,#faf9f5 40%,#d5dce6);border:3px solid var(--rarity);color:#28313c;border-radius:19px;padding:12px;box-shadow:0 0 0 5px #1e2a3b,0 24px 65px #0007,0 0 35px color-mix(in srgb,var(--rarity) 12%,transparent);overflow:hidden}.card:before{content:'';position:absolute;inset:5px;border:1px solid #8794a67a;border-radius:13px;pointer-events:none;z-index:1}.card-top{font:700 11px Georgia,serif;letter-spacing:2px;display:flex;justify-content:space-between;align-items:center;padding:3px 9px 11px}.card-top .rarity{font:700 9px system-ui;letter-spacing:1px}.portrait{height:255px;border:1px solid #a1aab7;border-radius:9px 9px 3px 3px;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 38%,#9aafc9,#283a55 85%)}.portrait.doctor{background-image:url('bac-si-the-mau.png');background-size:100% auto;background-position:center 8%;height:255px}.portrait .figure{width:100%;height:100%;object-fit:cover}.portrait:after{content:'';position:absolute;inset:auto 0 0;height:40%;background:linear-gradient(transparent,#14203490)}.origin{position:absolute;bottom:8px;left:12px;z-index:1;color:white;letter-spacing:1px;font-size:11px}.card-role{font:700 28px/1.15 Georgia,serif;text-align:center;margin:12px 0 2px}.card-name{text-align:center;font-style:italic;font-family:Georgia,serif;min-height:29px;font-size:17px;color:#4c5867;overflow-wrap:anywhere}.stars{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;max-width:330px;margin:8px auto 13px;color:#97a1ae;font-size:20px;line-height:1;text-align:center}.stars .lit{color:#c09131;text-shadow:0 1px #fff3b1}.attributes{display:grid;gap:5px}.attribute{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#ffffff80;border:1px solid #8f9ba13f;border-left:3px solid var(--stat-color,#bec6d0);border-radius:4px;padding:5px 10px;font-size:12px}.attribute .stat-label{flex-shrink:0;color:#4d5965}.attribute b{text-align:right;font-weight:650;font-size:12px}.attribute:first-child b{font-size:19px;line-height:1}.total-panel{background:linear-gradient(100deg,#d6dee6,#ffffffac);border-top:1px solid #9ba9b9;border-bottom:1px solid #9ba9b9;padding:8px 11px;margin-top:12px;text-align:center}.total-label{font-size:9px;letter-spacing:1.7px;font-weight:700}.total-number{display:block;font:650 clamp(16px,2.6vw,29px)/1.35 Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:.1px;overflow-wrap:anywhere}.card-quote{font:italic 11px/1.5 Georgia,serif;text-align:center;padding:10px 8px 3px;margin:0;color:#526070}.card-id{text-align:center;color:#738092;font-size:8px;letter-spacing:1px;margin-top:4px}.card.reveal{animation:reveal .65s ease-out}@keyframes reveal{from{opacity:.2;transform:rotateY(30deg) translateY(10px)}to{opacity:1;transform:none}}.helper{font-size:12px;color:#9aa8bb}.rank-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.mini-card{background:#182233;border:1px solid #ffffff12;border-radius:13px;overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s}.mini-card:hover{transform:translateY(-4px);border-color:#d4bd8d}.mini-art{height:140px;background:radial-gradient(circle,#344f6b,#19283b);display:grid;place-items:center}.mini-art img{height:100%;width:100%;object-fit:cover}.mini-content{padding:16px}.mini-content h3{margin:2px 0;font-size:17px;overflow-wrap:anywhere}.mini-content .score{font:600 19px Georgia,serif;color:#d7be90;margin-top:12px}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:12px;margin-bottom:24px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin:25px}.demo-layout{max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 420px;gap:50px}.demo-description{padding-top:40px}.demo-description p{color:#a4b0c2}.section-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:12px;border-bottom:1px solid #ffffff13;vertical-align:top}.data-table th{font-size:11px;text-transform:uppercase;color:#9eacc0;letter-spacing:.7px}.data-table input{min-width:105px;font-size:12px;padding:7px}.data-table select{min-width:130px}.notice{background:#d6b8790d;border:1px solid #d6b87933;border-radius:10px;padding:14px;color:#d8c8a8;font-size:13px}.error{color:#ffc1b7;background:#6d2e3426;border:1px solid #ba655b4a;border-radius:8px;padding:12px}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.catalog-item{padding:18px;background:#182335;border:1px solid #ffffff10;border-radius:12px}.catalog-item h3{margin-bottom:5px}.catalog-item p{font-size:12px;color:#a0aec3}.catalog-item .pill{font-size:10px}footer{padding:35px 0;color:#6c7c94;font-size:11px;border-top:1px solid #ffffff0e;margin-top:45px;display:flex;justify-content:space-between;gap:20px}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;max-width:1250px;margin:auto;padding:60px;gap:70px;align-items:center}.auth-intro h1{font-size:65px}.auth-intro p{color:#9fadc2;max-width:440px}.auth-illustration{height:220px;position:relative;margin-top:35px;border-left:2px solid #d4bc8c;padding-left:22px}.auth-illustration img{height:220px;float:left;margin-right:24px;border-radius:8px;box-shadow:0 8px 35px #0008}.auth-illustration p{padding-top:30px;font-family:Georgia,serif;font-style:italic;font-size:18px;line-height:1.8}.auth-panel{max-width:430px;width:100%}.auth-panel h2{font-size:30px}.setup{padding:40px 20px}.setup-panel{max-width:760px;margin:auto}.checklist{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;color:#b5c4ac;font-size:13px}.loading{min-height:60vh;display:grid;place-items:center;color:#d8bf91}#toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:9999;max-width:90vw;padding:12px 22px;background:#ead8b5;color:#202735;border-radius:12px;box-shadow:0 12px 35px #0006;display:none}dialog{background:#172233;color:#e9edf2;border:1px solid #d3bc8b66;border-radius:18px;padding:35px;width:min(1050px,94vw);max-height:92vh}dialog::backdrop{background:#070c17d9;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:10px;top:7px;border:0;font-size:28px;padding:0 12px}.detail-grid{display:grid;grid-template-columns:350px 1fr;gap:35px}.detail-grid .portrait{height:200px}.detail-copy p{font-size:14px;color:#adb9ca}.detail-copy .eyebrow{color:#d7c094}.detail-copy dt{font-size:11px;color:#d8c18f;text-transform:uppercase;letter-spacing:1px;margin-top:15px}.detail-copy dd{margin:4px 0;color:#bbc6d5;font-size:14px}.rates-summary{color:#dfc99d;margin:16px 0}.overlay-body{background:transparent;background-image:none}.overlay-container{max-width:470px;margin:15px auto}.overlay-container .portrait{height:300px}.overlay-top{display:none}.split-overlay{max-width:950px;display:grid;grid-template-columns:450px 1fr;gap:40px;align-items:center}.split-overlay .overlay-top{display:block;background:#142033ec;padding:25px;border-radius:16px}.hidden{display:none!important}.status-ok{color:#8bd3b8}.status-bad{color:#ffc3ae}
@media(min-width:1500px){.portrait,.portrait.doctor{height:295px}}@media(max-width:1100px){.shell{padding:0 22px}.studio{grid-template-columns:1fr 390px}.studio .right-col{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px}.rank-grid{grid-template-columns:repeat(3,1fr)}.auth-wrap{padding:40px;gap:40px}.auth-intro h1{font-size:50px}.catalog-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.shell{padding:0 16px}.topbar{min-height:75px}.brand{min-width:0}.brand b{font-size:16px}.brand small{font-size:8px}.brand-symbol{font-size:26px}.user-bar .name-text{display:none}.user-bar button{font-size:11px;padding:8px}.tabs{gap:22px}.tabs button{padding:16px 0;font-size:12px}.page-heading{margin:25px 0 20px}.page-heading h1{font-size:32px}.page-heading>.pill{display:none}.studio{display:flex;flex-direction:column;gap:22px}.card-stage{width:min(100%,420px);align-self:center;order:0}.studio .left-col{order:1;width:100%}.studio .right-col{order:2;width:100%;display:block}.right-col .panel{margin-bottom:18px}.left-col .session-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px}.session-panel .side-title{grid-column:1/-1;margin-bottom:0}.session-panel .timer{margin:8px 0}.portrait,.portrait.doctor{height:260px}.stars{font-size:19px}.total-number{font-size:25px}.attribute b{font-size:12px}.rank-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-content{padding:12px}.mini-content h3{font-size:15px}.mini-content .score{font-size:16px;overflow-wrap:anywhere}.mini-art{height:110px}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.demo-layout{display:flex;flex-direction:column-reverse;gap:25px;max-width:420px}.demo-description{padding:0}.admin-grid{grid-template-columns:1fr}.catalog-grid{grid-template-columns:1fr}.auth-wrap{display:flex;flex-direction:column;padding:30px 20px;gap:25px}.auth-intro h1{font-size:42px}.auth-illustration{display:none}.auth-intro{width:100%;max-width:430px}.auth-panel{padding:24px}.detail-grid{grid-template-columns:1fr}.detail-grid .card{max-width:360px;margin:auto}.detail-copy{padding-top:10px}dialog{padding:35px 18px 20px}.panel{padding:20px}.form-grid{grid-template-columns:1fr}.checklist{grid-template-columns:1fr}.split-overlay{display:block;max-width:440px}.split-overlay .overlay-top{margin-top:25px}footer{font-size:10px}.data-table td{min-width:120px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* V2: Vietnamese system fonts, compact portrait control surface. */
:root{font-synthesis:none}body,button,input,select,textarea,h1,h2,h3,.brand b,.card-role,.card-name,.card-top,.total-number,.card-quote,.timer{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}h1,h2,h3{letter-spacing:normal}.card-role{font-weight:750}.card{background:linear-gradient(135deg,color-mix(in srgb,var(--rarity) 32%,white),#fff 50%,color-mix(in srgb,var(--rarity) 25%,white));border:3px solid var(--rarity);box-shadow:0 0 0 3px color-mix(in srgb,var(--rarity) 30%,#172438),0 16px 48px #0006}.attribute{background:#fffffff0;border-left-width:4px;min-height:31px}.attribute b{color:var(--stat-ink,#334155);font-weight:750;line-height:1.3}.attribute .stat-label{color:#334155}.card-name{font-style:normal}.card-top{letter-spacing:.7px}.card-quote{font-style:normal}.total-number{white-space:nowrap;overflow-wrap:normal;font-size:clamp(18px,5.2vw,27px);font-weight:800}.total-panel{background:color-mix(in srgb,var(--rarity) 18%,white)}
.studio-mode{background:radial-gradient(ellipse at 10% 10%,#254152,transparent 50%),radial-gradient(ellipse at 90% 90%,#39264a,transparent 50%),#101724}.studio-mode .shell{max-width:480px;padding:0 10px}.studio-mode .topbar,.studio-mode .tabs,.studio-mode footer{display:none}.play-phone{padding:10px 0 max(10px,env(safe-area-inset-bottom));margin:auto;width:100%;max-width:440px}.play-toolbar{display:flex;gap:5px;align-items:center;margin-bottom:7px;position:relative;z-index:2}.play-toolbar button{height:38px;padding:5px 7px;font-size:12px;white-space:nowrap;border-radius:10px;flex:0 0 auto}.play-toolbar #sessionToggle{font-variant-numeric:tabular-nums;background:#20384d}.play-toolbar #summonNow{flex:1;background:linear-gradient(135deg,#87e7d8,#b7e3ff);border-color:#8ae3df;color:#10324b}.play-toolbar #bagOpen b{font-size:10px;background:#354363;padding:2px 4px;border-radius:5px}.play-toolbar #focusToggle{width:28px;padding:3px}.play-status{display:flex;justify-content:space-between;color:#bdccdf;font-size:10px;margin:0 3px 8px}.play-status #sessionStatus{color:#9be5cf}.play-phone .card{padding:10px;border-radius:18px}.play-phone .card-top{font-size:9px;padding:3px 5px 7px;min-height:24px}.play-phone .card-top .rarity{font-size:8px;letter-spacing:0}.play-phone .portrait,.play-phone .portrait.doctor{height:clamp(110px,24dvh,205px)}.play-phone .card-role{font-size:clamp(17px,4.7vw,23px);line-height:1.2;margin:8px 0 2px}.play-phone .card-name{font-size:14px;min-height:31px}.name-on-card{background:transparent;border:1px dashed #8997ac;padding:4px 10px;border-radius:8px;color:#304c71;font-weight:650;max-width:100%;overflow-wrap:anywhere;line-height:1.4}.name-on-card span{color:#536e8e}.name-on-card:hover{background:#e5edf5}.play-phone .stars{margin:7px auto 9px;font-size:18px;max-width:320px}.play-phone .attributes{gap:4px}.play-phone .attribute{padding:5px 8px;font-size:11px;min-height:29px}.play-phone .attribute b{font-size:12px;max-width:66%}.play-phone .attribute:first-child b{font-size:18px}.play-phone .total-panel{padding:5px 8px;margin-top:8px}.play-phone .total-label{font-size:8px;letter-spacing:1px}.play-phone .total-number{line-height:1.35}.play-phone .card-quote{font-size:10px;line-height:1.35;padding:8px 4px 2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.play-phone .card-id{font-size:8px;margin-top:3px;letter-spacing:.3px}.play-bottom{display:flex;gap:6px;margin-top:9px}.play-bottom button{flex:1;padding:6px 3px;font-size:11px}.focus-play.studio-mode .play-status,.focus-play.studio-mode .card-quote,.focus-play.studio-mode .card-id,.focus-play.studio-mode .play-bottom{display:none}.focus-play.studio-mode .play-toolbar{margin-bottom:10px}.inline-name{display:flex;gap:4px;width:100%;margin:3px 0}.inline-name input{min-width:0;flex:1;font-size:16px;background:white;color:#172638;padding:5px 8px;border-color:#4d7ca6}.inline-name button{padding:4px 11px;background:#164e63;color:white;border:0}.inline-name #cancelName{background:#526275}#nameError{font-size:11px;color:#9a2518;display:block}dialog{width:min(620px,calc(100vw - 20px));max-height:90dvh;border:1px solid #496278;border-radius:20px;padding:25px 18px 18px;box-shadow:0 25px 90px #000a}dialog[open]{animation:popup .18s ease-out}dialog::backdrop{background:#070d1acc;backdrop-filter:blur(6px)}@keyframes popup{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.bag-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.bag-filters select,.bag-filters input{font-size:14px;padding:8px;min-width:0}.bag-row{display:flex;gap:10px;width:100%;align-items:center;text-align:left;margin:6px 0;padding:10px 8px;background:#1b2a3d;border-color:#ffffff14}.bag-row>span:nth-child(2){flex:1;min-width:0}.bag-row b{font-size:13px;display:block}.bag-row small{display:block;color:#a8b7cc;font-size:10px}.bag-row strong{font-size:11px;color:#e9eff7;max-width:42%;overflow-wrap:anywhere}.bag-dot{width:8px;height:34px;border-radius:8px;background:var(--rarity);flex-shrink:0}.pagination{gap:10px;margin:16px 0;font-size:12px}.pagination button{padding:8px 13px}.detail-grid{display:block}.detail-grid>.detail-copy{margin-top:24px}button:focus-visible,a:focus-visible{outline:3px solid #7dd3fc;outline-offset:3px}#toast{z-index:10000;max-width:calc(100vw - 24px)}
@media(max-width:380px){.studio-mode .shell{padding:0 7px}.play-toolbar{gap:3px}.play-toolbar button{padding:4px 5px;font-size:11px}.play-phone .attribute{font-size:10px}.play-phone .attribute b{font-size:11px}}
@media(max-height:720px){.play-phone .portrait,.play-phone .portrait.doctor{height:clamp(85px,18dvh,125px)}.play-phone .card-quote{display:none}.play-phone .card-role{margin-top:5px}.play-phone .card{padding:8px}.play-phone .attributes{gap:3px}.play-phone .attribute{min-height:27px;padding-top:4px;padding-bottom:4px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
#bagResults{max-height:38dvh;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.studio-mode{background-attachment:fixed;min-height:100dvh}
