/* Northern frontier: weathered brass, midnight blue and parchment. */
:root{--teal:#254b55;--muted:#76888c;--line:#c9b994;--paper:#f2ead9;--gold:#d2ae6d;color:#e3e7e3;background:#101f29;font-family:Inter,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color-scheme:dark}
body{background:radial-gradient(ellipse at 90% 0,#24445288,transparent 55%),repeating-linear-gradient(115deg,#ffffff02 0 1px,transparent 1px 7px),#101f29}
h1,h2,h3,.brand,.connect-art>span{font-family:Georgia,'Batang','AppleMyungjo',serif}
.sidebar{width:258px;background:linear-gradient(100deg,#0b1720,#142a34);border-right:1px solid #8e744448;box-shadow:10px 0 40px #0002;padding-top:32px}
.brand{color:#f1e5cc;letter-spacing:1px;font-size:23px}.brand-icon{color:#d6b779;text-shadow:0 0 24px #b6deed55}.brand small{color:#9dbaC1;font-family:Georgia,serif;font-size:9px;letter-spacing:2px}.brand:after{content:'◆';font-size:8px;margin-left:auto;color:#aa8b52}
.campaign-box{border:1px solid #9d835255;border-radius:2px;background:linear-gradient(135deg,#c9ac6510,transparent);position:relative;padding:20px 16px}.campaign-box:before{content:'✦';position:absolute;top:-9px;left:calc(50% - 10px);padding:0 5px;background:#11242e;color:#bf9e63;font-size:13px}.campaign-box strong{color:#e4d7bb;font-size:15px}.campaign-box .eyebrow{color:#bd9d63}.connection{font-size:11px}
.nav{min-height:48px;font-size:14px;border-radius:2px;border:1px solid transparent;color:#a8bcc3}.nav.active{background:linear-gradient(90deg,#35586688,#24414c44);border-color:#849a8b40;border-left:3px solid #d1ae70;color:#f1e5cb}.nav.active b{background:#0d1e29;color:#d9bd86;border:1px solid #a98d4f55;border-radius:2px}.side-action{font-size:12px;min-height:36px;color:#adbec4}.side-action:hover{color:#e6c78e}.sidebar-bottom p{font-size:11px;color:#8ca3ac}.sidebar-bottom>small{color:#8ca3ac}
.topbar{background:#0d1c26b8;border-bottom-color:#617f8133;color:#91a6ad;font-size:12px}.topbar strong{color:#ded8c9}.content{padding-top:30px}.eyebrow{color:#bb9d69;font-size:10px}.muted{color:#6f8a93}
.hero{min-height:352px;border:1px solid #b89b665e;border-radius:3px;background:linear-gradient(90deg,#0d1d2aec 0%,#0c1f2cc2 35%,#102b3930 75%),url('/images/frontier.jpg') center 53%/cover,#1b3543;box-shadow:0 18px 50px #0003,inset 0 0 70px #06131f66;isolation:isolate}
.hero:before{content:'';position:absolute;inset:8px;border:1px solid #c7af7c35;pointer-events:none;z-index:2}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#07131dd9,transparent 40%);pointer-events:none}.hero>div:first-child{padding:41px 38px;max-width:650px}.hero .eyebrow{color:#d4bc8b;font-size:10px;letter-spacing:2.4px}.hero h1{font-size:38px;line-height:1.5;letter-spacing:-1.7px;margin:18px 0 14px;color:#f8f1df;text-shadow:0 2px 20px #0008}.hero h1>span{color:#c6a261}.hero p{color:#bbcbd0;font-size:13px;line-height:1.9}.hero-tag{color:#cbb98f;font-size:11px;margin-top:23px}.hero-tag .dot{background:#d4b375;box-shadow:0 0 9px #d4b37566}.hero-seal{position:absolute;right:32px;top:32px;display:flex;align-items:center;flex-direction:column;color:#f0e4c6;opacity:.85;text-shadow:0 2px 12px #081a25}.hero-seal>span{font-size:44px}.hero-seal b{font:9px Georgia,serif;letter-spacing:2px;margin-top:10px}.hero-seal small{font-family:Georgia,'Batang',serif;font-size:11px;letter-spacing:3px;margin-top:8px}.hero-coordinate{position:absolute;bottom:22px;right:25px;z-index:2;color:#c5cbd1a0;font:8px Georgia,serif;letter-spacing:2px}
.stats{margin:20px 0 35px;gap:14px}.stats article{position:relative;background:linear-gradient(135deg,#243b48,#182e3b);border:1px solid #9f885348;border-radius:2px;padding:20px;box-shadow:0 4px 15px #0001}.stats article:after{content:'◆';position:absolute;right:12px;top:10px;color:#a38b5555;font-size:7px}.stat-icon{border:1px solid #b69b6155;background:#132735;color:#d5b77c;border-radius:50%;width:45px;height:45px}.stats small{color:#a4b7bd;font-size:12px}.stats strong{color:#eee4cf;font-size:29px}.stats em{color:#a5b7bc;font-size:12px}
.section-heading .eyebrow{color:#c0a36d;font-size:9px}.section-heading h2{font-size:26px;color:#eee4d1;letter-spacing:-.6px}.section-heading h2 span{color:#c9b078;font-family:Georgia,serif}.section-heading p{color:#a0b2ba;font-size:12px}.button{font-size:13px;border-radius:2px;min-height:44px;border-color:#9d8d6855;background:#203b49;color:#dce4e4;padding:11px 17px}.button.primary{background:linear-gradient(#c5a36a,#a77f42);color:#171f22;border:1px solid #dec18c;box-shadow:inset 0 1px #ffe9bd66,0 3px 12px #0002;font-weight:700}.button.primary:hover{background:linear-gradient(#dfbd83,#c29b5b)}.button.subtle{border-color:#829a9f55;color:#bfd0d4}.button.subtle:hover{background:#34505a}.button:focus-visible,a:focus-visible{outline-color:#ddbd80}.button.danger{background:#fff0;color:#aa4938;border-color:#a65f4866}
.filters{margin-top:23px}.search{background:#10232e;border-color:#6f899254;border-radius:2px;width:min(400px,100%)}.search input{font-size:13px;padding:13px 0;color:#e3e9e8}.search span{color:#bca578}input::placeholder,textarea::placeholder{color:#899da4}select{background:#172e3b;border-color:#78919855;color:#d0dce0;font-size:12px;border-radius:2px}.filters select{min-height:46px}
.record-grid{gap:20px}.character-card,.scenario-card{color:#343d3c;background:radial-gradient(ellipse at 30% 0,#fff9e9,transparent 70%),repeating-linear-gradient(5deg,#7a5a2804 0 1px,transparent 1px 4px),#ede3ce;border:1px solid #c7b385;border-radius:3px;box-shadow:0 6px 22px #0002;position:relative}.character-card:after,.scenario-card:after{content:'';position:absolute;inset:5px;border:1px solid #a98d4c33;pointer-events:none}.character-card:hover,.scenario-card:hover{box-shadow:0 10px 30px #0004;border-color:#ead3a0}.card-top{height:5px;background:linear-gradient(90deg,#304f55,#9cbbbc,#304f55)}.character-card:nth-child(3n+2) .card-top{background:linear-gradient(90deg,#8d6839,#d3b376,#8d6839)}.character-card:nth-child(3n) .card-top{background:linear-gradient(90deg,#4d526e,#a3a9bf,#4d526e)}.card-body{padding:25px}.character-avatar{width:74px;height:80px;border-radius:3px;border:1px solid #ac8c51;box-shadow:0 3px 12px #4b3e2933;background:#d0d3c6;object-fit:cover}.avatar{border-radius:3px;background:#d2d7ca;color:#49645f}.identity h3{font-size:22px;color:#293f44}.identity p{font-size:12px;color:#6a736b;line-height:1.6}.badge{background:#d8e1cd;color:#46614b;border:1px solid #9eaf8866;border-radius:2px;font-size:10px}.badge.retired,.badge.failure{background:#e5d4bc;color:#7c5e3d}.card-numbers{border-color:#b6a68155}.card-numbers>div+div{border-color:#b6a68155}.card-numbers small{font-size:10px;letter-spacing:1px;color:#7c7966}.card-numbers strong{font-size:25px;color:#384c4b}.card-numbers em{color:#7e7b67;font-size:10px}.card-bottom{font-size:11px;color:#707663}.card-bottom span:last-child{color:#496b68;font-weight:700}.scenario-number{background:#e1d5b8;color:#53645c;border:1px solid #bcaa7d;border-radius:2px}.scenario-card h3{font-size:20px}.scenario-card p,.scenario-meta{color:#6d766d;font-size:12px}.scenario-meta{border-color:#b6a68155}
.empty{min-height:255px;background:radial-gradient(ellipse at 50% 20%,#30495655,transparent 70%),#152b37;border:1px solid #a9915c55;border-radius:3px;position:relative}.empty:before,.empty:after{content:'✦';position:absolute;color:#b79a5e66;font-size:16px;top:13px}.empty:before{left:17px}.empty:after{right:17px}.empty-icon{color:#b9a675;font-size:38px}.empty h3{font-size:21px;color:#ded7c5}.empty p{font-size:13px;color:#9fb3bc;max-width:340px}.empty .button{margin-top:4px}.empty .button.subtle{border-color:#b59a6355;color:#e1c58e}
footer{color:#95a8af;font-size:10px;line-height:1.9}footer a{text-decoration:underline;text-decoration-color:#758c91}
dialog{color-scheme:light;color:#334b4d;background:radial-gradient(ellipse at 15% 0,#fff9e9,transparent 75%),repeating-linear-gradient(5deg,#86652a04 0 1px,transparent 1px 5px),#f0e7d5;border:1px solid #b99a60;border-radius:4px;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#07131dd9;backdrop-filter:blur(5px)}.connect-dialog{padding:30px;width:min(490px,calc(100% - 32px));overflow-x:hidden}.connect-art{height:166px;margin:-30px -30px 25px;background:linear-gradient(0deg,#0a1c2ada,#152b3a22),url('/images/frontier.jpg') 60% 55%/cover;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:3px solid #b59760;position:relative}.connect-art:before{content:'';position:absolute;inset:9px;border:1px solid #d4be8f55}.connect-art>span{color:#f2e4c6;font-size:35px;letter-spacing:6px;text-shadow:0 3px 15px #000}.connect-art>small{font-family:Georgia,'Batang',serif;color:#d7c195;font-size:12px;letter-spacing:6px;margin-top:8px}.connect-head{margin-bottom:21px}.connect-head .eyebrow{color:#9a7940;font-size:9px}.connect-head h2{font-size:25px;color:#2f4b50;margin-top:13px}.connect-head p{color:#6c766b;font-size:12px}.party-portraits{display:flex;justify-content:center;gap:12px;margin-top:19px}.party-portraits img{width:54px;height:58px;object-fit:cover;border:1px solid #a98a53;padding:2px;background:#dfd5bc;border-radius:2px;box-shadow:0 3px 9px #5f4c2922}.party-portraits img:nth-child(2){transform:translateY(-4px)}.connect-tabs{border:1px solid #c0b291;background:#e1d7c0;border-radius:2px;padding:3px}.connect-tabs button{font-size:12px;min-height:42px;border-radius:1px;color:#6e7565}.connect-tabs button.active{background:#f8f0dd;color:#355358;box-shadow:0 1px 5px #5442221a}
label{color:#526052;font-size:12px}label input,label textarea,label select{background:#fbf6e9;border-color:#c6b995;border-radius:2px;font-size:14px;padding:12px;min-height:45px;color:#33474b}label input:focus,label textarea:focus,label select:focus{border-color:#74958e;box-shadow:0 0 0 3px #356a631a}.hint,.section-hint{color:#757b69;font-size:11px}.connect-dialog .button.subtle,.editor .button.subtle{color:#526c6c;border-color:#b3b49988}.connect-dialog .button.subtle:hover,.editor .button.subtle:hover{background:#dce3d8}.editor-head{background:linear-gradient(110deg,#18313f,#2b4853);border-bottom:3px solid #b99b65;color:#f1e7d3}.editor-head .eyebrow{color:#d1b786;font-size:9px}.editor-head h2{font-size:26px}.icon-button{color:#d2dedd;min-width:44px;min-height:44px}.form-section h3{font-family:inherit;color:#3c5c5d;font-size:14px;border-color:#c1b28a}.editor-foot{background:#e5dbc5;border-color:#c4b184}.class-profile{background:#e0dfcc;border-color:#b8aa82;border-radius:3px;box-shadow:inset 0 0 20px #c0b08d22}.class-portrait{border:1px solid #9f8657;padding:3px;background:#efe5cb;border-radius:2px}.class-profile .class-facts strong{color:#324e51}.class-facts{background:#e2dfce;border-color:#bdae89;border-radius:3px}.class-facts strong{color:#36565b}.preset-perk{border-color:#bcae8c55}.perk-row input,.mastery-row input[type=text]{background:#fbf6e9;border-color:#c2b18b;border-radius:2px;color:#33474b}.combined-status{color:#7b7d67}.perk-checks input[type=checkbox],.mastery-row input[type=checkbox]{accent-color:#365c60}.toast{background:#29434d;border:1px solid #bb9f67;color:#f2e4c8;border-radius:2px}
@media(min-width:1450px){.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.sidebar{width:220px}.hero h1{font-size:32px}.hero-seal{right:20px;top:22px;opacity:.6}.hero-seal b{font-size:7px}.hero>div:first-child{padding:35px 28px}.stats article{padding:17px 13px}.stats small{font-size:11px}.character-avatar{width:60px;height:68px}.card-body{padding:22px}}
@media(max-width:760px){.sidebar{width:100%;padding:20px 20px 0;border-right:0;border-bottom:1px solid #a88d4f55;background:linear-gradient(120deg,#0d1c27,#203943)}.brand{font-size:22px}.brand:after{margin-left:12px}.brand small{font-size:8px}.campaign-box{border:0;background:none;padding:0;margin:17px 0}.campaign-box:before{display:none}.campaign-box strong{font-size:13px}.connection{font-size:10px}.nav{font-size:13px;min-height:47px}.side-action{font-size:11px;min-height:34px;margin:0}.sidebar-bottom{gap:5px 15px;padding-bottom:10px}.content{padding:18px 16px}.topbar{padding:0 18px;height:57px}.topbar .button{min-height:38px;font-size:11px}.hero{min-height:320px;background-position:center,61% center}.hero>div:first-child{padding:30px 24px 40px}.hero h1{font-size:29px;letter-spacing:-1.4px;margin-top:24px}.hero .eyebrow{font-size:8px;letter-spacing:1.6px}.hero p{font-size:12px;max-width:270px}.hero-tag{font-size:10px;margin-top:20px}.hero-seal{display:none}.hero-coordinate{font-size:6px;bottom:16px;right:17px}.stats{gap:7px;margin:13px 0 27px}.stats article{padding:16px 10px}.stats small{font-size:10px;line-height:1.5;min-height:15px}.stats strong{font-size:27px}.stats em{font-size:10px}.section-heading h2{font-size:24px}.section-heading p{font-size:11px}.section-heading .button{font-size:12px;min-height:44px;padding:10px}.section-heading .eyebrow{font-size:8px}.search input{font-size:12px}.filters select{font-size:12px;max-width:115px;padding:8px}.filters{margin:20px 0 16px}.record-grid{grid-template-columns:1fr}.character-avatar{width:68px;height:74px}.card-body{padding:23px}.identity h3{font-size:23px}.identity p{font-size:12px}.empty{min-height:240px;padding:25px}.empty h3{font-size:20px}.empty p{font-size:12px}.connect-dialog{padding:25px}.connect-art{margin:-25px -25px 23px;height:150px}.connect-head h2{font-size:23px}.connect-head p{font-size:11px}.connect-art>span{font-size:30px}.editor{max-height:94dvh}.editor-head h2{font-size:24px}.class-profile .class-facts span{font-size:12px}.preset-perk{font-size:14px}.card-numbers>div+div{padding-left:14px}.button{min-height:44px}.stats article:after{right:7px;top:6px;font-size:5px}footer{font-size:9px}}
@media(max-width:360px){.hero h1{font-size:26px}.stats small{font-size:9px}.section-heading h2{font-size:21px}.card-identity{gap:10px}.character-avatar{width:55px;height:65px}.badge{padding:4px 5px}.identity h3{font-size:21px}.connect-head h2{font-size:21px}}
/* Account and campaign library */
.password-label,#password-confirm-label{margin-top:17px}
[hidden]{display:none!important}
.campaigns-dialog{width:min(600px,calc(100% - 28px))}
.campaign-list{display:grid;gap:10px;margin:0 0 25px;max-height:35vh;overflow-y:auto;padding:2px}
.campaign-choice{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 15px;text-align:left;border:1px solid #bfad85;border-radius:2px;background:#faf3e3;color:#355157;min-height:76px}
.campaign-choice:hover,.campaign-choice.selected{background:#dce4d8;border-color:#769282}
.campaign-choice strong{display:block;font-family:Georgia,'Batang',serif;font-size:18px;overflow-wrap:anywhere}
.campaign-choice small{display:block;color:#76816c;font-size:11px;margin-top:8px}
.campaign-choice>span:first-child{min-width:0}.campaign-choice>span:last-child{flex-shrink:0;font-size:11px;color:#7e7049}
.campaign-empty{text-align:center;padding:23px 15px;color:#76816c;line-height:1.9;font-size:13px;border:1px dashed #c5b591}
#account-name{color:#d1b580;margin-left:5px;font-size:11px}
#campaign-logout{margin-top:18px}
@media(max-width:450px){.campaign-choice{padding:14px 10px}.campaign-choice strong{font-size:17px}.campaign-choice>span:last-child{font-size:10px}}

.admin-users{display:grid;gap:10px;max-height:50vh;overflow-y:auto}.admin-member{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border:1px solid #bfad85;background:#faf3e3}.admin-member strong{display:block;color:#355157;overflow-wrap:anywhere}.admin-member small{display:block;margin-top:7px;color:#76816c;font-size:11px}.admin-member .button.subtle{color:#775337;border-color:#b79a6f;flex-shrink:0}#admin-dialog .editor-head{margin:-30px -30px 20px;padding:20px 25px}@media(max-width:760px){#admin-dialog .editor-head{margin:-25px -25px 20px}.admin-member{padding:12px 10px}.admin-member .button{font-size:11px;padding:10px}}

.pending-invitations{border:1px solid #ad925d;background:#e5decb;padding:15px;margin-bottom:20px}.pending-invitations h3,.invite-members h3{font-size:15px;color:#36545a;margin:0 0 12px}.invitation-card{padding:14px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #b5a27a66}.invitation-card strong{display:block;font-size:17px;color:#344f54;overflow-wrap:anywhere}.invitation-card small{display:block;color:#74745f;font-size:11px;margin-top:6px}.invitation-actions{display:flex;gap:7px;flex-shrink:0}.invitation-actions .button{font-size:12px;padding:9px 12px}.invitation-actions .button.subtle{color:#64716a}.invite-members{margin-top:25px}.invite-members h3{margin-top:20px}.member-tags{display:flex;flex-wrap:wrap;gap:8px}.member-tags span{padding:8px 12px;border:1px solid #b5a27a66;background:#e5decb;color:#4c625b;font-size:12px}.member-tags small{color:#7a7e6c;font-size:12px}@media(max-width:400px){.invitation-card{align-items:flex-start;flex-direction:column}.invitation-actions{align-self:flex-end}}
