:root{--bg:#11101a;--surface:#1a1826;--surface-2:#232031;--text:#f7f3ea;--muted:#9d98aa;--line:rgba(255,255,255,.08);--gold:#f1c876;--mint:#8de2c0;--violet:#8a77ec;--danger:#ff8b8b;font-family:Inter,"Segoe UI",system-ui,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 70% -10%,#292044 0,transparent 38%),var(--bg);overflow-x:hidden}.ambient{position:fixed;border-radius:999px;filter:blur(80px);opacity:.16;pointer-events:none}.ambient-one{width:240px;height:240px;background:var(--violet);top:22%;right:-120px}.ambient-two{width:180px;height:180px;background:var(--gold);bottom:8%;left:-120px}.shell{width:min(100%,720px);margin:auto;padding:18px 18px 112px;position:relative}.topbar{display:grid;grid-template-columns:48px 1fr 44px;gap:12px;align-items:center;margin:4px 0 24px}.brand-mark{height:48px;border:1px solid rgba(241,200,118,.4);border-radius:16px;display:grid;place-items:center;font-family:Georgia,serif;font-size:25px;color:var(--gold);background:linear-gradient(145deg,#2c2638,#181622);box-shadow:0 12px 30px #08070d80}.eyebrow{margin:0 0 3px;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700;color:var(--gold)}h1{font-size:16px;margin:0;font-weight:650}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--violet),#4c3f91);border:2px solid #ffffff18;background-size:cover;background-position:center}.hero{min-height:230px;border-radius:30px;padding:26px;display:grid;grid-template-columns:1fr auto;align-items:center;overflow:hidden;position:relative;background:linear-gradient(135deg,#29243a,#1d1a2c 60%,#30243c);border:1px solid #ffffff12;box-shadow:0 28px 65px #05040a55}.hero:after{content:"";position:absolute;width:170px;height:170px;border:1px solid #ffffff16;border-radius:50%;right:-25px;top:-46px;box-shadow:0 0 0 26px #ffffff05,0 0 0 54px #ffffff03}.pill{display:inline-flex;padding:7px 11px;border-radius:99px;background:#ffffff0d;border:1px solid #ffffff12;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.05em}.pill.mint{color:var(--mint)}.hero h2{font:500 clamp(28px,7vw,43px)/1.04 Georgia,serif;margin:17px 0 12px;letter-spacing:-.035em}.hero h2 em{color:var(--gold);font-weight:400}.hero p{max-width:360px;color:var(--muted);font-size:13px;line-height:1.55;margin:0}.orb{position:relative;z-index:1;width:98px;height:98px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 28%,#a494ff,#5b469d 53%,#34265c);box-shadow:0 18px 45px #5e47a65c,inset 0 1px #ffffff7a;transform:rotate(5deg)}.orb span{font:600 28px Georgia,serif}.orb small{font-size:9px;color:#e8e1ff}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 28px}.stat{padding:16px 12px;background:#ffffff07;border:1px solid var(--line);border-radius:18px}.stat strong{display:block;font:600 22px Georgia,serif}.stat span{font-size:10px;color:var(--muted)}.section-head{display:flex;align-items:end;justify-content:space-between;margin:28px 2px 14px}.section-head h3{margin:0;font:500 24px Georgia,serif}.text-button{background:none;border:0;color:var(--gold);font:600 12px inherit;padding:8px}.card-list{display:grid;gap:10px}.character-card{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;text-align:left;width:100%;padding:13px;background:linear-gradient(120deg,#1c1a28,#171520);color:var(--text);border:1px solid var(--line);border-radius:18px;transition:.2s transform,.2s border}.character-card:active{transform:scale(.98)}.monogram{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#3a3152,#252137);color:var(--gold);font:600 19px Georgia,serif}.card-copy strong{display:block;font-size:14px}.card-copy small{display:block;color:var(--muted);font-size:11px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45vw}.ranks{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:100px}.rank{min-width:27px;padding:5px 6px;border-radius:8px;background:#8de2c018;color:var(--mint);font-size:10px;font-weight:800;text-align:center}.rank.blocked{background:#ffffff0b;color:var(--muted)}.view{margin-top:28px}.stacked{display:block}.filters{display:grid;grid-template-columns:1fr 125px;gap:8px;margin-top:14px}input,select{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:14px;padding:13px 14px;outline:none}input:focus,select:focus{border-color:#8a77ec88}.title-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.title-card{min-height:132px;border-radius:20px;padding:16px;border:1px solid var(--line);background:linear-gradient(145deg,#211e2e,#181621);color:var(--text);text-align:left;display:flex;flex-direction:column;justify-content:space-between}.title-card b{font:500 17px/1.2 Georgia,serif}.title-card span{font-size:10px;color:var(--muted)}.title-card i{font-style:normal;color:var(--gold);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.bottom-nav{position:fixed;z-index:10;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),520px);padding:8px;display:grid;grid-template-columns:repeat(3,1fr);background:#1a1826e8;border:1px solid #ffffff12;border-radius:22px;backdrop-filter:blur(20px);box-shadow:0 18px 50px #0008}.bottom-nav button{border:0;background:none;color:var(--muted);padding:8px;border-radius:15px;font-size:10px}.bottom-nav button span{display:block;font-size:19px;margin-bottom:3px}.bottom-nav button.active{background:#ffffff0b;color:var(--gold)}.state-card,.access-card{margin-top:15vh;text-align:center;padding:30px;border:1px solid var(--line);border-radius:28px;background:var(--surface)}.state-card p,.access-card p{color:var(--muted);line-height:1.5}.state-icon{font-size:36px;color:var(--gold)}.loader{display:block;width:34px;height:34px;margin:0 auto 20px;border:3px solid #ffffff12;border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}.access-card form{display:grid;gap:9px;margin-top:22px}.access-card button{border:0;padding:14px;border-radius:14px;background:linear-gradient(135deg,var(--gold),#d79a45);color:#241b0d;font-weight:800}.form-message{min-height:20px;font-size:12px}.hidden{display:none!important}dialog{width:min(calc(100% - 24px),520px);max-height:80vh;overflow:auto;color:var(--text);background:#1b1927;border:1px solid #ffffff16;border-radius:28px;padding:26px;box-shadow:0 30px 80px #000b}dialog::backdrop{background:#05040ac2;backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:15px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#ffffff0d;color:var(--text);font-size:23px}.detail-name{font:500 31px Georgia,serif;margin:14px 40px 8px 0}.detail-sub{color:var(--muted);font-size:12px}.detail-section{margin-top:24px}.detail-section h4{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.12em}.rank-row{display:flex;gap:7px;flex-wrap:wrap}.rank-row .rank{font-size:12px;padding:8px 10px}.toast{position:fixed;z-index:30;left:50%;bottom:100px;transform:translate(-50%,20px);opacity:0;background:#f7f3ea;color:#1a1826;padding:11px 16px;border-radius:12px;font-size:12px;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes spin{to{transform:rotate(360deg)}}
.admin-form{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:15px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}.admin-form label{font-size:10px;color:var(--muted)}.admin-form input{margin-top:6px}.admin-form .wide{grid-column:1/-1}.admin-form button{grid-column:1/-1;border:0;border-radius:14px;padding:14px;background:linear-gradient(135deg,var(--gold),#d89e4e);color:#241b0d;font-weight:800}.new-key{margin-top:10px;padding:18px;border-radius:18px;background:#8de2c012;border:1px solid #8de2c044;word-break:break-all}.new-key strong{display:block;color:var(--mint);font-size:15px;margin:6px 0}.admin-list{display:grid;gap:8px}.admin-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.admin-row strong{display:block;font-size:13px}.admin-row small{color:var(--muted);font-size:10px}.row-actions{display:flex;gap:5px}.row-actions button{border:0;border-radius:9px;padding:7px 9px;background:#ffffff0d;color:var(--text);font-size:10px}.row-actions .danger{color:var(--danger)}
@media(max-width:430px){.hero{padding:22px;min-height:215px}.orb{width:78px;height:78px}.orb span{font-size:23px}.hero p{max-width:220px}.title-grid{grid-template-columns:1fr 1fr}.admin-form{grid-template-columns:1fr}.admin-form label{grid-column:1/-1}.admin-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}@media(min-width:650px){.card-list{grid-template-columns:1fr 1fr}.hero{padding:34px}.shell{padding-top:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.library-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.library-card{min-width:0;padding:0;overflow:hidden;border-radius:20px;background:#09090d;color:var(--text);border:2px solid #444;text-align:left;box-shadow:0 16px 35px #0006}.library-card:active{transform:scale(.985)}.library-art{display:block;position:relative;aspect-ratio:3/4;background:#050507;overflow:hidden}.library-art img{width:100%;height:100%;object-fit:cover;display:block}.library-placeholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#5f5b68;font:700 11px/1.6 inherit;letter-spacing:.15em;background:radial-gradient(circle at 50% 35%,#1c1b22,#050507 70%)}.library-gradient{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#050507e8)}.library-art-name{position:absolute;left:12px;right:12px;bottom:10px;font:600 17px/1.05 Georgia,serif;text-shadow:0 2px 8px #000}.library-copy{display:block;padding:11px 12px 13px}.library-copy strong,.library-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-copy strong{font-size:13px}.library-copy small{margin-top:4px;color:var(--muted);font-size:10px}.library-ranks{display:flex;align-items:center;gap:4px;min-height:25px;margin-top:9px;color:var(--muted);font-size:10px}.library-ranks .rank{min-width:23px;padding:4px}.rank-f{border-color:#30c87a}.rank-d{border-color:#22bb72}.rank-c{border-color:#1a9ed0}.rank-b{border-color:#a438cf}.rank-a{border-color:#f09c1d}.rank-s,.rank-sr{border-color:#e0445b}.rank-empty{border-color:#303038}.detail-section.library-grid{margin-top:18px}.detail-section>.library-card{width:100%}#details>.library-art,#details-content>.library-art{width:min(62%,240px);margin:0 auto 18px;border-radius:22px;border:2px solid #ffffff18}
@media(min-width:560px){.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Imperial Library — visual polish */
:root{
  --bg:#0d0c15;--surface:#171520;--surface-2:#211e2d;--text:#fffaf0;
  --muted:#aaa4b7;--line:rgba(255,255,255,.09);--gold:#f4cb78;
  --gold-2:#c98b38;--mint:#8de2c0;--violet:#8e78ee;--danger:#ff8b8b;
}
html{scroll-behavior:smooth;color-scheme:dark}
body{
  background:
    radial-gradient(900px 520px at 84% -10%,rgba(98,72,166,.24),transparent 62%),
    radial-gradient(620px 480px at -10% 88%,rgba(180,123,46,.09),transparent 62%),
    linear-gradient(180deg,#100e19 0%,var(--bg) 46%,#0b0a11 100%);
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,#000,transparent 72%)}
button,input,select{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid rgba(244,203,120,.72);outline-offset:3px}
.shell{width:min(100%,760px);padding:20px 18px 122px}
.topbar{grid-template-columns:54px 1fr 46px;gap:13px;margin:2px 0 26px}
.brand-mark{height:54px;border-radius:18px;font-size:28px;border-color:rgba(244,203,120,.38);background:linear-gradient(145deg,rgba(54,46,69,.96),rgba(21,18,29,.96));box-shadow:0 14px 36px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08);position:relative}
.brand-mark:after{content:"";position:absolute;inset:5px;border:1px solid rgba(244,203,120,.13);border-radius:13px}
.eyebrow{font-size:10px;letter-spacing:.17em;color:#e8ba62}
h1{font-size:17px;letter-spacing:-.015em}
.avatar{width:46px;height:46px;border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 28px rgba(67,48,125,.42),inset 0 1px rgba(255,255,255,.28)}
.hero{min-height:244px;padding:30px;border-radius:32px;isolation:isolate;background:linear-gradient(130deg,rgba(46,40,64,.98),rgba(25,22,38,.98) 58%,rgba(54,37,63,.98));border-color:rgba(244,203,120,.13);box-shadow:0 28px 70px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.045)}
.hero:before{content:"✦";position:absolute;right:33px;top:23px;color:rgba(244,203,120,.28);font-size:16px;z-index:-1}
.hero:after{right:-42px;top:-55px;width:190px;height:190px;border-color:rgba(244,203,120,.16);box-shadow:0 0 0 30px rgba(255,255,255,.025),0 0 0 62px rgba(255,255,255,.015)}
.pill{padding:7px 12px;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.1);backdrop-filter:blur(10px)}
.hero h2{font-size:clamp(30px,7.2vw,46px);max-width:470px;margin:19px 0 14px;text-wrap:balance}
.hero p{font-size:13px;line-height:1.65;color:#b9b2c5}
.orb{width:106px;height:106px;background:radial-gradient(circle at 34% 26%,#c2b5ff 0,#8066d5 32%,#4a357f 69%,#2a2049 100%);border:1px solid rgba(255,255,255,.24);box-shadow:0 23px 58px rgba(100,72,174,.48),inset 0 2px rgba(255,255,255,.55),inset 0 -10px 22px rgba(21,12,43,.35)}
.orb span{font-size:30px;text-shadow:0 2px 12px rgba(0,0,0,.28)}
.stats-grid{gap:11px;margin:13px 0 32px}
.stat{position:relative;overflow:hidden;padding:17px 15px;border-radius:19px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.025));border-color:rgba(255,255,255,.075);box-shadow:inset 0 1px rgba(255,255,255,.035)}
.stat:after{content:"";position:absolute;width:42px;height:42px;border-radius:50%;right:-18px;top:-18px;background:rgba(244,203,120,.075)}
.stat strong{font-size:23px;color:#fffdf7}.stat span{display:block;margin-top:3px;font-size:10px;letter-spacing:.035em}
.section-head{margin-top:34px;margin-bottom:16px}.section-head h3{font-size:25px;letter-spacing:-.015em}.text-button{border-radius:12px;padding:9px 10px;transition:background .2s,color .2s}.text-button:hover{background:rgba(244,203,120,.08);color:#ffe4a7}
.guild-promo{display:flex;align-items:center;gap:12px;margin-top:22px;padding:14px 16px;border:1px solid rgba(244,203,120,.2);border-radius:18px;background:linear-gradient(110deg,rgba(244,203,120,.11),rgba(116,91,190,.12));color:var(--text);text-decoration:none;transition:transform .2s,border-color .2s,background .2s}.guild-promo:hover{transform:translateY(-2px);border-color:rgba(244,203,120,.45);background:linear-gradient(110deg,rgba(244,203,120,.16),rgba(116,91,190,.18))}.guild-promo-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#47366b,#2a203e);color:var(--gold);font-size:20px}.guild-promo-copy{display:grid;gap:3px;flex:1}.guild-promo-copy strong{font-size:13px}.guild-promo-copy small{color:var(--muted);font-size:11px}.guild-promo-arrow{color:var(--gold);font-size:20px}
.library-grid{gap:14px!important}
.library-card{position:relative;border-width:1px;border-color:rgba(255,255,255,.1);border-radius:22px;background:linear-gradient(180deg,#111016,#09090d);box-shadow:0 17px 38px rgba(0,0,0,.33),inset 0 1px rgba(255,255,255,.04);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.library-card:hover{transform:translateY(-3px);box-shadow:0 23px 48px rgba(0,0,0,.43),0 0 0 1px var(--rank-color,rgba(255,255,255,.05))}
.library-card:active{transform:scale(.98)}
.library-card:before{content:"";position:absolute;z-index:3;inset:0;border-radius:21px;pointer-events:none;box-shadow:inset 0 0 0 1px var(--rank-color,transparent),inset 0 1px rgba(255,255,255,.12)}
.library-art{aspect-ratio:3/4.15;background:#07070a}
.library-art img{transition:transform .45s ease,filter .3s ease}.library-card:hover .library-art img{transform:scale(1.035)}
.library-placeholder{color:#736d7e;font-size:10px;letter-spacing:.18em;background:radial-gradient(circle at 50% 31%,rgba(113,94,151,.18),transparent 37%),linear-gradient(145deg,#15131c,#060609 72%)}
.library-placeholder:before{content:"✦";position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);font:400 25px Georgia,serif;color:rgba(244,203,120,.27)}
.library-gradient{inset:30% 0 0;background:linear-gradient(transparent 0,rgba(5,5,8,.18) 30%,rgba(5,5,8,.96) 100%)}
.library-art-name{bottom:12px;font-size:18px;line-height:1.08;letter-spacing:-.02em}
.library-copy{padding:12px 13px 14px;border-top:1px solid rgba(255,255,255,.055)}
.library-copy strong{font-size:13px}.library-copy small{margin-top:5px;color:#9690a2}
.library-ranks{min-height:27px;margin-top:10px;gap:5px}.library-ranks .rank{border:1px solid rgba(255,255,255,.06);border-radius:8px}
.library-rank-overlay{position:absolute;z-index:3;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.watch-character-toggle{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(12,10,20,.78);color:#f4cb78;font-size:0;pointer-events:auto;cursor:pointer;box-shadow:0 3px 12px #0008}.watch-character-toggle:before{content:"🔔";font-size:15px;filter:saturate(.7)}.watch-character-toggle.watched{background:rgba(141,226,192,.22);color:var(--mint)}
.character-detail-ranks{margin-top:20px}.character-detail-ranks .eyebrow{display:block;margin-bottom:8px}.character-detail-ranks .rank-link{min-width:34px}.character-detail-ranks .rank-link.active-card-rank{background:rgba(244,203,120,.28);border-color:rgba(244,203,120,.85);color:#ffe2a3;box-shadow:0 0 0 2px rgba(244,203,120,.14)}
.rank-f{--rank-color:rgba(48,200,122,.72)}.rank-d{--rank-color:rgba(34,187,114,.72)}.rank-c{--rank-color:rgba(26,158,208,.78)}.rank-b{--rank-color:rgba(164,56,207,.8)}.rank-a{--rank-color:rgba(240,156,29,.82)}.rank-s,.rank-sr{--rank-color:rgba(224,68,91,.84)}.rank-empty{--rank-color:rgba(255,255,255,.09)}
.filters{gap:10px;margin-top:17px}.filters input,.filters select{min-height:48px;border-radius:16px;background:rgba(26,24,38,.88);border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px rgba(255,255,255,.025)}
.filters input:focus,.filters select:focus{border-color:rgba(244,203,120,.44);box-shadow:0 0 0 4px rgba(244,203,120,.06)}
.title-grid{gap:12px}.title-card{position:relative;overflow:hidden;min-height:144px;padding:17px;border-radius:22px;background:linear-gradient(145deg,rgba(38,34,53,.96),rgba(19,18,27,.98));border-color:rgba(255,255,255,.085);box-shadow:0 14px 34px rgba(0,0,0,.2);transition:transform .2s,border-color .2s}
.title-card:after{content:"";position:absolute;width:76px;height:76px;border:1px solid rgba(244,203,120,.1);border-radius:50%;right:-30px;top:-28px}
.title-card:hover{transform:translateY(-2px);border-color:rgba(244,203,120,.28)}
.title-card b{font-size:18px;max-width:92%;position:relative}.title-card span{font-size:11px}.title-card i{font-weight:700}
.bottom-nav{bottom:max(12px,env(safe-area-inset-bottom));width:min(calc(100% - 24px),540px);padding:7px;border-radius:23px;background:rgba(25,22,36,.86);border-color:rgba(255,255,255,.12);box-shadow:0 18px 55px rgba(0,0,0,.62),inset 0 1px rgba(255,255,255,.05)}
.bottom-nav button{position:relative;min-height:54px;padding:7px 5px;border-radius:17px;font-weight:650;transition:background .2s,color .2s,transform .2s}.bottom-nav button span{font-size:18px}.bottom-nav button.active{background:linear-gradient(145deg,rgba(244,203,120,.13),rgba(138,119,236,.09));color:#f7d797;box-shadow:inset 0 0 0 1px rgba(244,203,120,.08)}
.bottom-nav button:active{transform:scale(.96)}
.state-card,.access-card{background:linear-gradient(145deg,rgba(31,28,43,.96),rgba(20,18,29,.98));border-color:rgba(255,255,255,.1);box-shadow:0 30px 80px rgba(0,0,0,.3)}
.auth-state,.compact-access{max-width:520px;margin:9vh auto 0;padding:34px 28px}.auth-state h2,.compact-access h2{font:500 clamp(25px,6vw,34px)/1.08 Georgia,serif;margin:10px 0 12px}.auth-state .eyebrow{margin-top:18px}.auth-state p:not(.eyebrow),.compact-access p{max-width:390px;margin:0 auto;color:var(--muted)}.compact-access form{max-width:390px;margin-left:auto;margin-right:auto}.compact-access:before{content:"";display:block;width:58px;height:4px;margin:-22px auto 20px;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--violet));opacity:.7}
.title-mini-toolbar{display:grid;gap:10px;margin:16px 0}.title-mini-toolbar input{min-width:0;background:#ffffff08}.title-rank-chips{display:flex;flex-wrap:wrap;gap:6px}.title-rank-chips button{min-width:34px;border:1px solid rgba(255,255,255,.11);border-radius:10px;padding:8px 10px;background:rgba(255,255,255,.055);color:#d8d3dd;font:750 11px inherit}.title-rank-chips button.selected{border-color:rgba(244,203,120,.6);background:rgba(244,203,120,.16);color:#ffe1a3}.title-character-grid>.hidden{display:none!important}.title-banner{min-height:132px!important;background-size:cover!important;background-position:center!important}
dialog{border-radius:30px;background:linear-gradient(155deg,#211e2e,#14121d 70%);border-color:rgba(244,203,120,.13);box-shadow:0 34px 95px rgba(0,0,0,.75)}
.dialog-close{background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}
.toast{font-weight:700;box-shadow:0 16px 38px rgba(0,0,0,.36)}
@media(max-width:520px){
  .shell{padding:15px 14px 116px}.topbar{margin-bottom:20px;grid-template-columns:49px 1fr 42px}.brand-mark{height:49px;border-radius:16px}.avatar{width:42px;height:42px}
  .hero{min-height:222px;padding:23px 20px;border-radius:27px;grid-template-columns:1fr 76px}.hero h2{font-size:29px;line-height:1.02;margin:16px 0 12px}.hero p{font-size:12px;max-width:235px;line-height:1.55}.orb{width:72px;height:72px}.orb span{font-size:22px}.orb small{font-size:8px}
  .stats-grid{gap:7px;margin-top:9px}.stat{padding:14px 10px;border-radius:16px}.stat strong{font-size:20px}.stat span{font-size:9px}
  .section-head{margin-top:29px}.section-head h3{font-size:22px}.text-button{font-size:11px}
  .library-grid{gap:9px!important}.library-card{border-radius:18px}.library-card:before{border-radius:17px}.library-art-name{left:10px;right:10px;bottom:9px;font-size:15px}.library-copy{padding:10px}.library-copy strong{font-size:12px}.library-ranks{gap:3px}.library-ranks .rank{min-width:21px;padding:4px 3px;font-size:9px}
  .filters{grid-template-columns:1fr;gap:8px}.title-grid{gap:9px}.title-card{min-height:132px;padding:14px;border-radius:18px}.title-card b{font-size:16px}
  dialog{width:100%;max-width:none;max-height:88vh;margin:auto 0 0;border-radius:28px 28px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));border-bottom:0}
}
@media(min-width:760px){.shell{padding-top:30px}.hero{padding:36px}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.library-grid.hidden{display:none!important}

/* Full title pages and image-led title cards. */
.title-card{padding:0;min-height:206px;display:block;position:relative;text-align:left}
.title-banner{display:block;position:relative;min-height:190px;overflow:hidden;border-radius:20px 20px 0 0;background:radial-gradient(circle at 70% 25%,rgba(142,120,238,.42),transparent 38%),linear-gradient(135deg,#312750,#161321 72%)}
.title-banner.compact{min-height:122px;border-radius:20px 20px 0 0}
.title-banner-mark{position:absolute;inset:18px auto auto 20px;width:52px;height:52px;display:grid;place-items:center;border-radius:17px;border:1px solid rgba(244,203,120,.4);background:rgba(14,12,22,.55);color:var(--gold);font:600 29px Georgia,serif;box-shadow:0 12px 28px rgba(0,0,0,.28)}
.title-banner-glow{position:absolute;width:190px;height:190px;right:-42px;top:-68px;border-radius:50%;border:1px solid rgba(244,203,120,.22);box-shadow:0 0 0 20px rgba(244,203,120,.04),0 0 0 42px rgba(244,203,120,.025)}
.title-banner-name{position:absolute;left:20px;right:18px;bottom:18px;color:#fffaf0;font:500 clamp(25px,5vw,36px)/1.05 Georgia,serif;text-shadow:0 4px 16px #000b}
.title-banner-name.compact{font-size:18px;line-height:1.1;bottom:14px;max-height:42px;overflow:hidden}
.title-card-copy{display:block;padding:12px 15px 14px;background:rgba(10,9,15,.74);border-top:1px solid rgba(255,255,255,.08)}
.title-card-copy i,.title-card-copy b,.title-card-copy span{display:block}
.title-card-copy i{font-style:normal;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.title-card-copy b{margin-top:6px;font:500 17px/1.17 Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-card-copy span{margin-top:7px;color:var(--muted);font-size:10px}
#title-page{margin-top:22px}
.back-button{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:var(--text);border-radius:14px;padding:10px 14px;font:600 12px inherit;cursor:pointer;margin-bottom:14px}
.title-page .title-banner{min-height:240px;border-radius:26px}
.title-page-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:22px 2px 4px}
.title-page-head h2{margin:0;font:500 clamp(28px,7vw,44px)/1.02 Georgia,serif;letter-spacing:-.03em}
.title-page-head .pill{flex:none}
.title-character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.title-character-grid .library-card{width:100%}
@media(max-width:520px){.title-grid{grid-template-columns:1fr;gap:12px}.title-card{min-height:196px;border-radius:20px}.title-banner{min-height:144px}.title-banner.compact{min-height:144px}.title-card-copy b{font-size:16px}.title-page .title-banner{min-height:190px;border-radius:22px}.title-page-head{align-items:start;flex-direction:column}.title-page-head .pill{order:-1}.title-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.title-grid.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.title-grid.library-grid .library-art{aspect-ratio:4/5}.library-rank-chips button.selected{border-color:rgba(244,203,120,.65);background:rgba(244,203,120,.16);color:#ffe1a3}
.bottom-nav{grid-template-columns:repeat(4,1fr)}
.profile-card{padding:22px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#211e2e,#15131e);display:grid;gap:16px}.profile-head{display:flex;align-items:center;gap:14px}.profile-avatar{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#46356c,#252038);color:var(--gold);font:600 25px Georgia,serif;background-size:cover;background-position:center}.profile-name{font-size:18px;font-weight:700}.profile-username{color:var(--muted);font-size:12px;margin-top:3px}.profile-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px}.profile-meta div{padding:12px;border-radius:14px;background:#ffffff08;border:1px solid #ffffff0d}.profile-meta small{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.profile-meta strong{font-size:13px}

/* Compact search bar with an intentional filter sheet. */
.filter-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:0 2px 16px}
.filter-toolbar input{min-width:0;min-height:48px}
.filter-open{min-height:48px;min-width:118px;border:1px solid rgba(244,203,120,.28);border-radius:16px;background:linear-gradient(145deg,rgba(244,203,120,.13),rgba(142,120,238,.12));color:var(--text);font:700 12px inherit;cursor:pointer;white-space:nowrap}
.filter-open span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;border-radius:99px;background:var(--gold);color:#29202f;font-size:10px}
.filter-open span:empty{display:none}
.filters-dialog{width:min(calc(100% - 24px),430px);max-height:min(82vh,740px);padding:22px 20px 18px;border-radius:26px;background:linear-gradient(155deg,#201e29,#14131a 74%);border-color:rgba(255,255,255,.12)}
.filters-dialog-head{display:flex;align-items:center;justify-content:space-between;margin:0 36px 18px 0}.filters-dialog-head h2{margin:0;font:600 23px Georgia,serif}.filters-dialog .dialog-close{top:16px;right:16px}
.filter-caption{margin:19px 0 9px;color:#beb9c7;font-size:12px;font-weight:800;letter-spacing:.02em}
.filter-block{padding:14px 0 2px;border-top:1px solid rgba(255,255,255,.07)}.filter-block:first-of-type{border-top:0;padding-top:0}.filter-caption{margin:0 0 9px;color:#a8a3b1;font-size:11px;font-weight:800;letter-spacing:.04em}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chips button{border:1px solid rgba(255,255,255,.11);border-radius:12px;padding:9px 11px;background:rgba(255,255,255,.055);color:#d8d3dd;font:650 12px inherit;cursor:pointer;transition:.18s ease}.filter-chips button:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.1)}.filter-chips button.selected{border-color:rgba(244,203,120,.6);background:rgba(244,203,120,.16);color:#ffe1a3;box-shadow:inset 0 1px rgba(255,255,255,.1)}
.filter-chips[data-filter-group="type"],.filter-chips[data-filter-group="cards"],.filter-chips[data-filter-group="status"],.filter-chips[data-filter-group="characters"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.filter-chips[data-filter-group="type"] button,.filter-chips[data-filter-group="cards"] button,.filter-chips[data-filter-group="status"] button,.filter-chips[data-filter-group="characters"] button{text-align:left;display:flex;align-items:center;gap:8px}.filter-chips[data-filter-group="type"] button:before,.filter-chips[data-filter-group="cards"] button:before,.filter-chips[data-filter-group="status"] button:before,.filter-chips[data-filter-group="characters"] button:before{content:"";width:14px;height:14px;flex:none;border-radius:5px;border:1px solid #ffffff20;background:#ffffff08}.filter-chips[data-filter-group="type"] button.selected:before,.filter-chips[data-filter-group="cards"] button.selected:before,.filter-chips[data-filter-group="status"] button.selected:before,.filter-chips[data-filter-group="characters"] button.selected:before{border-color:var(--gold);background:var(--gold);box-shadow:inset 0 0 0 3px #30263a}
.filter-ranks{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}.filter-ranks button{min-width:0;padding:9px 4px;text-align:center}.filter-ranks button:first-child{grid-column:span 2}.filters-dialog-actions{position:sticky;bottom:-18px;z-index:2;display:grid;grid-template-columns:1fr 1.35fr;gap:9px;margin:23px -20px -18px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,rgba(20,19,26,.86),#17151e 30%);border-top:1px solid rgba(255,255,255,.08)}.filters-dialog-actions button{border-radius:14px;padding:13px;border:0;font:800 12px inherit;cursor:pointer}.secondary-button{background:rgba(255,255,255,.08);color:var(--text)}.primary-button{background:linear-gradient(135deg,#f4cb78,#d89442);color:#251a0f}
@media(max-width:520px){.filter-toolbar{gap:8px}.filter-open{min-width:104px}.filters-dialog{width:100%;max-width:none;max-height:86vh;margin:auto 0 0;border-radius:26px 26px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}}

.watch-button{margin-top:12px;border:1px solid rgba(141,226,192,.35);border-radius:13px;padding:10px 12px;background:rgba(141,226,192,.1);color:var(--mint);font:750 12px inherit;cursor:pointer}
.notification-list{display:grid;gap:10px}.notification-card{display:grid;grid-template-columns:46px 1fr auto;gap:11px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.09);border-radius:17px;background:linear-gradient(135deg,rgba(31,28,42,.92),rgba(18,17,25,.96))}.notification-card img,.notification-mark{width:46px;height:46px;border-radius:13px;object-fit:cover;background:#0b0a0f}.notification-mark{display:grid;place-items:center;color:var(--gold);font:700 17px Georgia,serif}.notification-card strong{font-size:13px}.notification-card p{margin:4px 0;color:#c9c3cf;font-size:11px}.notification-card small{color:var(--muted);font-size:10px}.notification-card a{color:var(--gold);text-decoration:none;font-size:18px;padding:8px}

/* Search and filtering controls for the character queue. */
.filters-available{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(110px,1fr));}
.filters-available select,.filters-available input{min-width:0;}
.filters-home{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(110px,1fr));margin:0 2px 14px;}
.filters-home select,.filters-home input{min-width:0;}
.rank-link{border:0;font:inherit;cursor:pointer;}
.library-ranks .rank-link.active-card-rank{background:rgba(244,203,120,.28);border-color:rgba(244,203,120,.85);color:#ffe2a3;box-shadow:0 0 0 2px rgba(244,203,120,.14),0 5px 16px rgba(244,203,120,.18);transform:translateY(-1px)}
.card-detail-preview{position:relative;width:min(100%,260px);aspect-ratio:3/4;margin:0 auto 18px;border-radius:22px;overflow:hidden;background:#08080d;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 45px rgba(0,0,0,.48);display:grid;place-items:center;}
.card-detail-preview img{width:100%;height:100%;object-fit:cover;}
.card-detail-rank{position:absolute;top:12px;left:12px;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(14,12,22,.78);color:var(--gold);font-weight:900;font-size:18px;backdrop-filter:blur(8px);}
.detail-link{color:var(--gold);text-decoration:none;}
@media(max-width:640px){.filters-available{grid-template-columns:1fr 1fr;}.filters-available input{grid-column:1/-1;}}
@media(max-width:640px){.filters-home{grid-template-columns:1fr 1fr;}.filters-home input{grid-column:1/-1;}}
@media(max-width:390px){.filters-available{grid-template-columns:1fr;}.filters-available input{grid-column:auto;}}
@media(max-width:390px){.filters-home{grid-template-columns:1fr;}.filters-home input{grid-column:auto;}}
/* title character/card switch */
.title-mode-switch{display:flex;gap:8px}.title-mode-switch button{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px 14px;background:rgba(255,255,255,.06);color:var(--muted);font:700 12px inherit}.title-mode-switch button.selected{border-color:rgba(244,203,120,.65);background:rgba(244,203,120,.16);color:#ffe1a3}.title-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.title-card-tile{position:relative;overflow:hidden;min-height:220px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:#09090d}.title-card-tile img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block}.title-card-tile-copy{position:absolute;inset:auto 0 0;padding:28px 12px 12px;background:linear-gradient(transparent,#09090df2)}.title-card-tile-copy strong,.title-card-tile-copy small{display:block}.title-card-tile-copy small{color:#f4cb78;margin-top:4px}
.title-card-tile{border:2px solid var(--rank-color,rgba(255,255,255,.16));box-shadow:0 10px 26px rgba(0,0,0,.28)}.title-card-tile:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}.title-card-rank-badge{position:absolute;z-index:2;top:10px;left:10px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(12,10,20,.78);color:#fff;font-weight:900;font-size:17px;backdrop-filter:blur(8px)}
.title-card-tile.rank-f,.library-card.rank-f{--rank-color:rgba(139,139,149,.82);border-color:#8b8b95}
.library-controls{display:grid;gap:10px;margin:12px 0 18px}.library-switch,.library-rank-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.library-switch button,.library-rank-chips button{border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:9px 14px;background:rgba(255,255,255,.06);color:var(--muted);font:700 12px inherit}.library-switch button.selected,.library-rank-chips button:hover{border-color:rgba(244,203,120,.65);background:rgba(244,203,120,.16);color:#ffe1a3}.library-rank-chips span{color:var(--muted);font-size:11px}

/* Admin-only user inventory monitor. Kept visually and structurally separate from the card catalog. */
.admin-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 18px;padding:5px;border:1px solid rgba(255,255,255,.09);border-radius:17px;background:rgba(255,255,255,.035)}
.admin-tabs button{min-height:43px;border:0;border-radius:12px;background:transparent;color:var(--muted);font:750 12px inherit;cursor:pointer}.admin-tabs button.selected{background:linear-gradient(145deg,rgba(244,203,120,.17),rgba(142,120,238,.13));color:#ffe2a6;box-shadow:inset 0 0 0 1px rgba(244,203,120,.16)}
.monitor-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px;padding:24px;border:1px solid rgba(244,203,120,.17);border-radius:25px;background:radial-gradient(circle at 90% 15%,rgba(142,120,238,.26),transparent 35%),linear-gradient(145deg,#252037,#15131e)}
.monitor-hero:after{content:"";position:absolute;width:150px;height:150px;right:-70px;top:-92px;border:1px solid rgba(244,203,120,.2);border-radius:50%;box-shadow:0 0 0 25px rgba(244,203,120,.025)}.monitor-hero h2{margin:15px 0 8px;font:500 clamp(25px,6vw,36px)/1.05 Georgia,serif}.monitor-hero p{max-width:460px;margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.monitor-refresh{position:relative;z-index:1;border:0;border-radius:14px;padding:12px 15px;background:linear-gradient(135deg,#f4cb78,#d89442);color:#251a0f;font:800 11px inherit;cursor:pointer;white-space:nowrap}.monitor-refresh:disabled{opacity:.55}
.monitor-target-card,.monitor-recent-card{margin:10px 0;padding:17px;border:1px solid rgba(244,203,120,.14);border-radius:20px;background:linear-gradient(145deg,rgba(35,31,49,.9),rgba(18,16,26,.96))}.monitor-target-card h3{margin:3px 0 6px;font:600 20px Georgia,serif}.monitor-target-copy p:last-child{max-width:620px;margin:0;color:var(--muted);font-size:10px;line-height:1.5}.monitor-target-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:14px}.monitor-target-form input{min-width:0;min-height:45px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:#171521;color:var(--text);padding:0 12px;font:600 11px inherit}.monitor-target-submit{border:0;border-radius:13px;padding:0 16px;background:linear-gradient(135deg,#f4cb78,#d89442);color:#251a0f;font:800 11px inherit;cursor:pointer;white-space:nowrap}.monitor-target-submit:disabled{opacity:.6}.monitor-target-status{min-height:15px;margin:8px 0 0;color:var(--mint);font-size:10px}.monitor-target-status.error{color:#f49aa8}.monitor-recent-card{border-color:rgba(255,255,255,.085)}.monitor-recent-users{display:grid;gap:7px;margin-top:12px}.monitor-recent-user{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:#ffffff06;color:var(--text);text-align:left;cursor:pointer}.monitor-recent-user:hover{border-color:rgba(244,203,120,.35)}.monitor-recent-user strong,.monitor-recent-user small{display:block}.monitor-recent-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.monitor-recent-user small{margin-top:4px;color:var(--muted);font-size:9px}.monitor-recent-user-meta{display:grid;justify-items:end;gap:3px;color:var(--gold);font-size:10px}.monitor-recent-user-meta time{color:var(--muted);font-size:8px}.monitor-recent-user-meta.error{color:#f49aa8}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.monitor-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.monitor-stat{position:relative;overflow:hidden;min-height:83px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:linear-gradient(145deg,rgba(34,31,47,.95),rgba(20,18,28,.98))}.monitor-stat:after{content:"";position:absolute;width:52px;height:52px;right:-19px;bottom:-22px;border-radius:50%;background:var(--accent,rgba(244,203,120,.13))}.monitor-stat span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.monitor-stat strong{display:block;margin-top:10px;font:600 23px Georgia,serif}.monitor-stat.cards{--accent:rgba(142,120,238,.2)}.monitor-stat.shards{--accent:rgba(141,226,192,.16)}.monitor-stat.changed{--accent:rgba(231,107,125,.16)}
.monitor-chart-card{margin:10px 0;padding:17px;border:1px solid rgba(255,255,255,.085);border-radius:20px;background:linear-gradient(145deg,rgba(31,28,43,.92),rgba(17,16,23,.96))}.monitor-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.monitor-chart-head h4{margin:3px 0 0;font:600 18px Georgia,serif}.monitor-chart-head small{color:var(--muted);font-size:10px}.rank-chart{height:150px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:9px;margin-top:16px}.rank-bar{height:100%;display:grid;grid-template-rows:22px 1fr 18px;gap:5px;text-align:center;align-items:end}.rank-bar strong{color:#c8c2cf;font-size:9px}.rank-bar span{display:block;width:100%;min-height:2px;border-radius:8px 8px 3px 3px;background:linear-gradient(to top,var(--rank-color,#8b8b95),color-mix(in srgb,var(--rank-color,#8b8b95),white 28%));box-shadow:0 5px 14px color-mix(in srgb,var(--rank-color,#8b8b95),transparent 55%)}.rank-bar small{color:#ddd6e4;font-weight:900;font-size:11px}
.monitor-toolbar{display:grid;grid-template-columns:minmax(0,1.8fr) 1fr .75fr;gap:8px;margin:14px 0 10px}.monitor-toolbar input,.monitor-toolbar select{min-width:0;min-height:45px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#1b1925;color:var(--text);padding:0 12px;font:600 11px inherit}
.monitor-users{display:grid;gap:8px}.monitor-user-card{width:100%;display:grid;grid-template-columns:47px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.085);border-radius:17px;background:linear-gradient(135deg,rgba(31,28,42,.94),rgba(18,17,25,.97));color:var(--text);text-align:left;cursor:pointer}.monitor-user-card.changed{border-color:rgba(141,226,192,.34);box-shadow:inset 3px 0 #8de2c0}.monitor-user-card.error{border-color:rgba(231,107,125,.32)}.monitor-user-avatar{width:47px;height:47px;display:grid;place-items:center;border:1px solid rgba(244,203,120,.23);border-radius:14px;background:linear-gradient(145deg,#46356c,#242035);color:var(--gold);font:600 20px Georgia,serif}.monitor-user-main{min-width:0}.monitor-user-main>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.monitor-user-main>small{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.monitor-user-ranks{display:flex;gap:4px;margin-top:7px;color:#77717f;font-size:8px}.monitor-user-ranks i{display:grid;place-items:center;min-width:20px;height:19px;border:1px solid var(--rank-color,#777);border-radius:6px;color:#eee;font-style:normal;font-weight:900;font-size:8px;background:color-mix(in srgb,var(--rank-color,#777),transparent 80%)}
.monitor-user-counts{display:grid;justify-items:end;gap:3px}.monitor-user-counts b{font-size:12px}.monitor-user-counts b.shards{color:var(--mint)}.monitor-user-counts small{color:var(--muted);font-size:8px;font-weight:600}.monitor-user-counts em{margin-left:4px;color:var(--mint);font-size:9px;font-style:normal}.monitor-user-counts time{color:#797382;font-size:8px}
.monitor-detail-head{display:flex;align-items:center;gap:13px;margin:8px 0 19px}.monitor-detail-head .monitor-user-avatar{width:60px;height:60px;border-radius:18px;font-size:25px;flex:none}.monitor-detail-head .detail-name{margin:7px 0 3px}.history-card svg{display:block;width:100%;height:122px;margin-top:12px;overflow:visible}.history-line{fill:none;stroke:#f4cb78;stroke-width:1.7;vector-effect:non-scaling-stroke}.history-fill{fill:url(#history-fill);stroke:none}.history-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.inventory-section{margin-top:22px}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.inventory-card{position:relative;overflow:hidden;min-height:160px;border:2px solid var(--rank-color,rgba(255,255,255,.13));border-radius:15px;background:#09090e center/cover no-repeat}.inventory-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.inventory-card:after{content:"";position:absolute;inset:32% 0 0;background:linear-gradient(transparent,#08080deb 70%)}.inventory-card>div{position:absolute;z-index:2;left:9px;right:9px;bottom:9px}.inventory-card strong,.inventory-card small{display:block}.inventory-card strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory-card small{margin-top:3px;color:#c3bdca;font-size:7px}.inventory-rank,.inventory-qty{position:absolute;z-index:3;top:7px;display:grid;place-items:center;min-width:26px;height:26px;padding:0 5px;border-radius:8px;background:rgba(10,9,15,.8);font-weight:900;font-size:10px;backdrop-filter:blur(7px)}.inventory-rank{left:7px;color:#fff}.inventory-qty{right:7px;color:var(--gold)}.shards-grid .inventory-card{filter:saturate(.78)}.monitor-profile-link{display:block;margin-top:20px;padding:13px;border:1px solid rgba(244,203,120,.24);border-radius:13px;color:var(--gold);text-align:center;text-decoration:none;font-weight:800;font-size:11px}
@media(max-width:520px){.monitor-hero{grid-template-columns:1fr;padding:20px}.monitor-refresh{justify-self:start}.monitor-stats{grid-template-columns:1fr 1fr}.monitor-toolbar{grid-template-columns:1fr 1fr}.monitor-toolbar input{grid-column:1/-1}.monitor-user-card{grid-template-columns:42px minmax(0,1fr) auto;gap:9px}.monitor-user-avatar{width:42px;height:42px}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rank-chart{gap:5px}}
.demo-mode-banner{display:flex;align-items:center;justify-content:center;gap:8px;margin:-8px 0 16px;padding:8px 12px;border:1px solid rgba(141,226,192,.24);border-radius:12px;background:rgba(141,226,192,.08);color:#c8f5e3;font-size:9px}.demo-mode-banner strong{text-transform:uppercase;letter-spacing:.08em}.demo-mode-banner span{color:#94b8aa}
.monitor-user-avatar{background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
.inventory-card.no-source-art{background:linear-gradient(145deg,#12101a,#08080e)}
.inventory-no-art{position:absolute;inset:0;display:grid;place-items:center;padding:18px;color:#837a91;text-align:center;font-size:8px;text-transform:uppercase;letter-spacing:.1em}
.monitor-chart-switch{display:flex;gap:5px;margin-left:auto}.monitor-chart-switch button{border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:7px 9px;background:#ffffff08;color:var(--muted);font:750 9px inherit}.monitor-chart-switch button.selected{border-color:rgba(141,226,192,.4);background:rgba(141,226,192,.12);color:var(--mint)}
.level-chart{margin-top:20px;padding-top:17px;border-top:1px solid rgba(255,255,255,.07)}.level-bars{display:grid;gap:8px;margin-top:13px}.level-bars>div{display:grid;grid-template-columns:minmax(0,1fr) 52px 25px;align-items:center;gap:8px}.level-bars span{height:9px;overflow:hidden;border-radius:99px;background:#ffffff08}.level-bars i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--violet),var(--gold))}.level-bars strong{color:#c8c1cf;font-size:9px}.level-bars small{color:var(--gold);text-align:right;font-size:9px}
#monitor-view .monitor-toolbar{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(105px,.75fr))}
@media(max-width:520px){#monitor-view .monitor-toolbar{grid-template-columns:1fr 1fr}#monitor-view .monitor-toolbar input{grid-column:1/-1}#monitor-view .monitor-toolbar select:last-child{grid-column:1/-1}.monitor-chart-head{flex-wrap:wrap}}
@media(max-width:520px){.monitor-target-form{grid-template-columns:1fr}.monitor-target-submit{min-height:43px}.monitor-recent-user{grid-template-columns:minmax(0,1fr) auto}}
/* Repaired profile tools and guild directory. */
.profile-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.profile-action{min-height:100px;padding:14px 10px;border:1px solid rgba(244,203,120,.2);border-radius:16px;background:linear-gradient(145deg,rgba(244,203,120,.1),rgba(142,120,238,.08));color:var(--text);text-align:left;cursor:pointer}.profile-action span{display:grid;place-items:center;width:34px;height:34px;margin-bottom:10px;border-radius:11px;background:#3b2f58;color:var(--gold);font-size:17px}.profile-action strong,.profile-action small{display:block}.profile-action strong{font-size:13px}.profile-action small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.35}.profile-action:hover{border-color:rgba(244,203,120,.52);transform:translateY(-1px)}
.profile-action.is-locked{cursor:not-allowed;filter:saturate(.35);opacity:.58}.profile-action.is-locked:hover{border-color:rgba(244,203,120,.2);transform:none}.profile-key-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,1fr) auto;align-items:center;gap:9px;margin-top:15px;padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:#ffffff06}.profile-key-form strong,.profile-key-form small{display:block}.profile-key-form strong{font-size:11px}.profile-key-form small{margin-top:4px;color:var(--muted);font-size:8px}.profile-key-form button{min-height:44px;border:0;border-radius:13px;padding:0 14px;background:linear-gradient(135deg,var(--gold),#d79a45);color:#241b0d;font-weight:800}.profile-key-form .form-message{grid-column:1/-1;margin:0}.admin-key-option{display:flex!important;align-items:center;gap:8px;min-height:46px}.admin-key-option input{width:18px;height:18px;margin:0;accent-color:var(--gold)}
.back-button{display:inline-flex;align-items:center;min-height:42px;margin:0 0 18px;padding:0 15px;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:rgba(255,255,255,.055);color:var(--text);font:750 11px inherit;cursor:pointer}.back-button:hover{border-color:rgba(244,203,120,.45);color:var(--gold)}
.guild-toolbar{display:grid;grid-template-columns:minmax(180px,1.6fr) repeat(2,minmax(125px,.7fr));gap:9px;margin:14px 0}.guild-toolbar input,.guild-toolbar select{min-width:0;min-height:46px;padding:0 13px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:#1b1925;color:var(--text);font:650 11px inherit}.guild-grid{display:grid;gap:10px}.guild-card{width:100%;display:grid;grid-template-columns:58px minmax(0,1fr) 24px;align-items:center;gap:13px;padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:19px;background:linear-gradient(145deg,rgba(32,29,44,.96),rgba(18,17,25,.98));color:var(--text);text-align:left;cursor:pointer}.guild-card:hover{border-color:rgba(244,203,120,.4)}.guild-card-avatar,.guild-member-avatar{display:grid;place-items:center;background:#302743 center/cover no-repeat;color:var(--gold);font:600 21px Georgia,serif}.guild-card-avatar{width:58px;height:58px;border-radius:16px}.guild-card-main{min-width:0}.guild-card-main>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 17px Georgia,serif}.guild-card-main>small{display:block;margin:4px 0 8px;color:var(--muted);font-size:9px}.guild-card-main>span{display:flex;flex-wrap:wrap;gap:10px}.guild-card-main b{color:#d4ceda;font-size:9px}.guild-card-arrow{color:var(--gold);font-size:28px;text-align:right}.guild-detail-head h2{margin:6px 0 7px;font:600 clamp(26px,7vw,40px)/1 Georgia,serif}.guild-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 24px}.guild-summary>div{padding:13px;border:1px solid rgba(255,255,255,.085);border-radius:14px;background:#ffffff08}.guild-summary small,.guild-summary strong{display:block}.guild-summary small{min-height:26px;color:var(--muted);font-size:9px}.guild-summary strong{margin-top:7px;color:var(--gold);font-size:17px}.guild-member-list{display:grid;gap:8px}.guild-member{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:11px;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:#ffffff06}.guild-member-avatar{width:48px;height:48px;border-radius:14px}.guild-member strong,.guild-member small,.guild-member em{display:block}.guild-member strong{font-size:12px}.guild-member small{margin-top:3px;color:var(--muted);font-size:9px}.guild-member em{margin-top:6px;color:var(--gold);font-size:9px;font-style:normal}.inline-loading{padding:36px 18px;border:1px solid rgba(255,255,255,.08);border-radius:18px;color:var(--muted);text-align:center}
@media(max-width:560px){.profile-actions{grid-template-columns:1fr}.profile-action{min-height:76px;display:grid;grid-template-columns:36px 1fr;column-gap:11px;align-items:center}.profile-action span{grid-row:1/3;margin:0}.guild-toolbar{grid-template-columns:1fr}.guild-summary{grid-template-columns:1fr 1fr}.guild-card{grid-template-columns:50px minmax(0,1fr) 18px;padding:12px}.guild-card-avatar{width:50px;height:50px}.guild-card-main>span{gap:7px}}
@media(max-width:560px){.profile-key-form{grid-template-columns:1fr}.profile-key-form .form-message{grid-column:1}.profile-key-form button{min-height:46px}}
.admin-sync-card{margin:16px 0;padding:14px;border:1px solid rgba(244,203,120,.18);border-radius:16px;background:#ffffff05}.admin-sync-card .section-head{margin:0 0 10px}.admin-sync-card .section-head button{border:1px solid rgba(244,203,120,.35);border-radius:9px;padding:7px 10px;background:#ffffff08;color:var(--gold);cursor:pointer}.admin-sync-list{display:grid;gap:7px}.admin-sync-row{display:flex;justify-content:space-between;gap:12px;padding:10px;border-radius:11px;background:#ffffff06}.admin-sync-row strong,.admin-sync-row small{display:block}.admin-sync-row small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4;text-align:right}.admin-sync-row>div small{text-align:left}
.guild-daily{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 15px}.guild-daily>div{min-width:0;padding:11px;border:1px solid rgba(116,213,177,.22);border-radius:13px;background:linear-gradient(145deg,rgba(55,113,94,.2),rgba(255,255,255,.035))}.guild-daily small,.guild-daily strong{display:block}.guild-daily small{color:var(--muted);font-size:9px}.guild-daily strong{margin-top:5px;overflow:hidden;color:#a4edcb;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.guild-baseline{margin:0 0 15px;padding:12px 13px;border:1px solid rgba(244,203,120,.22);border-radius:14px;background:rgba(244,203,120,.065);color:#ded2b6;font-size:10px;line-height:1.5}.guild-history{margin:0 0 20px;padding:14px;border:1px solid rgba(142,120,238,.25);border-radius:16px;background:linear-gradient(145deg,rgba(69,50,113,.24),rgba(255,255,255,.035))}.guild-history h4{margin:3px 0 0;font:600 18px Georgia,serif}.guild-history svg{display:block;width:100%;height:96px;margin:12px 0 7px;overflow:visible}.guild-history polyline{fill:none;stroke:#a88aff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.guild-history-values{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.guild-history-values strong{color:#d8caff;font-size:13px}
@media(max-width:560px){.guild-daily{grid-template-columns:1fr}.guild-daily>div{padding:10px 12px}.guild-history svg{height:76px}}

/* Guild-member drill-down.  These rules intentionally reuse the existing
   guild card palette so the detail view stays compact on Telegram screens. */
.guild-card.is-stale{border-color:rgba(244,203,120,.28)}.guild-stale-badge{padding:3px 7px;border-radius:999px;background:rgba(244,203,120,.12);color:var(--gold);font-size:8px;font-style:normal}.guild-stale-notice{margin:13px 0;padding:11px 13px;border:1px solid rgba(244,203,120,.25);border-radius:13px;background:rgba(244,203,120,.08);color:#e9d6ad;font-size:10px;line-height:1.5}
.guild-results-summary{margin:-4px 2px 10px;color:var(--muted);font-size:9px}.guild-load-more{width:100%;min-height:48px;margin-top:2px;border:1px solid rgba(244,203,120,.28);border-radius:15px;background:rgba(244,203,120,.07);color:var(--gold);font:700 10px inherit;cursor:pointer}.guild-load-more:hover{background:rgba(244,203,120,.12)}
.guild-summary-extended{grid-template-columns:repeat(3,minmax(0,1fr))}
button.guild-member{width:100%;grid-template-columns:48px minmax(0,1fr) 18px;color:var(--text);font:inherit;text-align:left;cursor:pointer}
button.guild-member:hover{border-color:rgba(244,203,120,.46);background:rgba(244,203,120,.075)}
.guild-member-open{color:var(--gold);font-size:23px;line-height:1;text-align:right}
.guild-member-detail{padding:2px 0 8px}.guild-member-detail-head{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:13px;margin:3px 0 18px}.guild-member-detail-head h2{margin:4px 0 5px;font:600 clamp(25px,7vw,38px)/1 Georgia,serif}.guild-member-avatar-large{width:64px;height:64px;border-radius:18px;font-size:25px}.guild-member-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.guild-member-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.guild-member-facts>div{padding:12px;border:1px solid rgba(255,255,255,.085);border-radius:14px;background:#ffffff06}.guild-member-facts small,.guild-member-facts strong{display:block}.guild-member-facts small{color:var(--muted);font-size:9px}.guild-member-facts strong{margin-top:5px;color:var(--text);font-size:12px}.guild-source-note{margin:14px 0 0;padding:11px 12px;border:1px solid rgba(244,203,120,.18);border-radius:13px;background:rgba(244,203,120,.055);color:#d8ceb8;font-size:10px;line-height:1.45}
@media(max-width:690px){.guild-summary-extended{grid-template-columns:repeat(2,minmax(0,1fr))}.guild-member-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.guild-member-facts{grid-template-columns:1fr}.guild-member-detail-head{grid-template-columns:56px minmax(0,1fr)}.guild-member-avatar-large{width:56px;height:56px}}
.guild-member-history{border-color:rgba(116,213,177,.25);background:linear-gradient(145deg,rgba(42,105,84,.22),rgba(255,255,255,.035))}.guild-member-history polyline{stroke:#8de2c0}.guild-member-history .guild-history-values{align-items:center;gap:10px}.guild-member-history .guild-history-values span:last-child{text-align:right}.guild-member-history .guild-history-values strong{color:#a4edcb;text-align:center}

/* Tier-3 trade analytics. */
.trade-periods{display:flex;gap:7px;margin:12px 0 16px}.trade-periods button{min-height:39px;padding:0 14px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff08;color:var(--muted);font:750 10px inherit}.trade-periods button.selected{border-color:rgba(244,203,120,.55);background:rgba(244,203,120,.14);color:var(--gold)}
.trade-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.trade-summary>div{padding:15px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(145deg,#211e2e,#15131e)}.trade-summary strong,.trade-summary small{display:block}.trade-summary strong{font:600 24px Georgia,serif;color:var(--gold)}.trade-summary small{margin-top:5px;color:var(--muted);font-size:9px}
.trade-chart,.trade-panel{margin:10px 0;padding:16px;border:1px solid rgba(255,255,255,.085);border-radius:19px;background:linear-gradient(145deg,rgba(31,28,43,.94),rgba(17,16,23,.98))}.trade-chart svg{display:block;width:100%;height:105px;margin:12px 0 6px}.trade-chart polyline{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.trade-ranking{display:grid;gap:7px;margin-top:13px}.trade-rank-row{display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:9px;padding:8px;border-radius:12px;background:#ffffff06}.trade-rank-row>b{color:var(--gold);text-align:center;font:700 15px Georgia,serif}.trade-rank-row span,.trade-rank-row a{min-width:0}.trade-rank-row strong,.trade-rank-row small{display:block}.trade-rank-row a{color:var(--text);text-decoration:none;font-weight:700;font-size:11px}.trade-rank-row small{margin-top:3px;color:var(--muted);font-size:8px}.trade-card-link{display:grid!important;grid-template-columns:37px minmax(0,1fr);align-items:center;gap:8px}.trade-card-thumb{width:37px;height:47px;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#302743;color:var(--gold);font-weight:900}.trade-card-thumb img{width:100%;height:100%;object-fit:cover}
.trade-flows{display:grid;gap:6px;margin-top:13px}.trade-flow{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 38px;align-items:center;gap:6px;padding:10px;border-radius:12px;background:#ffffff06;font-size:10px}.trade-flow span{color:var(--gold);text-align:center}.trade-flow b{padding:4px 7px;border-radius:99px;background:rgba(141,226,192,.12);color:var(--mint);text-align:center}.trade-list{display:grid;gap:10px}.trade-entry{padding:14px;border:1px solid rgba(255,255,255,.085);border-radius:18px;background:linear-gradient(145deg,rgba(31,28,43,.94),rgba(17,16,23,.98))}.trade-route{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) auto;align-items:center;gap:7px}.trade-route a{overflow:hidden;color:var(--text);font-weight:800;font-size:11px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.trade-route>span{color:var(--gold);text-align:center}.trade-route time{color:var(--muted);font-size:8px}.trade-sides{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.trade-sides>div{min-width:0;padding:9px;border-radius:13px;background:#ffffff05}.trade-sides>div>small{display:block;margin-bottom:8px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.trade-items{display:flex;flex-wrap:wrap;gap:6px}.trade-items>a,.trade-items>span{position:relative;width:58px;color:var(--text);text-decoration:none}.trade-items img,.trade-items>a>span,.trade-items>span>span{width:58px;height:76px;display:grid;place-items:center;object-fit:cover;border-radius:9px;background:#302743;color:var(--gold);font-weight:900}.trade-items b{display:block;margin-top:4px;overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.trade-items em{position:absolute;top:4px;right:4px;padding:2px 4px;border-radius:6px;background:#09090ddd;color:var(--gold);font-size:8px;font-style:normal}.trade-items>i{color:var(--muted);font-size:9px;font-style:normal}
.privacy-hidden #app,.privacy-hidden #nav,.privacy-print #app,.privacy-print #nav{filter:blur(32px)!important;opacity:.04!important;pointer-events:none!important;user-select:none!important}@media print{body *{visibility:hidden!important}}
@media(max-width:600px){.trade-summary{grid-template-columns:1fr 1fr}.trade-columns,.trade-sides{grid-template-columns:1fr}.trade-route{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}.trade-route time{grid-column:1/-1}.trade-flow{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 32px}}
.monitor-user-card.banned{border-color:rgba(231,107,125,.56);box-shadow:inset 3px 0 #e76b7d}.ban-badge{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:6px;background:rgba(231,107,125,.16);color:#f49aa8;font-size:7px;font-style:normal;vertical-align:2px}.pill.danger{border-color:rgba(231,107,125,.4);background:rgba(231,107,125,.12);color:#f49aa8}
.top-pane{padding:15px;border:1px solid rgba(255,255,255,.08);border-radius:19px;background:linear-gradient(145deg,rgba(31,28,43,.94),rgba(17,16,23,.98))}.top-updated{margin:0 0 10px}.top-rank-row{min-height:60px}.top-created-count{margin-left:auto;color:#c8b8ff;font-size:18px}.trade-panel .empty-state,.top-pane .empty-state{min-height:82px;margin:0;padding:18px}.bottom-nav button{min-width:0}.bottom-nav button span{font-size:16px}@media(max-width:390px){.bottom-nav button{font-size:7px}.bottom-nav{gap:2px;padding-left:5px;padding-right:5px}}
.trade-panel .state-card,.top-pane .state-card{min-height:82px;margin:0;padding:18px}
