/* =========================================================
   扑克机 · V38 SEOUL MONO EDITION
   Private members'-club aesthetic: ink black, aged ivory,
   brushed brass. No external assets. Offline-safe. Mobile-first.
   ========================================================= */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
 --black:#07070a;
 --black2:#0b0b0e;
 --panel:#111114;
 --panel2:#16161a;
 --ivory:#f2ede2;
 --ivory2:#ddd6c8;
 --muted:#948d7f;
 --dim:#645e50;
 --caption:#87806f;
 --whisper:#5c5749;
 --gold:#c9a35c;
 --gold-hi:#eeda9f;
 --gold-lo:#8a6c37;
 --wine:#8a4348;
 --velvet:#120c0e;
 --velvet2:#1a1114;
 --line:rgba(224,201,148,.16);
 --line2:rgba(224,201,148,.08);
 --shadow:0 24px 70px rgba(0,0,0,.5);
 --gold-grad:linear-gradient(100deg,#a5813f 0%,#eeda9f 28%,#c9a35c 52%,#f2e2b0 72%,#8a6c37 100%);
 --glass-sheen:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.05) 45%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.05) 55%,transparent 70%);
}
html,body{
 margin:0;width:100%;height:100%;overflow:hidden;
 background:#0c0c0d;color:var(--ivory);
 font-family:-apple-system,BlinkMacSystemFont,"Noto Sans SC","PingFang SC","Segoe UI",sans-serif;
}
body{
 background:
 radial-gradient(circle at 50% -10%,#2c2a26 0,transparent 38%),
 #0c0c0d;
}
button,input,textarea,select{font:inherit}
button{border:0;background:none;color:inherit;transition:transform .15s ease,color .2s,border-color .2s,background-color .2s}
button:active{transform:scale(.975)}
:focus-visible{outline:1.5px solid var(--gold);outline-offset:2px}
#phone{
 position:relative;width:min(100vw,430px);height:100dvh;margin:auto;
 overflow:hidden;background:var(--black);
}
@media(min-width:600px){
 #phone{
  height:min(900px,94dvh);margin:3dvh auto;
  border:7px solid #050505;border-radius:38px;
  box-shadow:0 30px 110px rgba(0,0,0,.72),0 0 0 1px rgba(201,163,92,.06);
 }
}
#status{
 position:absolute;top:0;left:0;right:0;height:30px;padding:7px 17px 0;
 display:flex;justify-content:space-between;align-items:center;z-index:100;font-size:11px;
 font-weight:650;letter-spacing:.2px;color:#efe9db;pointer-events:none;
}
.status-icons{display:flex;align-items:center;gap:5px;color:#efe9db}
.status-icons svg{display:block;fill:currentColor}
.ic-signal{width:15px;height:10px}
.ic-wifi{width:14px;height:10px}
.ic-batt{width:21px;height:10px}
#screen{position:absolute;inset:0;overflow:hidden}
.view{display:none;position:absolute;inset:0;overflow:hidden;background:var(--black)}
.view.active{display:block;animation:viewIn .34s cubic-bezier(.22,1,.36,1)}
@keyframes viewIn{from{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.view.active{animation:none}}
.scroll{height:100%;overflow:auto;padding-bottom:calc(28px + env(safe-area-inset-bottom));scrollbar-width:none;overscroll-behavior:contain}
.scroll::-webkit-scrollbar{display:none}
.hide{display:none!important}

::selection{background:rgba(201,163,92,.32);color:#fff}

/* ---------- boot ---------- */
#bootScreen{
 position:fixed;inset:0;z-index:9999;
 overflow:hidden;background:#050506;
 display:flex;align-items:center;justify-content:center;
 transition:opacity .85s cubic-bezier(.22,1,.36,1),visibility .85s;
}
#bootScreen.done{opacity:0;visibility:hidden;pointer-events:none}
.boot-grid{position:absolute;inset:-20%;background:repeating-radial-gradient(circle at 50% 46%,transparent 0 39px,rgba(215,177,102,.035) 40px,transparent 41px 80px);animation:bootGridTurn 18s linear infinite}
.boot-grid:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,rgba(217,180,106,.09) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,rgba(217,180,106,.07) 50%,transparent 50.2%);transform:rotate(18deg)}
.boot-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,rgba(202,163,92,.13),transparent 25%),radial-gradient(circle at 50% 44%,transparent 18%,rgba(5,5,6,.25) 50%,#050506 82%)}
.boot-inner{position:relative;z-index:4;width:180px;text-align:center;animation:bootIn 1s cubic-bezier(.22,1,.36,1) both}
.boot-seal{position:relative;width:132px;height:132px;margin:auto;display:grid;place-items:center}
.boot-seal:before,.boot-seal:after{content:"";position:absolute;inset:0;border:1px solid rgba(235,209,151,.2);transform:rotate(45deg);animation:bootSealBreath 2.4s ease-in-out infinite}
.boot-seal:after{inset:13px;border-color:rgba(235,209,151,.1);animation-delay:.25s}
.boot-suit{
 position:relative;z-index:2;font:96px/1 Georgia,serif;
 background:var(--gold-grad);background-size:200% 200%;
 -webkit-background-clip:text;background-clip:text;color:transparent;
 animation:bootPulse 2.2s ease-in-out infinite,bootGoldMove 4s ease-in-out infinite;
 filter:drop-shadow(0 0 30px rgba(201,163,92,.25));
}
.boot-flare{position:absolute;z-index:3;left:50%;top:50%;width:1px;height:180px;background:linear-gradient(transparent,#f8e9bd,transparent);transform:translate(-50%,-50%) rotate(30deg);filter:blur(.3px);animation:bootFlare 2.5s .3s ease-in-out infinite}
.boot-name{
 margin-top:22px;font:30px/1 Georgia,"Songti SC",serif;
 letter-spacing:8px;color:var(--ivory);
 opacity:0;animation:bootFade .7s .5s cubic-bezier(.22,1,.36,1) forwards;
}
.boot-tag{
 margin-top:10px;font-size:7.5px;letter-spacing:3.5px;color:var(--gold);
 opacity:0;animation:bootFade .7s .8s cubic-bezier(.22,1,.36,1) forwards;
}
.boot-loader{
 margin:32px auto 0;width:110px;height:2px;
 background:rgba(224,201,148,.08);border-radius:2px;overflow:hidden;
 opacity:0;animation:bootFade .7s 1.1s cubic-bezier(.22,1,.36,1) forwards;
}
.boot-fill{
 height:100%;width:0%;
 background:var(--gold-grad);background-size:200% 100%;
 border-radius:2px;
 animation:bootLoad 1.6s 1.3s cubic-bezier(.22,1,.36,1) forwards;
}
.boot-hint{
 margin-top:16px;font-size:7px;letter-spacing:1.5px;color:var(--whisper);
 opacity:0;animation:bootFade .7s 1.6s cubic-bezier(.22,1,.36,1) forwards;
}
.boot-corner{position:absolute;width:31px;height:31px;border-color:rgba(221,185,111,.2);opacity:0;animation:bootFade .7s 1s forwards}
.boot-corner.tl{left:24px;top:26px;border-left:1px solid;border-top:1px solid}.boot-corner.tr{right:24px;top:26px;border-right:1px solid;border-top:1px solid}.boot-corner.bl{left:24px;bottom:26px;border-left:1px solid;border-bottom:1px solid}.boot-corner.br{right:24px;bottom:26px;border-right:1px solid;border-bottom:1px solid}
@keyframes bootIn{from{opacity:0;transform:scale(.88) translateY(12px)}to{opacity:1;transform:none}}
@keyframes bootPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes bootGoldMove{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes bootFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes bootLoad{to{width:100%}}
@keyframes bootGridTurn{to{transform:rotate(360deg)}}
@keyframes bootSealBreath{0%,100%{opacity:.45;transform:rotate(45deg) scale(.97)}50%{opacity:1;transform:rotate(45deg) scale(1.03)}}
@keyframes bootFlare{0%,100%{opacity:0;transform:translate(-50%,-50%) rotate(30deg) translateY(-45px)}40%,55%{opacity:.65}70%{opacity:0;transform:translate(-50%,-50%) rotate(30deg) translateY(45px)}}

/* ---------- lock ---------- */
#lock{
 background:
 radial-gradient(circle at 82% 17%,rgba(238,218,159,.06),transparent 23%),
 radial-gradient(circle at 10% 85%,rgba(138,67,72,.06),transparent 28%),
 linear-gradient(145deg,#07070a,#0b0b0d 55%,#07070a);
 color:var(--ivory);
}
#lock:after{
 content:"";position:absolute;inset:0;pointer-events:none;
 opacity:.2;
 background-image:radial-gradient(rgba(238,218,159,.14) .5px,transparent .5px);
 background-size:5px 5px;
 mask-image:linear-gradient(to bottom,transparent,black,transparent);
}
.lock-orb{
 position:absolute;width:340px;height:340px;border-radius:50%;
 right:-165px;top:105px;background:rgba(238,218,159,.035);
 filter:blur(2px);border:1px solid rgba(224,201,148,.06)
}
.lock-main{position:absolute;left:0;right:0;top:18%;text-align:center;z-index:2}
.lock-time{
 font-family:Georgia,"Times New Roman",serif;
 font-size:76px;line-height:.95;font-weight:400;letter-spacing:-4px;color:#f4efe4
}
.lock-date{
 margin-top:13px;font-size:10px;color:#8a8478;
 letter-spacing:2.5px;text-transform:uppercase
}
.lock-title{
 margin-top:70px;font-family:Georgia,"Times New Roman",serif;
 font-size:16px;letter-spacing:6px;
 background:var(--gold-grad);background-size:220% 100%;
 -webkit-background-clip:text;background-clip:text;color:transparent;
 animation:goldSheen 9s ease-in-out infinite;
}
.unlock{
 position:absolute;bottom:42px;left:50%;z-index:3;
 transform:translateX(-50%);
 width:64px;height:64px;border-radius:50%;
 border:1.5px solid rgba(224,201,148,.18);
 background:rgba(224,201,148,.04);
 backdrop-filter:blur(12px);
 box-shadow:0 12px 35px rgba(0,0,0,.45),inset 0 0 20px rgba(224,201,148,.03);
 display:flex;align-items:center;justify-content:center;
 cursor:pointer;
}
.unlock:active{transform:translateX(-50%) scale(.92)}
.unlock svg{
 width:32px;height:32px;
 opacity:.65;
 transition:opacity .2s,filter .2s;
 filter:drop-shadow(0 0 4px rgba(201,163,92,.3));
}
.unlock:hover svg{opacity:.9;filter:drop-shadow(0 0 8px rgba(201,163,92,.5))}
.lock-tools{display:none}

@keyframes goldSheen{
 0%{background-position:0% 50%}
 50%{background-position:100% 50%}
 100%{background-position:0% 50%}
}

/* ---------- POKEJI phone home ---------- */
#home{background:#080806}
.p12-home{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 20%,rgba(181,138,60,.15),transparent 25%),radial-gradient(circle at 10% 76%,rgba(210,170,90,.06),transparent 30%),linear-gradient(125deg,#21190c,#090907 48%,#151009);}
.p12-home:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background:repeating-linear-gradient(125deg,transparent 0 92px,#d9b76b 93px,transparent 94px)}
.p12-home.has-custom-bg{background-size:cover;background-position:center;background-repeat:no-repeat}
.p12-statusbar{position:absolute;top:0;left:0;right:0;height:38px;padding:11px 18px 0;display:flex;justify-content:space-between;font-size:12px;z-index:8;color:#eee8dc}
.p12-island{
 --island-accent:#eeda9f;--island-closed-width:132px;--island-open-width:274px;
 appearance:none;position:absolute;top:8px;left:50%;transform:translateX(-50%);
 width:var(--island-closed-width);height:31px;padding:0;overflow:hidden;
 border-radius:19px;background:#010101;border:1px solid #28251f;
 box-shadow:0 3px 18px rgba(0,0,0,.9),inset 0 1px rgba(255,255,255,.035);
 color:var(--island-accent);z-index:12;cursor:pointer;
 transition:width .38s cubic-bezier(.2,.9,.25,1),height .38s cubic-bezier(.2,.9,.25,1),border-radius .38s cubic-bezier(.2,.9,.25,1),box-shadow .38s ease;
}
.p12-island[data-size="compact"]{--island-closed-width:108px;--island-open-width:238px}
.p12-island[data-size="wide"]{--island-closed-width:158px;--island-open-width:314px}
.p12-island.is-expanded{width:min(var(--island-open-width),calc(100% - 38px));height:80px;border-radius:25px;box-shadow:0 13px 38px rgba(0,0,0,.82),inset 0 1px rgba(255,255,255,.04)}
.p12-island:active{transform:translateX(-50%) scale(.985)}
.p12-island:focus-visible{outline:1px solid var(--island-accent);outline-offset:3px}
.p12-island[hidden]{display:none!important}
.island-sensor{position:absolute;left:11px;top:50%;width:17px;height:9px;transform:translateY(-50%);opacity:.75;transition:opacity .2s}
.island-sensor:before{content:"";position:absolute;left:0;top:1px;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#47688b 0 9%,#14283b 20%,#060b13 52%,#000 74%);box-shadow:0 0 0 1px #111,0 0 6px rgba(58,96,138,.24)}
.island-sensor i{position:absolute;right:0;top:3px;width:4px;height:4px;border-radius:50%;background:#171717;box-shadow:inset 0 0 1px #455}
.island-compact{position:absolute;inset:0 10px 0 31px;display:flex;align-items:center;justify-content:center;gap:7px;opacity:1;transition:opacity .12s ease}
.island-compact b{flex:none;font:11px/1 Georgia,serif;color:var(--island-accent);font-weight:400}
.island-compact span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--island-accent);font-size:7px;letter-spacing:1.35px}
.island-expanded{position:absolute;inset:0;padding:13px 16px 12px;display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .16s ease,transform .24s ease}
.island-expanded-symbol{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:none;background:linear-gradient(145deg,rgba(238,218,159,.14),rgba(238,218,159,.03));border:1px solid color-mix(in srgb,var(--island-accent) 28%,transparent);font:23px/1 Georgia,serif;color:var(--island-accent);font-weight:400}
.island-expanded-copy{display:block;min-width:0;flex:1;text-align:left}
.island-expanded-copy strong,.island-expanded-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.island-expanded-copy strong{font-size:13px;letter-spacing:.2px;color:#f4efe6}
.island-expanded-copy small{margin-top:5px;font-size:8px;letter-spacing:.6px;color:#8e8779}
.island-pulse{width:6px;height:6px;border-radius:50%;flex:none;background:var(--island-accent);box-shadow:0 0 12px var(--island-accent);animation:islandPulse 1.8s ease-in-out infinite}
.p12-island.is-expanded .island-compact{opacity:0}
.p12-island.is-expanded .island-sensor{opacity:0}
.p12-island.is-expanded .island-expanded{opacity:1;transform:none;pointer-events:auto;transition-delay:.11s}
@keyframes islandPulse{0%,100%{opacity:.35;transform:scale(.72)}50%{opacity:1;transform:scale(1)}}
.p12-pages{position:absolute;inset:38px 0 0;z-index:2;touch-action:pan-y}
.p12-page{position:absolute;inset:0;padding:16px 22px 100px;opacity:0;transform:translateX(45px);pointer-events:none;transition:opacity .28s ease,transform .28s ease}
.p12-page.active{opacity:1;transform:none;pointer-events:auto}
.p12-clock{text-align:center;margin-top:13px}.p12-clock strong{display:block;font-size:55px;line-height:1;font-weight:300;letter-spacing:-3px;color:#f4eee3}.p12-clock span{display:block;color:#c3b59b;font-size:10px;margin-top:5px}
.p12-symbol strong{font:55px/1 Georgia,serif;color:var(--gold-hi)}
.p12-brand{text-align:center;margin-top:15px}.p12-brand b{font:400 23px Georgia,serif;letter-spacing:8px}.p12-brand small{display:block;color:#9d8557;font-size:7px;letter-spacing:4px;margin-top:5px}
.p12-apps{display:grid;grid-template-columns:repeat(4,1fr);gap:23px 14px;margin-top:55px}.p12-app{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:0;color:#e7dfd0;padding:0;cursor:pointer}.p12-tile{width:58px;height:58px;border-radius:17px;border:1px solid rgba(163,126,66,.28);background:linear-gradient(145deg,#302615,#100f0c);box-shadow:inset 0 1px rgba(242,212,138,.09),0 9px 20px #0009;display:grid;place-items:center;color:var(--gold-hi);font:25px Georgia,serif;transition:transform .16s ease}.p12-tile b{font-weight:400}.p12-app:active .p12-tile{transform:scale(.88)}.p12-app>span:last-child{font-size:9px;text-shadow:0 2px 5px #000}
.p12-apps-secondary{margin-top:55px}
.p12-small-widget{position:absolute;left:22px;right:22px;bottom:185px;height:76px;border:1px solid rgba(163,126,66,.28);border-radius:22px;background:rgba(14,13,11,.84);backdrop-filter:blur(15px);padding:13px 16px;box-shadow:0 13px 30px #0008}.p12-small-widget small{display:block;font-size:7px;letter-spacing:3px;color:#99805a}.p12-small-widget b{display:block;font:20px Georgia,serif;margin-top:7px;font-weight:400}.p12-small-widget span{display:block;font-size:8px;color:#817a6c;margin-top:2px}
.p12-dots{position:absolute;bottom:165px;left:0;right:0;text-align:center;color:#635948;font-size:9px;letter-spacing:7px;z-index:5}.p12-dots b{color:var(--gold-hi)}
.p12-dock{position:absolute;left:17px;right:17px;bottom:25px;height:67px;border:1px solid rgba(163,126,66,.28);border-radius:23px;background:rgba(17,16,13,.86);backdrop-filter:blur(18px);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;z-index:7;box-shadow:0 12px 35px #000}.p12-dock button{background:none;border:0;display:grid;place-items:center}.p12-tile-mini{width:49px;height:49px;border-radius:15px;font-size:22px}.p12-gesture{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:112px;height:4px;border-radius:5px;background:#f4eee4;z-index:10}
.p12-editor{position:absolute;inset:0;background:rgba(8,8,6,.94);backdrop-filter:blur(18px);z-index:30;display:none;padding:54px 20px}.p12-editor.on{display:block}.p12-editor h2{text-align:center;font:24px Georgia,serif;font-weight:400}.p12-editor p{text-align:center;color:#827a6c;font-size:10px;line-height:1.6}.p12-editor-close{position:absolute;right:18px;top:50px;width:34px;height:34px;border-radius:50%;border:1px solid #5b482c;background:#15120d;color:var(--gold-hi);font-size:20px}.p12-editor-row{margin-top:10px;padding:15px 16px;border:1px solid rgba(163,126,66,.28);border-radius:17px;background:rgba(17,15,11,.8);display:flex;justify-content:space-between;align-items:center}.p12-editor-row b{font:15px Georgia,serif;font-weight:400}.p12-editor-row button{border:1px solid #70562d;background:#17130d;color:#d9b76d;border-radius:10px;padding:8px 11px;font-size:9px}
@media(max-height:760px){.p12-apps{gap:16px 12px;margin-top:38px}.p12-small-widget{bottom:150px}.p12-dots{bottom:132px}}

/* ---------- common app chrome ---------- */
.header{
 height:76px;padding:34px 17px 10px;display:flex;align-items:flex-end;justify-content:space-between;
 background:rgba(8,8,9,.88);backdrop-filter:blur(20px);
 border-bottom:1px solid var(--line);position:relative;z-index:10;color:var(--ivory)
}
.header h1{
 font-family:Georgia,"Times New Roman","Songti SC",serif;font-size:25px;font-weight:400;
 margin:0;letter-spacing:1px
}
.actions{display:flex;gap:6px}
.icon-btn{
 width:34px;height:34px;border-radius:50%;border:1px solid var(--line);
 background:rgba(238,218,159,.025);display:grid;place-items:center;
 font-size:17px;color:var(--ivory2)
}
.icon-btn:hover{border-color:rgba(224,201,148,.32);color:var(--gold-hi)}
.section{padding:15px 16px}
.search{
 width:100%;height:40px;border:1px solid var(--line);border-radius:13px;
 background:rgba(238,218,159,.03);color:var(--ivory);padding:0 13px;outline:0
}
.search:focus{border-color:rgba(224,201,148,.4)}
.search::placeholder,input::placeholder,textarea::placeholder{color:#655f52}
.card,.engine-card{
 position:relative;
 background:linear-gradient(145deg,rgba(238,218,159,.05),rgba(238,218,159,.014));
 border:1px solid var(--line);border-radius:17px;
 box-shadow:0 15px 35px rgba(0,0,0,.28),0 2px 0 rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.04);
 color:var(--ivory)
}
.row{display:flex;align-items:center;gap:12px;padding:12px 14px}
.row.card{transition:background-color .18s,border-color .18s}
.row.card:active{background:rgba(238,218,159,.045);border-color:rgba(224,201,148,.26)}
.row.card b{font-weight:600;letter-spacing:.1px}
.avatar{
 position:relative;width:46px;height:46px;border-radius:14px;flex:none;overflow:hidden;
 background:linear-gradient(145deg,#2b2929,#121214);border:1px solid var(--line);
 box-shadow:inset 0 0 0 1px rgba(0,0,0,.4),0 5px 12px rgba(0,0,0,.35)
}
.avatar:after{
 content:"";position:absolute;inset:0;background:var(--glass-sheen);
 background-size:200% 200%;background-position:100% 0;pointer-events:none;
}
.avatar img{width:100%;height:100%;object-fit:cover;position:relative}
.muted{font-size:11px;color:var(--muted)}
.empty{margin:45px 20px;text-align:center;color:var(--caption);font-size:12px;line-height:1.9}
.empty .big{font:27px Georgia,serif;color:var(--gold);margin-bottom:10px;opacity:.85}
.nav{
 position:absolute;z-index:20;left:0;right:0;bottom:0;height:68px;
 background:rgba(10,10,11,.93);backdrop-filter:blur(20px);
 border-top:1px solid var(--line);display:flex
}
.nav button{flex:1;font-size:9px;color:var(--caption);padding-top:7px}
.nav button b{display:block;font-size:18px;font-weight:400;line-height:25px}
.nav button.active{color:var(--gold-hi)}

/* Fixed-height app shells: the header stays put and the content reaches the real bottom. */
.app-view.active{display:flex;flex-direction:column}
.app-view>.header{flex:0 0 76px}
.app-view>.scroll{flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;padding-bottom:calc(30px + env(safe-area-inset-bottom))}
#settings>.scroll,#dataCenter>.scroll{-webkit-overflow-scrolling:touch}
#settings>.scroll:after,#dataCenter>.scroll:after{content:"";display:block;height:8px}

/* ---------- chat ---------- */
#chat{background:#09090a}
.chat-head{
 height:73px;padding:31px 11px 8px;display:flex;gap:8px;align-items:center;
 background:rgba(8,8,9,.9);backdrop-filter:blur(18px);
 border-bottom:1px solid var(--line);position:relative;z-index:12
}
.back{width:31px;font-size:27px;color:var(--ivory2)}
.chat-head .avatar{width:38px;height:38px;border-radius:13px;border-color:rgba(224,201,148,.28)}
.chat-name{font-size:14px;font-weight:600}.chat-sub{font-size:9px;color:var(--caption);margin-top:2px}
.chat-head .icon-btn{margin-left:auto}
.chat-mode-entrances{margin:16px 16px 8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.chat-mode-entrances button{min-height:87px;padding:13px 14px;border-radius:17px;background:linear-gradient(145deg,rgba(238,218,159,.05),rgba(238,218,159,.012));box-shadow:inset 0 0 0 1px var(--line);display:grid;grid-template-columns:31px 1fr;grid-template-rows:auto auto;text-align:left;align-items:center;column-gap:9px}
.chat-mode-entrances button>span{grid-row:1/3;width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:rgba(210,173,99,.08);color:var(--gold-hi);font:18px/1 Georgia,serif}.chat-mode-entrances button>b{font:17px/1.2 Georgia,"Songti SC",serif;font-weight:400}.chat-mode-entrances button>small{font-size:8px;color:var(--muted);line-height:1.35}
.chat-mode-entrances button.on{background:linear-gradient(145deg,rgba(220,184,110,.15),rgba(87,63,31,.055));box-shadow:inset 0 0 0 1px rgba(224,194,130,.24),0 12px 26px rgba(0,0,0,.18)}
.chat-mode-caption{padding:0 21px 3px;color:#8d8069;font-size:9px;letter-spacing:.35px}.chat-mode-search{padding-top:8px;padding-bottom:12px}
.chat-channel-row{margin:0 16px 9px;cursor:pointer}.chat-channel-row .muted{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-live-badge{display:inline-flex;margin-left:4px;padding:2px 5px;border-radius:999px;background:rgba(199,157,78,.11);color:var(--gold-hi);font-size:7px;font-weight:500;vertical-align:2px}
.chat-entry-picker{margin:0 16px 15px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.chat-entry-picker button{min-height:112px;padding:14px;border-radius:16px;background:linear-gradient(145deg,rgba(238,218,159,.07),rgba(238,218,159,.015));box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;align-items:flex-start;text-align:left}.chat-entry-picker span{font:24px/1 Georgia,serif;color:var(--gold-hi)}.chat-entry-picker b{margin-top:13px;font-size:13px}.chat-entry-picker small{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.5}
.messages{padding:14px 12px 85px;display:flex;flex-direction:column;gap:8px}
.msg{display:flex;align-items:flex-end;gap:7px;max-width:82%}
.msg.me{align-self:flex-end;flex-direction:row-reverse}
.bubble{
 padding:10px 12px;border-radius:15px;border-bottom-left-radius:4px;background:#141416;
 border:1px solid var(--line);line-height:1.6;font-size:14px;white-space:pre-wrap;
 box-shadow:0 4px 14px rgba(0,0,0,.2)
}
.me .bubble{
 background:linear-gradient(150deg,#241a1c,#2c1f21);border-color:rgba(138,67,72,.32);
 border-radius:15px;border-bottom-right-radius:4px;
}
.msg-time{font-size:8px;color:#615c50;white-space:nowrap}
.msg-speaker{font-size:10px;color:var(--gold);opacity:.85;margin:0 2px 3px;letter-spacing:.2px}
.speaker-picker{display:flex;gap:6px;padding:8px 10px 0;overflow-x:auto;scrollbar-width:none}
.speaker-picker::-webkit-scrollbar{display:none}
.chip{
 flex:none;font-size:11px;padding:7px 12px;border-radius:999px;white-space:nowrap;
 background:#131315;border:1px solid var(--line);color:var(--ivory2)
}
.chip.on{background:var(--gold-grad);color:#100c04;border-color:transparent;font-weight:600}
.avatar-stack{display:flex;flex:none}
.avatar-stack .avatar{width:38px;height:38px;border-radius:13px;border-color:rgba(224,201,148,.28)}
.avatar-stack .avatar:not(:first-child){margin-left:-14px}
.composer{
 position:absolute;bottom:0;left:0;right:0;z-index:20;
 padding:9px 10px calc(9px + env(safe-area-inset-bottom));
 display:flex;gap:7px;background:rgba(11,11,12,.95);border-top:1px solid var(--line)
}
.composer input{
 min-width:0;flex:1;height:42px;border:1px solid var(--line);border-radius:17px;
 padding:0 13px;outline:0;background:#131315;color:var(--ivory)
}
.composer input:focus{border-color:rgba(224,201,148,.35);box-shadow:0 0 0 3px rgba(201,163,92,.07)}
.composer-tool{width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:#151416;color:var(--gold-hi);box-shadow:inset 0 0 0 1px rgba(224,201,148,.16);font-size:19px;display:grid;place-items:center}.composer-tool:active{transform:scale(.92)}.composer-tool:disabled{opacity:.36}
.send{
 width:46px;height:42px;border-radius:14px;
 background:var(--gold-grad);background-size:220% 100%;
 color:#100c04;font-size:17px;font-weight:700;
 box-shadow:0 10px 26px rgba(138,108,55,.3);
 transition:background-position .4s,transform .15s;
 display:grid;place-items:center;
}
.send:hover{background-position:100% 50%}
.send:active{transform:scale(.92)}

/* ---------- feed ---------- */
.feed{padding:15px 16px}.feed-card{padding:15px;margin-bottom:12px}
.feed-top{display:flex;align-items:center;gap:10px}.feed-top .avatar{width:43px;height:43px;border-radius:14px}
.feed-text{font-size:13px;line-height:1.65;margin:13px 2px;color:var(--ivory2)}
.feed-actions{border-top:1px solid var(--line);padding-top:10px;display:flex;gap:25px;color:var(--caption);font-size:11px}
.feed-actions span{transition:color .18s,transform .15s;display:inline-block}
.feed-actions span:active{color:var(--gold-hi);transform:scale(1.12)}

/* ---------- settings / engine ---------- */
.group{margin:16px}
.group-title{
 display:flex;align-items:center;gap:8px;
 font-size:9px;color:var(--gold);opacity:.9;margin:0 0 7px 5px;letter-spacing:1.8px;font-weight:600
}
.group-title:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,var(--line),transparent)}
.setting{
 background:var(--panel);min-height:51px;padding:12px 14px;display:flex;align-items:center;
 border-bottom:1px solid var(--line2);font-size:12px;transition:background-color .18s
}
.setting[onclick]{cursor:pointer}
.setting[onclick]:active{background:var(--panel2)}
.setting:first-of-type{border-radius:15px 15px 0 0}.setting:last-of-type{border-radius:0 0 15px 15px;border-bottom:0}
.setting input,.setting select{
 margin-left:auto;width:55%;text-align:right;border:1px solid var(--line);
 border-radius:10px;padding:8px;background:#0d0d0f;color:var(--ivory);outline:0
}
.setting select{-webkit-appearance:none;appearance:none;text-align:left}
.setting input:focus,.setting select:focus{border-color:rgba(224,201,148,.35)}
.setting input[type=checkbox]{width:18px;height:18px;margin-left:auto;accent-color:var(--gold);padding:0}
.primary{
 background:var(--gold-grad);background-size:220% 100%;
 color:#110d05;font-weight:600;letter-spacing:.2px;
 padding:10px 14px;border-radius:12px;
 box-shadow:0 12px 28px rgba(138,108,55,.28);
 transition:background-position .4s;
}
.primary:hover{background-position:100% 50%}
.danger{color:#cf8488}
.note{font-size:11px;line-height:1.85;color:#867f70}
.engine-tabs{
 display:flex;gap:0;margin:15px 16px 2px;border-bottom:1px solid var(--line)
}
.engine-tabs button{
 padding:11px 13px;color:var(--caption);font-size:10px;letter-spacing:.3px;
 border-bottom:1px solid transparent;transition:color .2s,border-color .2s
}
.engine-tabs button.on{color:var(--gold-hi);border-bottom-color:var(--gold)}
.engine-tabs button:not(.on):hover{color:var(--ivory2)}

/* ---------- forms (modal fields, used across create/edit sheets) ---------- */
.field{padding:0 16px 14px}
.field label{
 display:block;font-size:9px;letter-spacing:1.4px;color:var(--gold);
 opacity:.85;margin-bottom:7px;font-weight:600;text-transform:uppercase
}
.field input,.field textarea,.field select{
 width:100%;border:1px solid var(--line);border-radius:12px;
 background:var(--panel);color:var(--ivory);padding:11px 12px;outline:0;
 font-size:13px;line-height:1.5
}
.field textarea{min-height:88px;resize:vertical;font-family:inherit}
.field select{appearance:none;-webkit-appearance:none;
 background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
 background-position:calc(100% - 18px) center,calc(100% - 13px) center;
 background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(224,201,148,.4);box-shadow:0 0 0 3px rgba(201,163,92,.08)}
.form-actions{
 display:flex;gap:9px;padding:6px 16px 4px;
}
.form-actions button{
 flex:1;height:44px;border-radius:12px;font-size:13px;
 border:1px solid var(--line);color:var(--ivory2)
}
.form-actions button.primary{border:0}
.form-actions button.danger{border-color:rgba(138,67,72,.4);color:#cf8488}

/* ---------- engine flow / pill / preview / arrow ---------- */
.pill{
 font-size:8.5px;letter-spacing:.6px;color:var(--gold-hi);
 background:rgba(201,163,92,.1);border:1px solid rgba(201,163,92,.25);
 padding:3px 9px;border-radius:20px;white-space:nowrap
}
.module{padding:13px 15px;border-top:1px solid var(--line2)}
.module:first-child{border-top:0}
.module-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.module-head b{font-size:13px;font-weight:600;color:var(--ivory)}
.engine-flow{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:14px 0 4px}
.flowbox{
 padding:12px 11px;border:1px solid var(--line);border-radius:13px;
 background:rgba(238,218,159,.025);
}
.flowbox b{display:block;font-size:11px;color:var(--gold-hi);margin-bottom:4px;font-weight:600}
.flowbox span{font-size:10.5px;color:var(--muted);line-height:1.55}
.preview{
 margin-top:12px;padding:13px;border-radius:13px;border:1px solid var(--line2);
 background:#0d0d0f;color:#b6afa0;font-size:11.5px;line-height:1.75;
 white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto;scrollbar-width:none;
 font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace
}
.preview::-webkit-scrollbar{display:none}
.arrow{
 margin-top:12px;text-align:center;font-size:10.5px;letter-spacing:1px;color:var(--gold);opacity:.8
}
.engine-card h3{
 margin:0;padding:15px 15px 0;font-family:Georgia,"Songti SC",serif;
 font-size:15px;font-weight:400;color:var(--ivory);letter-spacing:.4px
}
.engine-card p{margin:8px 15px 0;font-size:11.5px;line-height:1.75;color:var(--muted)}
.engine-card > .primary,.engine-card > button.primary{margin-left:15px;margin-right:15px;width:calc(100% - 30px)}
.engine-card{padding-bottom:15px;margin:0 16px 14px}
#dataCenter .engine-card:first-child{margin-top:16px}
.data-action{width:calc(100% - 30px);margin:14px 15px 9px!important}

/* ---------- about sheet (premium) ---------- */
.about-sheet{padding:10px 0 6px;text-align:center}
.about-icon{
 width:72px;height:72px;margin:6px auto 0;border-radius:20px;
 background:linear-gradient(145deg,rgba(238,218,159,.08),rgba(238,218,159,.02));
 border:1px solid rgba(224,201,148,.18);
 box-shadow:0 12px 30px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.06);
 display:grid;place-items:center;font:36px/1 Georgia,serif;
 background-clip:padding-box;
 -webkit-background-clip:text;
 background:var(--gold-grad);
 -webkit-background-clip:text;
 background-clip:text;
 color:transparent;
 position:relative;
}
.about-icon:before{
 content:"";position:absolute;inset:0;border-radius:20px;
 background:var(--glass-sheen);opacity:.4;pointer-events:none;
}
.about-title{
 margin-top:16px;font:22px/1 Georgia,"Songti SC",serif;
 letter-spacing:4px;color:var(--ivory);
}
.about-version{
 margin-top:6px;font-size:9px;letter-spacing:1.5px;color:var(--caption);
}
.about-divider{
 width:40px;height:1px;margin:18px auto;
 background:linear-gradient(90deg,transparent,var(--gold),transparent);
 opacity:.5;
}
.about-desc{
 text-align:left;padding:0 18px;font-size:11.5px;line-height:1.9;color:var(--muted);
}
.about-desc p{margin:0 0 8px}
.about-meta{
 margin:14px 16px 4px;
 background:linear-gradient(145deg,rgba(238,218,159,.04),rgba(238,218,159,.01));
 border:1px solid var(--line);border-radius:14px;
 overflow:hidden;
}
.meta-row{
 display:flex;justify-content:space-between;align-items:center;
 padding:11px 14px;font-size:11.5px;color:var(--ivory2);
 border-bottom:1px solid var(--line2);
}
.meta-row:last-child{border-bottom:0}
.meta-row span:first-child{color:var(--caption);font-size:11px}
.meta-row span:last-child{color:var(--ivory);font-weight:500;letter-spacing:.3px}

/* ---------- modal / sheet / toast ---------- */
.modal{
 position:absolute;inset:0;z-index:60;display:none;
 background:rgba(4,4,5,.6);backdrop-filter:blur(3px);
}
.modal.show{display:block}
.sheet{
 position:absolute;left:0;right:0;bottom:0;max-height:86%;
 background:linear-gradient(180deg,#111113,#0c0c0e);
 border:1px solid var(--line);border-bottom:0;
 border-radius:24px 24px 0 0;overflow:auto;
 box-shadow:0 -20px 60px rgba(0,0,0,.55),inset 0 1px rgba(238,218,159,.04);
 padding-bottom:calc(20px + env(safe-area-inset-bottom));
 animation:sheetUp .28s cubic-bezier(.2,.9,.25,1);
 scrollbar-width:none;
}
.sheet::-webkit-scrollbar{display:none}
@keyframes sheetUp{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}
.handle{width:38px;height:4px;border-radius:3px;background:rgba(224,201,148,.3);margin:12px auto 4px}
#modalContent{padding:6px 0 4px}
#modalContent h2{
 margin:6px 16px 16px;font-family:Georgia,"Times New Roman","Songti SC",serif;
 font-size:20px;font-weight:400;letter-spacing:.5px;color:var(--ivory);
 padding-bottom:12px;border-bottom:1px solid var(--line2);
}
.toast{
 position:absolute;left:50%;bottom:100px;z-index:80;
 transform:translateX(-50%) translateY(8px);opacity:0;pointer-events:none;
 background:rgba(17,17,19,.94);border:1px solid var(--line);
 color:var(--ivory);font-size:12.5px;font-weight:500;letter-spacing:.2px;padding:11px 18px;border-radius:30px;
 box-shadow:0 18px 40px rgba(0,0,0,.4);backdrop-filter:blur(10px);
 transition:opacity .25s,transform .25s;white-space:nowrap
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}


/* ---------- V15 mobile chat layout fix ---------- */
#chat.view.active{display:flex;flex-direction:column;}
#chat .chat-head{flex:0 0 73px;}
#chat > .scroll{flex:1 1 auto;min-height:0;height:auto;overflow:auto;padding-bottom:0;}
#chat .messages{min-height:100%;padding-bottom:18px;}
#chat .composer{position:relative;left:auto;right:auto;bottom:auto;flex:0 0 auto;padding-bottom:calc(9px + env(safe-area-inset-bottom));}
#chat .speaker-picker{flex:0 0 auto;}
#chat.has-custom-bg{background-size:cover;background-position:center;background-repeat:no-repeat;}
#chat.has-custom-bg .chat-head{background:rgba(8,8,9,.72);}
#chat.has-custom-bg .composer{background:rgba(11,11,12,.78);}
.p12-home.has-custom-bg{background-size:cover;background-position:center;background-repeat:no-repeat;}
/* V30 functional additions */
.error-detail{max-height:45vh;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#141418;color:#ffd7d7;padding:14px;border-radius:12px;font-size:11px;line-height:1.55}
@media(prefers-reduced-motion:reduce){.boot-grid,.boot-seal:before,.boot-seal:after,.boot-suit,.boot-flare,.island-pulse{animation:none!important}.p12-island{transition-duration:.01ms!important}}

/* =========================================================
   V30 · PAGED HOME GRID
   Four-column occupancy grid, removable decorative widgets,
   full-image application icons and mobile-style page editing.
   ========================================================= */
:root{--ui-font:-apple-system,BlinkMacSystemFont,"Noto Sans SC","PingFang SC","Segoe UI",sans-serif}
html,body,button,input,textarea,select{font-family:var(--ui-font)}
.font-custom .header h1,.font-custom .p12-brand b,.font-custom .p12-clock strong,.font-custom .p12-editor h2,.font-custom #modalContent h2,.font-custom .boot-name,.font-custom .lock-time,.font-custom .lock-title{font-family:var(--ui-font)}
#home{background:#090808}
.p12-home{
 background:
  radial-gradient(ellipse at 12% 4%,rgba(198,153,72,.14),transparent 27%),
  radial-gradient(ellipse at 88% 68%,rgba(139,107,54,.07),transparent 34%),
  linear-gradient(142deg,#19160b 0%,#080907 48%,#111008 100%);
}
.p12-home:after{opacity:.16;background:repeating-linear-gradient(125deg,transparent 0 104px,rgba(202,164,91,.22) 105px,transparent 106px),repeating-linear-gradient(0deg,transparent 0 126px,rgba(202,164,91,.08) 127px,transparent 128px)}
.home-clockline{position:absolute;z-index:4;top:48px;left:18px;right:18px;height:101px;display:grid;grid-template-columns:1fr auto;align-items:end;pointer-events:none}
.home-clockline .p12-clock{grid-column:1;grid-row:1;margin:0;text-align:left;align-self:end}
.home-clockline .p12-clock strong{font-size:64px;line-height:.84;letter-spacing:-4px;font-weight:300;text-shadow:0 12px 30px rgba(0,0,0,.38)}
.home-clockline .p12-clock span{font-size:10px;margin:8px 0 0 3px;letter-spacing:.7px;color:#d3c1a4}
.home-clockline .p12-brand{grid-column:2;grid-row:1;margin:0 0 3px;text-align:right;align-self:end}
.home-clockline .p12-brand b{display:block;font-size:15px;letter-spacing:4px;color:#f0dfc2}
.home-clockline .p12-brand small{font-size:6px;letter-spacing:1.8px;margin-top:5px;color:#b49361}
.home-clock-profile{position:absolute;right:0;top:-4px;width:38px;height:38px;border-radius:14px;border:1px solid rgba(244,215,166,.25);background:rgba(20,14,15,.44);box-shadow:0 10px 30px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(16px);overflow:hidden;display:grid;place-items:center;color:#d8b77a;font:18px/1 Georgia,serif;pointer-events:auto}
.home-clock-profile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p12-pages{inset:165px 0 121px;touch-action:pan-y;overflow:hidden}
.p12-page.home-grid-page{inset:0;padding:0 18px 5px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:11px;opacity:0;transform:translateX(38px);pointer-events:none;isolation:isolate}
.p12-page.home-grid-page.active{opacity:1;transform:none;pointer-events:auto}
.home-grid-guide{position:absolute;inset:0 18px 5px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:11px;z-index:0;pointer-events:none}
.home-grid-guide i{border:1px dashed rgba(231,194,135,.19);border-radius:12px;background:rgba(227,194,139,.025);box-shadow:inset 0 1px rgba(255,255,255,.025)}
.home-item{position:relative;z-index:1;min-width:0;min-height:0;margin:0;padding:0;border:0;touch-action:none;user-select:none;-webkit-user-select:none}
.home-app{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:transparent;overflow:visible}
.home-app-icon{display:grid;place-items:center;width:min(62px,86%);aspect-ratio:1;border-radius:11px;overflow:hidden;background:linear-gradient(145deg,rgba(53,43,25,.94),rgba(12,12,10,.98));border:1px solid rgba(220,180,105,.3);box-shadow:0 11px 23px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.075);color:#eac987;font:24px/1 Georgia,serif;backdrop-filter:blur(16px);transition:transform .18s ease,filter .18s ease}
.home-app-icon img{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.home-app-image{width:min(62px,86%);border:0;border-radius:11px;background:transparent;box-shadow:none;backdrop-filter:none;overflow:hidden}
.home-app-image img{transform:none;transform-origin:center;border-radius:inherit}
.home-app-glyph{position:relative;background:radial-gradient(circle at 24% 15%,rgba(246,218,164,.13),transparent 31%),repeating-linear-gradient(90deg,rgba(244,217,165,.018) 0 1px,transparent 1px 4px),linear-gradient(145deg,#30271a,#0d0e0b 72%);border-color:rgba(219,179,105,.34);text-shadow:0 2px 15px rgba(239,199,127,.28)}
.home-app-glyph:before{content:attr(data-rank);position:absolute;left:7px;top:6px;color:#e1bd79;font:10px/1 Georgia,serif;letter-spacing:.2px}
.home-app-glyph:after{content:attr(data-suit);position:absolute;left:7.5px;top:17px;color:#ba9252;font:7px/1 Georgia,serif}
.home-app-glyph b{font:400 22px/1 Georgia,serif;color:#e7c581;filter:drop-shadow(0 4px 9px rgba(0,0,0,.5))}
.home-app-glyph svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px rgba(0,0,0,.46))}
.home-app-glyph svg .icon-fill{fill:currentColor;stroke:none}
.home-app-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#f4eadc;text-shadow:0 2px 6px #000,0 0 10px #000;letter-spacing:.3px}
.home-app:active .home-app-icon{transform:scale(.9);filter:brightness(.88)}
.home-widget{margin:2px;border:1px solid rgba(216,174,100,.34);border-radius:24px;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--widget-color) 34%,rgba(18,16,11,.84)),rgba(8,9,7,.78));box-shadow:0 17px 34px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(22px) saturate(1.08)}
.home-widget:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.18),transparent 25% 62%,rgba(255,214,155,.07)),linear-gradient(transparent,rgba(0,0,0,.22));border-radius:inherit}
.home-widget-photo{padding:9px}
.home-photo-image{position:absolute;z-index:1;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:cover;border-radius:17px;filter:saturate(.82) brightness(.78) contrast(1.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.home-photo-caption{position:absolute;z-index:3;left:14px;right:14px;bottom:13px;display:flex;justify-content:space-between;align-items:center;color:#e7d6b9;font-size:8px;letter-spacing:.3px;text-shadow:0 2px 7px #000}.home-photo-caption em{font-style:normal;color:#c9ae7b}
.home-photo-empty{position:absolute;z-index:1;inset:9px;border:1px solid rgba(218,178,108,.24);border-radius:17px;background:linear-gradient(145deg,rgba(42,35,23,.44),rgba(9,10,8,.64));color:#d8c49d;text-align:left}
.home-photo-empty:before,.home-photo-empty:after{content:"";position:absolute;width:20px;height:20px;border-color:rgba(222,184,112,.58)}
.home-photo-empty:before{left:10px;top:10px;border-left:1px solid;border-top:1px solid}.home-photo-empty:after{right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid}
.home-photo-code{position:absolute;left:12px;top:13px;font:8px/1.1 Georgia,serif;letter-spacing:1.1px;color:#ddc89c}
.home-photo-action{position:absolute;left:14px;right:14px;top:46px;display:flex;justify-content:space-between;align-items:center;font-size:9px}.home-photo-action b{font-weight:400}.home-photo-action em{font-style:normal;color:#b89d6c}
.home-widget-cd{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;background:radial-gradient(circle at 53% 47%,rgba(194,151,79,.13),transparent 47%),linear-gradient(145deg,color-mix(in srgb,var(--widget-color) 26%,#17150f),#080907)}
.home-cd-head{position:absolute;z-index:3;top:12px;left:14px;font:8px/1 Georgia,serif;letter-spacing:1.3px;color:#ceb27f}.home-cd-head i{font-style:normal;color:#d7ad64}
.home-record{position:relative;z-index:1;display:grid;place-items:center;width:min(112px,58%);aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#080909 0 4px,#191717 5px 7px,#070808 8px 11px);border:1px solid rgba(221,181,112,.36);box-shadow:0 12px 26px rgba(0,0,0,.56),inset 0 0 0 7px rgba(255,255,255,.025)}
.home-record:after{content:"";position:absolute;width:13%;aspect-ratio:1;border-radius:50%;background:#e1bb79;border:3px solid #211619;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.home-record img{position:absolute;inset:31%;width:38%;height:38%;border-radius:50%;object-fit:cover}
.home-record i{font:18px Georgia,serif;color:#e8c485}
.home-cd-foot{position:absolute;z-index:3;left:14px;right:14px;bottom:11px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;color:#bea575}.home-cd-foot b{width:23px;height:23px;border:1px solid rgba(216,177,108,.35);border-radius:50%;display:grid;place-items:center;font:8px Georgia,serif}.home-cd-foot small{font-size:6px;letter-spacing:1.2px}.home-cd-foot em{font-style:normal;font-size:7px;color:#d5c09a}
.home-record.is-playing{animation:recordSpin 4s linear infinite}
@keyframes recordSpin{to{transform:rotate(360deg)}}
.home-edit-badge{display:none;position:absolute;z-index:8;right:-5px;top:-5px;width:20px;height:20px;border-radius:50%;background:#171113;border:1px solid rgba(244,213,160,.6);color:#f0d4a4;font:13px/18px sans-serif;box-shadow:0 3px 10px rgba(0,0,0,.5)}
.home-item.is-editing .home-edit-badge{display:block}.home-item.is-editing{animation:homeWiggle .24s ease-in-out infinite alternate}.home-item.is-dragging{z-index:20;animation:none;opacity:.88;filter:drop-shadow(0 20px 18px rgba(0,0,0,.45))}
@keyframes homeWiggle{from{rotate:-.35deg}to{rotate:.35deg}}
.p12-dots{bottom:99px;height:13px;display:flex;align-items:center;justify-content:center;gap:7px;letter-spacing:0}
.p12-dots button{width:5px;height:5px;padding:0;border-radius:50%;background:rgba(245,226,195,.32);box-shadow:0 1px 5px #000}.p12-dots button.on{width:16px;border-radius:5px;background:#ead0a0}
.home-arrange{display:none}
.p12-dock{left:17px;right:17px;bottom:21px;height:68px;border-radius:23px;border:1px solid rgba(209,169,96,.3);background:linear-gradient(145deg,rgba(35,32,22,.72),rgba(10,11,9,.86));backdrop-filter:blur(22px) saturate(1.05);box-shadow:0 14px 32px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.06);display:grid;grid-template-columns:repeat(4,1fr);z-index:8}
.p12-dock button{position:relative;height:100%;display:grid;place-items:center;background:transparent;border:0;color:#e4c88f;padding:0}
.p12-dock button:active .dock-icon{transform:scale(.9)}
.dock-icon{width:46px;height:46px;border-radius:14px;background:radial-gradient(circle at 35% 22%,rgba(227,191,121,.09),transparent 45%),rgba(18,18,14,.78);display:grid;place-items:center;transition:transform .16s ease;box-shadow:inset 0 1px rgba(255,255,255,.035)}
.dock-icon svg{width:25px;height:25px;fill:none;stroke:#e7cc94;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.p12-dock button>i{position:absolute;bottom:5px;right:17px;font:5px/1 Georgia,serif;color:#8f7448}
.p12-gesture{bottom:8px;width:104px;height:4px;background:rgba(247,236,216,.82)}
.p12-editor{overflow-y:auto;padding:54px 20px calc(35px + env(safe-area-inset-bottom));background:rgba(13,10,11,.81);backdrop-filter:blur(30px) saturate(1.25)}
.p12-editor h2{margin:9px 0 6px}.p12-editor p{max-width:270px;margin:0 auto 17px}.p12-editor-row{background:linear-gradient(145deg,rgba(46,31,30,.68),rgba(14,12,14,.72));backdrop-filter:blur(18px)}
.home-picker,.home-app-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px 12px}
.home-picker button,.home-app-picker button{min-height:88px;padding:14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,rgba(238,218,159,.07),rgba(238,218,159,.02));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}
.home-picker b,.home-app-picker b{font-size:13px}.home-picker span,.home-app-picker span{font-size:10px;color:var(--muted)}.home-app-picker span{font:24px Georgia,serif;color:var(--gold-hi)}
.home-icon-manager{margin:0 16px 12px;border:1px solid var(--line);border-radius:16px;overflow:hidden}.home-icon-manager>div{min-height:52px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line2)}.home-icon-manager>div:last-child{border:0}.home-icon-manager span{display:flex;gap:6px}.home-icon-manager button{border:1px solid var(--line);border-radius:9px;padding:7px 9px;color:var(--gold-hi)}
.summary-picker{margin:0 16px 12px;display:flex;flex-direction:column;gap:8px}.summary-picker button{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:var(--panel);display:flex;align-items:center;justify-content:space-between}.summary-picker span{font-size:10px;color:var(--muted)}
.memory-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.form-actions{flex-wrap:wrap}.form-actions button{min-width:72px}
@media(max-height:720px){.home-clockline{top:43px;height:87px}.home-clockline .p12-clock strong{font-size:52px}.p12-pages{inset:142px 0 112px}.p12-page.home-grid-page{gap:8px}.home-grid-guide{gap:8px}.home-app-icon{width:min(54px,82%);border-radius:10px}.home-app-image{width:min(60px,88%)}.home-app-label{font-size:8px}.home-widget{border-radius:20px}.p12-dock{height:63px}.dock-icon{width:42px;height:42px}.p12-dots{bottom:93px}}
@media(max-width:360px){.home-clockline .p12-clock strong{font-size:54px}.p12-page.home-grid-page{padding-left:12px;padding-right:12px;gap:8px}.home-grid-guide{left:12px;right:12px;gap:8px}.home-app-icon{border-radius:10px}.home-widget{border-radius:20px}}
@media(prefers-reduced-motion:reduce){.home-item.is-editing,.home-record.is-playing{animation:none!important}}

/* V30 · fixed-proportion home stage
   Full-screen height becomes intentional atmosphere instead of stretching widgets. */
.p12-home{
 --home-stage-top:152px;
 --home-stage-bottom:106px;
 --home-grid-height:min(470px,calc(100% - var(--home-stage-top) - var(--home-stage-bottom)));
 --home-grid-offset:calc((100% - var(--home-stage-top) - var(--home-stage-bottom) - var(--home-grid-height))/2);
}
.p12-pages{
 inset:auto 0 auto;
 top:calc(var(--home-stage-top) + var(--home-grid-offset));
 height:var(--home-grid-height);
}
.p12-dots{
 bottom:auto;
 top:calc(var(--home-stage-top) + var(--home-grid-offset) + var(--home-grid-height) + 8px);
}

/* =========================================================
   V38 · CHARACTER STUDIO / USER PERSONAS / SHARED MODE / BACKGROUND RELAY
   ========================================================= */
.character-studio-hero{
 margin:17px 16px 8px;padding:20px;border-radius:22px;
 background:radial-gradient(circle at 88% 5%,rgba(224,190,124,.13),transparent 36%),linear-gradient(145deg,#211a12,#101012 72%);
 box-shadow:0 20px 44px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.055)
}
.character-studio-hero>small,.persona-hero>small,.editor-hero small{font:7px/1 Georgia,serif;letter-spacing:2.8px;color:var(--gold)}
.character-studio-hero h2,.persona-hero h2{margin:8px 0 6px;font:25px/1.15 Georgia,"Songti SC",serif;font-weight:400;letter-spacing:1px}
.character-studio-hero p,.persona-hero p{margin:0;color:var(--muted);font-size:11px;line-height:1.75}
.character-studio-stats{display:flex;gap:8px;margin-top:15px}.character-studio-stats span{padding:5px 9px;border-radius:999px;background:rgba(230,202,145,.07);color:#cdb886;font-size:9px;letter-spacing:.4px}
.character-studio-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:15px}.character-studio-actions button{height:39px;border:1px solid var(--line);border-radius:12px;color:var(--ivory2);font-size:11px}.character-studio-actions .primary{grid-column:1/-1;border:0}
.character-search{padding-top:9px;padding-bottom:12px}.character-list-row{margin:0 16px 9px;cursor:pointer}.character-list-copy{flex:1;min-width:0}.character-list-copy .muted{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.studio-view{background:radial-gradient(circle at 50% -10%,rgba(166,124,57,.09),transparent 32%),var(--black)}
.editor-header{align-items:flex-end}.editor-header h1{flex:1;text-align:center;font-size:19px}.editor-header .back{height:34px}.editor-save{min-width:48px;height:32px;border-radius:11px;background:rgba(215,181,112,.11);color:var(--gold-hi);font-size:11px}
.editor-hero{margin:15px 16px 12px;padding:16px;border-radius:20px;background:linear-gradient(145deg,rgba(238,218,159,.075),rgba(238,218,159,.018));display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:13px;box-shadow:0 16px 36px rgba(0,0,0,.25)}
.editor-avatar{width:64px;height:64px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#342819,#101012);color:var(--gold-hi);font:31px/1 Georgia,serif;box-shadow:inset 0 0 0 1px rgba(230,197,132,.18),0 10px 22px rgba(0,0,0,.32)}.editor-avatar img{width:100%;height:100%;object-fit:cover}
.editor-hero h2{margin:5px 0 3px;font:20px/1.15 Georgia,"Songti SC",serif;font-weight:400}.editor-hero p{margin:0;font-size:9px;line-height:1.5;color:var(--muted)}.editor-hero>button{padding:8px 9px;border-radius:10px;border:1px solid var(--line);font-size:9px;color:var(--gold-hi)}
.editor-tabs{position:sticky;top:0;z-index:8;margin:0 16px 14px;padding:5px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border-radius:14px;background:rgba(14,14,16,.92);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.26)}.editor-tabs button{height:36px;border-radius:10px;color:var(--caption);font-size:10px}.editor-tabs button.on{color:#151007;background:var(--gold-grad);font-weight:650}
.editor-page{padding:0 0 calc(28px + env(safe-area-inset-bottom))}.editor-section-title{margin:0 16px 17px;display:flex;align-items:center;gap:10px}.editor-section-title>span{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:rgba(201,163,92,.1);color:var(--gold-hi);font:10px Georgia,serif}.editor-section-title b{display:block;font:16px/1.2 Georgia,"Songti SC",serif;font-weight:400}.editor-section-title small{display:block;margin-top:4px;color:var(--muted);font-size:9px}
.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.editor-grid .field{min-width:0}.editor-grid .editor-wide{grid-column:1/-1}.editor-grid textarea{min-height:105px}.editor-grid textarea.editor-tall{min-height:145px}
.editor-inline-actions{display:flex;gap:8px;padding:0 16px 16px}.editor-inline-actions button{flex:1;height:41px;border:1px solid var(--line);border-radius:12px;color:var(--gold-hi);font-size:11px;background:rgba(238,218,159,.025)}
.binding-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:1px 16px 16px}.binding-cards button{min-height:104px;padding:13px;border-radius:16px;background:linear-gradient(145deg,rgba(238,218,159,.055),rgba(238,218,159,.012));display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;box-shadow:inset 0 0 0 1px var(--line)}.binding-cards button:nth-child(3){grid-column:1/-1;min-height:82px}.binding-cards button:disabled{opacity:.42}.binding-cards span{font:22px/1 Georgia,serif;color:var(--gold-hi)}.binding-cards b{margin-top:10px;font-size:12px}.binding-cards small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}
.editor-danger-zone{margin:4px 16px 0;padding:13px;border-radius:15px;background:rgba(98,35,40,.09);display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center}.editor-danger-zone>b{font-size:10px;color:#bd989a}.editor-danger-zone button{height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--line);font-size:10px}.editor-danger-zone button.danger{border-color:rgba(156,67,73,.35)}
.persona-hero{margin:17px 16px 12px;padding:20px;border-radius:22px;background:radial-gradient(circle at 88% 7%,rgba(202,157,82,.15),transparent 35%),linear-gradient(145deg,#241b13,#101012 74%);box-shadow:0 20px 42px rgba(0,0,0,.3)}.persona-hero>div{margin-top:18px;padding-top:13px;border-top:1px solid var(--line2);display:flex;justify-content:space-between;align-items:center}.persona-hero>div b{font:16px Georgia,serif;font-weight:400}.persona-hero>div span{font-size:9px;color:var(--gold)}
.persona-list{padding:0 16px 25px;display:flex;flex-direction:column;gap:9px}.persona-card{padding:13px;border-radius:17px;background:linear-gradient(145deg,rgba(238,218,159,.045),rgba(238,218,159,.012));display:grid;grid-template-columns:48px 1fr auto;gap:11px;align-items:center;box-shadow:inset 0 0 0 1px var(--line)}.persona-card.is-active{background:linear-gradient(145deg,rgba(201,163,92,.105),rgba(238,218,159,.018))}.persona-card .avatar{width:48px;height:48px}.persona-card>div{min-width:0}.persona-card b{display:block;font-size:13px}.persona-card small,.persona-card em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-card small{margin-top:4px;color:var(--muted);font-size:9px}.persona-card em{margin-top:5px;color:#7b725f;font-size:8px;font-style:normal}.persona-card>button{padding:7px 8px;border-radius:9px;border:1px solid var(--line);color:var(--gold-hi);font-size:8px}
.persona-editor-hero{margin-bottom:20px}
.persona-tabs{grid-template-columns:repeat(3,1fr)}
.world-targets .target-checks{display:flex;flex-direction:column;gap:7px;max-height:190px;overflow:auto}.target-checks>label{padding:9px 10px;border-radius:11px;background:var(--panel);display:flex;align-items:center;gap:9px;color:var(--ivory2);font-size:11px}.target-checks input{width:17px;height:17px;padding:0;accent-color:var(--gold)}
.world-card{padding:15px;margin:0 0 10px;cursor:pointer}.world-card-meta{display:flex;gap:6px;margin:7px 0}.world-card-meta span{font-size:8px;color:var(--gold-hi);padding:4px 7px;border-radius:999px;background:rgba(201,163,92,.08)}.world-card>.muted{margin-top:5px}.world-card-copy{line-height:1.7;margin-top:9px!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
@media(max-width:360px){.editor-hero{grid-template-columns:56px 1fr}.editor-avatar{width:56px;height:56px}.editor-hero>button{grid-column:1/-1}.editor-grid{grid-template-columns:1fr}.editor-grid .field{grid-column:1}.binding-cards{grid-template-columns:1fr}.binding-cards button:nth-child(3){grid-column:1}.character-studio-actions{grid-template-columns:1fr}.character-studio-actions .primary{grid-column:1}.editor-danger-zone{grid-template-columns:1fr 1fr}.editor-danger-zone>b{grid-column:1/-1}}
@media(max-height:720px){
 .p12-home{--home-stage-top:142px;--home-stage-bottom:112px}
}

/* =========================================================
   V38 · SEOUL MONO / SHARED CHAT
   Black, white and graphite home; compact messenger layout.
   ========================================================= */
:root{
 --black:#09090a;--black2:#0e0e10;--panel:#151517;--panel2:#1b1b1e;
 --ivory:#f3f3f0;--ivory2:#d8d8d3;--muted:#969696;--dim:#707070;
 --caption:#858585;--whisper:#626262;--gold:#c9c9c4;--gold-hi:#f4f4ef;
 --gold-lo:#767676;--wine:#56565b;--velvet:#121214;--velvet2:#19191c;
 --line:rgba(255,255,255,.12);--line2:rgba(255,255,255,.065);
 --gold-grad:linear-gradient(112deg,#777 0%,#f4f4ef 31%,#b8b8b4 58%,#fff 76%,#696969 100%);
}
body{background:radial-gradient(circle at 50% -8%,#37373a 0,transparent 36%),#0a0a0b}
::selection{background:rgba(255,255,255,.22);color:#fff}

/* Home wallpaper and spatial rhythm */
#home{background:#08080a}
.p12-home{
 --home-stage-top:150px;--home-stage-bottom:108px;
 --home-grid-height:min(458px,calc(100% - var(--home-stage-top) - var(--home-stage-bottom)));
 background:
  radial-gradient(ellipse at 15% 4%,rgba(255,255,255,.16),transparent 26%),
  radial-gradient(ellipse at 94% 73%,rgba(255,255,255,.07),transparent 31%),
  linear-gradient(154deg,#070708 0%,#242426 43%,#0b0b0d 72%,#030304 100%);
}
.p12-home:before{
 content:"POKEJI  /  SEOUL MONO  /  35";position:absolute;z-index:1;left:-62px;top:51%;
 transform:rotate(-90deg);font:6px/1 var(--ui-font);letter-spacing:3.4px;color:rgba(255,255,255,.26);
 pointer-events:none;
}
.p12-home:after{
 opacity:.32;background:
  linear-gradient(121deg,transparent 0 42%,rgba(255,255,255,.10) 42.2%,transparent 42.5% 66%,rgba(255,255,255,.055) 66.2%,transparent 66.5%),
  repeating-linear-gradient(90deg,transparent 0 83px,rgba(255,255,255,.026) 84px,transparent 85px),
  linear-gradient(180deg,rgba(255,255,255,.035),transparent 36%,rgba(0,0,0,.18));
}
.home-clockline{top:49px;left:21px;right:21px;height:96px}
.home-clockline .p12-clock strong{font-family:var(--ui-font);font-size:62px;font-weight:200;letter-spacing:-5px;color:#f4f4f1;text-shadow:0 14px 35px rgba(0,0,0,.45)}
.home-clockline .p12-clock span{color:#c9c9c4;letter-spacing:1.1px}
.home-clockline .p12-brand b{font-family:var(--ui-font);font-size:13px;font-weight:500;letter-spacing:5px;color:#f1f1ee}
.home-clockline .p12-brand small{color:#9b9b9b;letter-spacing:2.2px}
.home-clock-profile{border:0;border-radius:12px;background:rgba(12,12,14,.55);box-shadow:0 12px 32px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.12);color:#efefeb}
.p12-island{border-color:#202023;box-shadow:0 7px 22px rgba(0,0,0,.76),inset 0 1px rgba(255,255,255,.055)}
.p12-page.home-grid-page{padding:1px 20px 5px;gap:10px 11px}
.home-grid-guide{left:20px;right:20px;gap:10px 11px}.home-grid-guide i{border-color:rgba(255,255,255,.17);background:rgba(255,255,255,.025)}
.home-app{gap:6px}
.home-app-icon{width:min(61px,86%);border-radius:12px;background:linear-gradient(145deg,#29292c,#0b0b0d);border:0;box-shadow:0 11px 25px rgba(0,0,0,.48),inset 0 0 0 1px rgba(255,255,255,.13),inset 0 1px rgba(255,255,255,.10);color:#ededE8}
.home-app-image{width:min(61px,86%);background:transparent;box-shadow:0 10px 23px rgba(0,0,0,.34);overflow:hidden}
.home-app-image img{object-fit:cover;border-radius:12px}
.home-app-glyph{background:radial-gradient(circle at 28% 12%,rgba(255,255,255,.14),transparent 32%),repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 4px),linear-gradient(145deg,#303034,#0b0b0d 75%);border:0;color:#efefeb;text-shadow:none}
.home-app-glyph:before{color:#f0f0ed}.home-app-glyph:after{color:#a7a7a3}.home-app-glyph b{color:#eeeeea;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}
.home-app-label{color:#f3f3ef;font-size:9px;letter-spacing:.45px}
.home-widget{margin:2px;border:0;border-radius:18px;background:linear-gradient(145deg,rgba(70,70,74,.86),rgba(11,11,13,.88));box-shadow:0 18px 40px rgba(0,0,0,.48),inset 0 0 0 1px rgba(255,255,255,.12),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(24px) saturate(.72)}
.home-widget:before{background:linear-gradient(128deg,rgba(255,255,255,.13),transparent 24% 69%,rgba(255,255,255,.035)),linear-gradient(transparent,rgba(0,0,0,.27))}
.home-photo-image{border-radius:12px;filter:grayscale(.92) saturate(.18) brightness(.72) contrast(1.1)}
.home-photo-empty{border:0;border-radius:12px;background:linear-gradient(145deg,rgba(80,80,83,.45),rgba(8,8,10,.72));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);color:#deded9}
.home-photo-empty:before,.home-photo-empty:after{display:none}.home-photo-code{color:#d9d9d4}.home-photo-action em,.home-photo-caption em{color:#bababa}
.home-widget-cd{background:radial-gradient(circle at 52% 45%,rgba(255,255,255,.1),transparent 46%),linear-gradient(145deg,#333336,#09090b 76%)}
.home-cd-head,.home-cd-head i,.home-cd-foot,.home-cd-foot em{color:#d5d5d1}.home-record{border-color:rgba(255,255,255,.18);filter:grayscale(1);box-shadow:0 14px 28px rgba(0,0,0,.62),inset 0 0 0 6px rgba(255,255,255,.025)}
.p12-dock{left:19px;right:19px;height:65px;border:0;border-radius:19px;background:linear-gradient(145deg,rgba(48,48,51,.72),rgba(9,9,11,.88));box-shadow:0 16px 36px rgba(0,0,0,.52),inset 0 0 0 1px rgba(255,255,255,.12),inset 0 1px rgba(255,255,255,.08)}
.dock-icon{width:44px;height:44px;border-radius:12px;background:rgba(20,20,23,.74);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.dock-icon svg{stroke:#eeeeea}.p12-dock button>i{color:#929292}.p12-dots button{background:rgba(255,255,255,.27)}.p12-dots button.on{background:#eeeeea}.p12-gesture{background:rgba(245,245,242,.86)}
.p12-editor{background:rgba(10,10,12,.86)}.p12-editor-row{border:0;background:rgba(255,255,255,.055);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}

/* Chat list: default online, a compact + menu per conversation */
.chat-list-intro{margin:16px 16px 5px;padding:15px 16px;border-radius:15px;background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.025));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.chat-list-intro small,.chat-list-intro b,.chat-list-intro span{display:block}.chat-list-intro small{font-size:7px;letter-spacing:2.5px;color:#aaa}.chat-list-intro b{margin-top:7px;font-size:14px;color:#f2f2ef}.chat-list-intro span{margin-top:5px;color:#929292;font-size:9px;line-height:1.55}
.chat-mode-search{padding-top:9px;padding-bottom:12px}
.chat-channel-row{min-height:70px;margin:0 16px 9px;padding:0 7px 0 0;cursor:default;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.075)}
.chat-row-main{min-width:0;flex:1;align-self:stretch;padding:10px 7px 10px 11px;display:flex;align-items:center;gap:11px;text-align:left;color:inherit}
.chat-row-main .avatar{width:46px;height:46px;border-radius:13px}.chat-row-copy{display:block;min-width:0;flex:1}.chat-row-copy>b,.chat-row-copy>span{display:block}.chat-row-copy>b{font-size:13px}.chat-row-copy .muted{margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row-main time{font-size:8px;color:#737373;white-space:nowrap}
.chat-row-plus{width:35px;height:35px;flex:0 0 35px;border-radius:11px;background:#eeeeea;color:#111114;font-size:20px;font-weight:300;display:grid;place-items:center;box-shadow:0 7px 15px rgba(0,0,0,.23)}
.chat-live-badge{background:rgba(255,255,255,.09);color:#deded9}
.chat-action-sheet{padding:5px 16px 14px}.chat-action-person{padding:7px 3px 16px;display:flex;gap:12px;align-items:center}.chat-action-person .avatar{width:50px;height:50px;border-radius:14px}.chat-action-person>div{min-width:0}.chat-action-person small{font-size:7px;letter-spacing:2px;color:#8e8e8e}.chat-action-person h2{margin:5px 0 0!important;padding:0!important;border:0!important;font-family:var(--ui-font)!important;font-size:19px!important;font-weight:550!important}.chat-action-person p{margin:5px 0 0;color:#888;font-size:9px;line-height:1.5}.chat-action-sheet>button{width:100%;min-height:61px;margin-top:7px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.055);display:grid;grid-template-columns:38px 1fr auto;align-items:center;text-align:left;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.chat-action-symbol{width:34px;height:34px;border-radius:10px;background:#ededE9;color:#111114;display:grid;place-items:center;font-size:17px}.chat-action-sheet>button span:nth-child(2){min-width:0}.chat-action-sheet>button b,.chat-action-sheet>button small{display:block}.chat-action-sheet>button b{font-size:12px}.chat-action-sheet>button small{margin-top:4px;color:#898989;font-size:8px}.chat-action-sheet>button i{font-style:normal;color:#777;font-size:20px}.chat-action-settings{opacity:.82}

/* Familiar monochrome messenger */
#chat{background:radial-gradient(circle at 12% 0,rgba(255,255,255,.78),transparent 27%),repeating-linear-gradient(120deg,rgba(0,0,0,.018) 0 1px,transparent 1px 84px),linear-gradient(150deg,#e8e8e5,#cfcfcd);color:#171719}
#chat .chat-head{border:0;background:rgba(13,13,15,.94);box-shadow:0 7px 24px rgba(0,0,0,.17);color:#f3f3ef}
#chat .chat-sub{color:#999}.chat-head .avatar{border:0;border-radius:11px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.messages{padding:16px 11px 20px;gap:11px;position:relative;z-index:1}
.msg{max-width:94%;gap:6px;align-items:flex-end}.msg.me{align-self:flex-end}.msg.without-avatar{max-width:84%}.msg.without-avatar .message-column{max-width:100%}
.message-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:10px;overflow:hidden;background:#252528;color:#f3f3ef;display:grid;place-items:center;box-shadow:0 5px 14px rgba(0,0,0,.15)}.message-avatar img{width:100%;height:100%;object-fit:cover}.message-avatar b{font-size:11px;font-weight:600}
.message-column{min-width:0;max-width:calc(100% - 77px);display:flex;flex-direction:column;align-items:flex-start;gap:4px}.msg.me .message-column{align-items:flex-end}
.bubble{max-width:100%;padding:9px 11px;border:0;border-radius:13px 13px 13px 4px;background:rgba(255,255,255,.96);color:#18181a;line-height:1.55;font-size:13.5px;box-shadow:0 5px 14px rgba(0,0,0,.09);white-space:pre-wrap;word-break:break-word}
.me .bubble{border:0;border-radius:13px 13px 4px 13px;background:#1d1d20;color:#f5f5f2;box-shadow:0 7px 17px rgba(0,0,0,.18)}
.bubble-translation{margin-top:0;background:rgba(242,242,239,.94);color:#333;border-radius:4px 13px 13px 13px;box-shadow:0 4px 12px rgba(0,0,0,.075)}.me .bubble-translation{background:#4a4a4f;color:#f4f4f1;border-radius:13px 4px 13px 13px}.bubble-translation small{display:block;margin-bottom:4px;font-size:7px;letter-spacing:1.4px;color:#888}.me .bubble-translation small{color:#bebebe}.bubble-translation span{display:block;white-space:pre-wrap}.edited-mark{opacity:.45;font-size:8px;margin-left:4px}
.msg-speaker{margin:0 3px 1px;color:#5f5f62;font-size:9px}.msg-time{font-size:7px;color:#777}.message-actions{margin:0 16px 14px}.message-actions .meta-row{padding:14px;cursor:pointer}.message-actions .danger-row{color:#d18b8f}
#chat .speaker-picker{background:rgba(235,235,232,.92);padding:7px 10px}.speaker-picker .chip{background:#fff;border:0;color:#333;box-shadow:0 2px 8px rgba(0,0,0,.08)}.speaker-picker .chip.on{background:#202023;color:#fff}
#chat .composer{gap:7px;border:0;background:rgba(244,244,241,.91);backdrop-filter:blur(22px);box-shadow:0 -8px 26px rgba(0,0,0,.08)}
#chat .composer input{height:42px;border:0;border-radius:14px;background:#fff;color:#18181a;box-shadow:inset 0 0 0 1px rgba(0,0,0,.055)}
#chat .composer input:focus{border:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 0 0 3px rgba(0,0,0,.045)}
#chat .composer-tool{border-radius:13px;background:#dededb;color:#202023;box-shadow:none}.send{border-radius:13px;background:#202023;color:#f5f5f2;box-shadow:0 8px 18px rgba(0,0,0,.17)}
#chat.has-custom-bg .chat-head{background:rgba(12,12,14,.88)}#chat.has-custom-bg .composer{background:rgba(239,239,236,.83)}

/* Model discovery */
.model-input-row{display:flex;gap:7px}.model-input-row input{min-width:0;flex:1}.model-input-row button{min-width:82px;border-radius:11px;background:#efefeb;color:#151517;font-size:10px;font-weight:650}.model-input-row button:disabled{opacity:.55}.model-fetch-result{margin-top:8px}.model-fetch-result small,.model-fetch-result label{display:block;color:#8e8e8e;font-size:9px;line-height:1.5}.model-fetch-result select{margin-top:7px}.model-fetch-error{color:#d28e92!important}

@media(max-height:720px){.p12-home{--home-stage-top:140px;--home-stage-bottom:108px}.home-clockline{top:43px}.home-clockline .p12-clock strong{font-size:54px}.home-widget{border-radius:16px}}
@media(max-width:360px){.p12-page.home-grid-page{padding-left:14px;padding-right:14px;gap:8px}.home-grid-guide{left:14px;right:14px;gap:8px}.chat-action-person p{max-width:230px}}

/* V38 · ONLINE RHYTHM / OFFLINE STORY / VOICE */
.msg.batch-message{margin-top:-5px}.msg.batch-message:has(+.msg.batch-message){margin-bottom:0}.message-avatar-spacer{visibility:hidden;box-shadow:none}
.offline-message{width:min(96%,560px);max-width:96%}.offline-message .message-column{max-width:calc(100% - 77px);flex:1}.offline-message.without-avatar .message-column{max-width:100%}.offline-message .bubble{width:100%;padding:14px 15px;border-radius:17px 17px 17px 5px;line-height:1.72;font-size:14px}.offline-message.me .bubble{border-radius:17px 17px 5px 17px}
.narration-entry{align-self:center;width:min(88%,520px);margin:14px auto 17px;text-align:center;color:#4d4d50;display:flex;flex-direction:column;align-items:center;gap:7px}.narration-text{font-size:12.5px;line-height:1.85;white-space:pre-wrap;word-break:break-word;text-wrap:pretty}.narration-translation{max-width:92%;padding-top:3px;color:#777;font-size:11px;line-height:1.75;white-space:pre-wrap}.narration-translation small{display:block;margin-bottom:3px;font-size:7px;letter-spacing:1.6px;color:#9a9a9c}.narration-translation span{display:block}
.voice-strip{width:100%;min-height:30px;padding:5px 8px;border:0;border-radius:10px;background:rgba(34,34,37,.07);color:#555;display:flex;align-items:center;gap:7px;text-align:left;box-shadow:none}.me .voice-strip{background:rgba(255,255,255,.12);color:#e9e9e7}.voice-strip span:nth-child(2){font-size:8px;white-space:nowrap}.voice-strip em{margin-left:auto;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;font-style:normal;opacity:.55}.voice-wave{height:15px;display:flex;align-items:center;gap:2px}.voice-wave i{display:block;width:2px;height:6px;border-radius:2px;background:currentColor;opacity:.7}.voice-wave i:nth-child(2){height:11px}.voice-wave i:nth-child(3){height:8px}.voice-wave i:nth-child(4){height:4px}.voice-strip.is-playing .voice-wave i{animation:voicePulse .7s ease-in-out infinite alternate}.voice-strip.is-playing .voice-wave i:nth-child(2){animation-delay:.12s}.voice-strip.is-playing .voice-wave i:nth-child(3){animation-delay:.24s}.voice-strip.is-playing .voice-wave i:nth-child(4){animation-delay:.36s}@keyframes voicePulse{to{height:14px;opacity:1}}
.narration-entry .voice-strip{width:auto;min-width:160px;background:rgba(34,34,37,.06)}
.audio-device-list{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px}.audio-device-list button{padding:12px 13px;border-radius:13px;background:rgba(255,255,255,.07);color:inherit;text-align:left}.audio-device-list b,.audio-device-list small{display:block}.audio-device-list small{margin-top:4px;color:#888;font-size:8px}.builtin-world-card{background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.045))}.offline-entry-sheet .chat-action-symbol{font-size:14px}

/* V38 · IMMERSIVE CHAT TOOLS */
.bubble-line{max-width:100%;display:flex;align-items:flex-end;gap:6px}.me .bubble-line{flex-direction:row-reverse}.bubble-line>.bubble{max-width:100%}
.message-read-button{width:29px;height:29px;flex:0 0 29px;border:0;border-radius:50%;background:rgba(23,23,26,.075);color:#424247;display:grid;place-items:center;box-shadow:none}.message-read-button svg{width:14px;height:14px;fill:currentColor;transform:rotate(-7deg)}.message-read-button:active{transform:scale(.88)}.message-read-button.is-playing{background:#202023;color:#f3f1eb;animation:receiverGlow 1s ease-in-out infinite alternate}@keyframes receiverGlow{to{box-shadow:0 0 0 5px rgba(32,32,35,.09)}}
.thought-entry{align-self:center;width:min(82%,460px);margin:10px auto 13px;padding:13px 15px 14px;border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(222,222,226,.55));color:#414146;text-align:left;backdrop-filter:blur(18px);box-shadow:0 12px 30px rgba(0,0,0,.08)}.thought-entry>span{font-size:7px;letter-spacing:2.2px;color:#929298;text-transform:uppercase}.thought-entry>p{margin:7px 0 0;font-size:12px;line-height:1.75;font-style:italic;white-space:pre-wrap;word-break:break-word}.thought-translation{margin-top:8px;padding-top:8px;border-top:1px solid rgba(30,30,34,.08);font-size:10px;line-height:1.65;color:#69696e}.thought-translation small{display:block;margin-bottom:3px;font-size:7px;letter-spacing:1.5px;color:#9b9ba0}
.phone-event{align-self:center;max-width:82%;margin:8px auto;padding:8px 12px;border-radius:16px;background:rgba(240,240,239,.8);color:#46464b;display:flex;align-items:center;gap:9px;backdrop-filter:blur(15px);box-shadow:0 9px 22px rgba(0,0,0,.06)}.phone-event>span{width:27px;height:27px;border-radius:10px;background:#222226;color:#f4f2ed;display:grid;place-items:center}.phone-event svg{width:13px;height:13px;fill:currentColor}.phone-event div{min-width:0}.phone-event small,.phone-event b{display:block}.phone-event small{font-size:7px;letter-spacing:1.5px;color:#999}.phone-event b{margin-top:2px;font-size:9px;font-weight:500;line-height:1.45}
.sticker-message .message-column{max-width:142px}.sticker-bubble{width:104px;height:104px;border-radius:20px;overflow:hidden;background:transparent;box-shadow:0 8px 22px rgba(0,0,0,.1)}.sticker-bubble img{display:block;width:100%;height:100%;object-fit:cover}.sticker-message .bubble-line{align-items:center}
.image-message{width:min(94%,520px);max-width:94%}.image-message .message-column{max-width:calc(100% - 72px)}.image-message.without-avatar .message-column{max-width:100%}.image-bubble{width:min(238px,68vw);overflow:hidden;border-radius:20px;background:#f4f4f1;color:#4a4a4f;box-shadow:0 12px 28px rgba(0,0,0,.14)}.image-bubble img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.image-bubble small{display:block;padding:8px 10px;font-size:8px;line-height:1.45}.generated-image-preview{width:min(280px,78vw);margin:4px auto 14px;overflow:hidden;border-radius:24px;box-shadow:0 18px 42px rgba(0,0,0,.28)}.generated-image-preview img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.composer-plus{font-size:23px!important;font-weight:300}.chat-plus-sheet,.sticker-picker{padding:3px 16px 14px}.chat-plus-title{padding:4px 2px 14px}.chat-plus-title small{font-size:7px;letter-spacing:2.3px;color:#8c8c92}.chat-plus-title h2{padding:0!important;margin:5px 0 0!important;border:0!important;font-size:20px!important}.chat-plus-title p{margin:6px 0 0;color:#8b8b91;font-size:9px;line-height:1.55}.chat-plus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.chat-plus-grid button{min-height:100px;padding:13px;border:0;border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));color:inherit;text-align:left;box-shadow:inset 0 0 0 1px rgba(255,255,255,.055)}.chat-plus-grid button>span{width:37px;height:37px;border-radius:13px;background:#efefeb;color:#202023;display:grid;place-items:center;font-size:17px}.chat-plus-grid b,.chat-plus-grid small{display:block}.chat-plus-grid b{margin-top:10px;font-size:11px}.chat-plus-grid small{margin-top:4px;color:#888;font-size:8px}
.sticker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:390px;overflow:auto;padding:2px}.sticker-grid>button{position:relative;min-width:0;padding:5px 5px 8px;border:0;border-radius:16px;background:rgba(255,255,255,.06);color:inherit}.sticker-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:13px}.sticker-grid small{display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}.sticker-grid i{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:rgba(10,10,12,.68);color:#fff;display:grid;place-items:center;font-style:normal}.sticker-edit-preview{width:128px;height:128px;margin:4px auto 14px;border-radius:22px;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.2)}.sticker-edit-preview img{width:100%;height:100%;object-fit:cover}.compact-empty{padding:28px 10px!important}
.sim-phone{margin:0 10px 10px;padding:10px 12px 14px;border-radius:28px;background:linear-gradient(160deg,#eeeeec,#d9d9d7);color:#202024;box-shadow:0 20px 50px rgba(0,0,0,.28)}.sim-phone-top{height:28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-size:8px}.sim-phone-top i{width:56px;height:17px;border-radius:12px;background:#111114}.sim-phone-top b{justify-self:end;font-size:7px;font-weight:500;color:#777}.sim-phone-title{padding:12px 5px 15px}.sim-phone-title small{font-size:7px;letter-spacing:2px;color:#8b8b90}.sim-phone-title h2{margin:4px 0 0!important;padding:0!important;border:0!important;color:#1e1e22!important;font-size:20px!important}.sim-phone-title p{margin:5px 0 0;font-size:8px;color:#777}.sim-phone-list{display:flex;flex-direction:column;gap:7px;max-height:370px;overflow:auto}.sim-phone-list>button{display:grid;grid-template-columns:47px 1fr auto;align-items:center;gap:9px;padding:10px;border:0;border-radius:15px;background:rgba(255,255,255,.72);color:#26262a;text-align:left}.sim-phone-list>button>span{font-size:7px;color:#888}.sim-phone-list div{min-width:0}.sim-phone-list b,.sim-phone-list small{display:block}.sim-phone-list b{font-size:10px}.sim-phone-list small{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:8px}.sim-phone-list i{font-style:normal;color:#999}.sim-phone .form-actions button:not(.primary){color:#333}
.provider-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 16px 12px}.provider-presets button{padding:9px;border-radius:12px;background:rgba(255,255,255,.075);color:inherit;font-size:9px}
@media(max-width:360px){#chat .composer{gap:5px}.composer-tool{width:38px;height:38px;flex-basis:38px}.chat-plus-grid{gap:7px}.chat-plus-grid button{min-height:92px}.sticker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* =========================================================
   V38 · INDEPENDENT PERSONAS / DATA HUB / VIRTUAL APPS
   ========================================================= */

/* Character settings: familiar chat-app profile and settings rows. */
#characterEditor{background:#0d0d0f}
#characterEditor .editor-header{background:rgba(13,13,15,.92);backdrop-filter:blur(20px)}
#characterEditor .editor-hero{margin:14px 16px 11px;padding:15px;border-radius:19px;background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.035));grid-template-columns:58px 1fr auto;box-shadow:0 13px 30px rgba(0,0,0,.2)}
#characterEditor .editor-avatar{width:58px;height:58px;border-radius:16px;background:#242428;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 7px 17px rgba(0,0,0,.22)}
#characterEditor .editor-hero h2{font-family:var(--ui-font);font-size:17px;font-weight:650}
#characterEditor .editor-hero small{color:#aaa;letter-spacing:2px}
#characterEditor .editor-hero>button{border:0;background:#ededE9;color:#202023;border-radius:10px;font-weight:650}
#characterEditor .editor-tabs{margin:0 16px 14px;padding:4px;border-radius:13px;background:rgba(255,255,255,.07);box-shadow:none}
#characterEditor .editor-tabs button{height:35px;border-radius:10px;color:#96969b}
#characterEditor .editor-tabs button.on{background:#ededE9;color:#1c1c1f;box-shadow:0 3px 10px rgba(0,0,0,.22)}
#characterEditor .editor-section-title{margin-bottom:12px}
#characterEditor .editor-section-title>span{border-radius:10px;background:#ededE9;color:#202023}
#characterEditor .editor-section-title b{font-family:var(--ui-font);font-size:14px;font-weight:650}
#characterEditor .editor-grid{margin:0 16px 13px;padding:13px 0 1px;border-radius:19px;background:rgba(255,255,255,.06);overflow:hidden}
#characterEditor .editor-grid .field{padding:0 12px 12px}
#characterEditor .field label{color:#aaa;letter-spacing:.6px;text-transform:none}
#characterEditor .field>small{display:block;margin-top:7px;color:#777;font-size:8px;line-height:1.55}
#characterEditor .field input,#characterEditor .field textarea,#characterEditor .field select{border:0;border-radius:12px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.045)}
#characterEditor .field input:focus,#characterEditor .field textarea:focus,#characterEditor .field select:focus{box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 0 0 3px rgba(255,255,255,.035)}
#characterEditor .editor-inline-actions{padding:0 16px 14px}
#characterEditor .editor-inline-actions button{border:0;background:rgba(255,255,255,.065)}
#characterEditor .binding-cards{grid-template-columns:1fr;padding:0 16px 14px;gap:7px}
#characterEditor .binding-cards button,#characterEditor .binding-cards button:nth-child(3){grid-column:1;min-height:64px;padding:10px 13px;border-radius:16px;background:rgba(255,255,255,.06);display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;justify-content:initial;box-shadow:none}
#characterEditor .binding-cards span{grid-row:1/3;width:36px;height:36px;border-radius:11px;background:#ededE9;color:#202023;display:grid;place-items:center;font-size:15px}
#characterEditor .binding-cards b{margin:0;align-self:end}.binding-cards small{align-self:start}
#characterEditor .editor-danger-zone{background:rgba(113,52,57,.12);border-radius:17px}

/* Data page: compact local-data dashboard, without outlined geometric cards. */
#dataCenter{background:#0d0d0f}
#dataCenter>.scroll.data-hub{padding:14px 16px calc(30px + env(safe-area-inset-bottom))}
.data-hero{padding:17px;border-radius:20px;background:radial-gradient(circle at 90% 0,rgba(255,255,255,.1),transparent 42%),linear-gradient(145deg,#242427,#151517);display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;box-shadow:0 16px 36px rgba(0,0,0,.28)}
.data-hero-mark{width:48px;height:48px;border-radius:15px;background:#eeeeea;color:#202023;display:grid;place-items:center;font-size:21px}
.data-hero>div:nth-child(2){min-width:0}.data-hero small{color:#9a9a9f;font-size:7px;letter-spacing:1.9px}.data-hero h2{margin:5px 0 3px;font-size:18px}.data-hero p{margin:0;color:#8d8d92;font-size:8px;line-height:1.55}.data-hero>span{align-self:start;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.08);color:#bdbdc0;font-size:7px;white-space:nowrap}
.data-stats{margin:10px 0 13px;padding:12px 5px;border-radius:17px;background:rgba(255,255,255,.055);display:grid;grid-template-columns:repeat(4,1fr)}
.data-stats>div{text-align:center}.data-stats b,.data-stats small{display:block}.data-stats b{font-size:14px;color:#eee}.data-stats small{margin-top:3px;color:#777;font-size:7px}
.data-panel{margin-top:10px;padding:10px;border-radius:19px;background:rgba(255,255,255,.055)}
.data-panel-title{padding:3px 4px 10px;display:flex;justify-content:space-between;align-items:end}.data-panel-title span{font-size:12px;font-weight:650}.data-panel-title small{color:#777;font-size:7px}
.data-row{width:100%;min-height:61px;margin-top:6px;padding:9px 10px;border:0;border-radius:15px;background:rgba(255,255,255,.055);color:inherit;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;text-align:left}
.data-row-primary{background:#ededE9;color:#202023}.data-row-icon{width:36px;height:36px;border-radius:11px;background:rgba(255,255,255,.09);display:grid;place-items:center;font-size:15px}.data-row-primary .data-row-icon{background:#202023;color:#ededE9}.data-row>span:nth-child(2){min-width:0}.data-row b,.data-row small{display:block}.data-row b{font-size:11px}.data-row small{margin-top:4px;color:#828287;font-size:8px;line-height:1.45}.data-row-primary small{color:#666}.data-row i{font-style:normal;color:#777;font-size:18px}
.data-local-note{margin-top:12px;padding:13px 14px;border-radius:17px;background:rgba(255,255,255,.035);display:flex;gap:10px;align-items:flex-start}.data-local-note>span{color:#91a393;font-size:8px;margin-top:3px}.data-local-note p{margin:0}.data-local-note b,.data-local-note small{display:block}.data-local-note b{font-size:10px}.data-local-note small{margin-top:4px;color:#777;font-size:8px;line-height:1.55}

/* Sticker library categories, URL source and local photo upload. */
.sticker-category-tabs{display:flex;gap:6px;overflow:auto;margin:0 0 11px;padding:0 1px 4px;scrollbar-width:none}.sticker-category-tabs::-webkit-scrollbar{display:none}.sticker-category-tabs button{flex:0 0 auto;height:30px;padding:0 11px;border-radius:10px;background:rgba(255,255,255,.06);color:#949499;font-size:8px}.sticker-category-tabs button.on{background:#ededE9;color:#202023;font-weight:650}
.sticker-library-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.sticker-library-actions button{height:39px;border-radius:12px;background:rgba(255,255,255,.07);color:inherit;font-size:9px}.sticker-library-actions button.primary{background:#ededE9;color:#202023;font-weight:650}
.sticker-category-manager{padding:3px 16px 12px}.sticker-category-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;max-height:310px;overflow:auto}.sticker-category-list>div{min-height:52px;padding:9px 10px;border-radius:14px;background:rgba(255,255,255,.06);display:flex;align-items:center;gap:7px}.sticker-category-list span{min-width:0;flex:1}.sticker-category-list b,.sticker-category-list small{display:block}.sticker-category-list b{font-size:11px}.sticker-category-list small{margin-top:3px;color:#777;font-size:8px}.sticker-category-list button{height:30px;padding:0 9px;border-radius:9px;background:rgba(255,255,255,.07);color:inherit;font-size:8px}

/* Original virtual-app phone. */
.sim-app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:390px;overflow:auto}.sim-app-grid button{min-height:102px;padding:12px;border:0;border-radius:17px;background:rgba(255,255,255,.72);color:#252529;text-align:left}.sim-app-grid button>span{width:39px;height:39px;border-radius:13px;background:var(--sim-accent);color:white;display:grid;place-items:center;font-size:14px;box-shadow:0 7px 15px color-mix(in srgb,var(--sim-accent) 32%,transparent)}.sim-app-grid b,.sim-app-grid small{display:block}.sim-app-grid b{margin-top:9px;font-size:10px}.sim-app-grid small{margin-top:3px;color:#777;font-size:7px;line-height:1.35}
.sim-app-heading{padding:10px 5px 15px;display:grid;grid-template-columns:28px 46px 1fr;gap:9px;align-items:center}.sim-app-heading>button{width:27px;height:35px;color:#333;font-size:23px}.sim-app-heading>span{width:44px;height:44px;border-radius:14px;background:var(--sim-accent);color:#fff;display:grid;place-items:center}.sim-app-heading div{min-width:0}.sim-app-heading small{font-size:6px;letter-spacing:1.7px;color:#888}.sim-app-heading h2{margin:3px 0 0!important;padding:0!important;border:0!important;color:#202024!important;font-size:17px!important}.sim-app-heading p{margin:3px 0 0;color:#777;font-size:7px}

@media(max-width:360px){#characterEditor .editor-hero{grid-template-columns:52px 1fr}.data-hero{grid-template-columns:44px 1fr}.data-hero-mark{width:44px;height:44px}.data-hero>span{display:none}.data-stats b{font-size:12px}.sticker-library-actions{grid-template-columns:1fr 1fr}.sticker-library-actions .primary{grid-column:1/-1}}
