/* San Andreas Metropolitan Roleplay — shared player and staff interface. */
:root{--ink:#22272e;--muted:#747a80;--line:#e3e4e3;--paper:#f5f5f2;--nav:#171b20;--accent:#f2bd62;--accent-dark:#885711;--green:#397662;--radius:12px}
*{box-sizing:border-box}html{scroll-padding-top:90px}body{background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}a{color:#785019}a:hover{color:#a46918}button,input,select,textarea{font-family:inherit}h1,h2,h3{color:var(--ink)}h1{font-weight:650}h2{font-weight:650;letter-spacing:-.025em}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;color:#8b642e}.muted{color:#6c737b!important}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b97c27;outline-offset:4px}
.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{padding:29px 16px 18px;background:var(--nav);height:100vh;position:sticky;top:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#42464b var(--nav);border-right:1px solid #30343a;display:flex;flex-direction:column}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.wordmark{font-weight:750;font-size:23px;letter-spacing:-1px;color:#f5f4ee;gap:11px;white-space:nowrap}.wordmark:hover{color:white;text-decoration:none}.brand-mark{width:36px;height:40px;display:grid;place-items:center;background:var(--accent);color:#202226;border-radius:5px;font-size:27px;letter-spacing:-4px;padding-right:4px;font-weight:900;box-shadow:none;flex-shrink:0}.panel-caption{margin:17px 9px 20px;max-width:195px;font-size:9px;letter-spacing:.13em;line-height:1.65;color:#92999f}.nav-label{font-size:9px;letter-spacing:.16em;color:#979ea5;padding:20px 12px 10px;font-weight:700}.nav-item{font-size:12px;color:#bac1c7;padding:10px 12px;min-height:39px;gap:11px;border-radius:6px;margin:2px 0;font-weight:450;border:1px solid transparent}.nav-item svg{width:17px;height:17px;flex-shrink:0;color:#828d97}.nav-item:hover{background:#252a30;color:white;text-decoration:none}.nav-item.active{background:#f2bd6214;border-color:#f2bd6233;color:#f3c576;box-shadow:none}.nav-item.active svg{color:#f3c576}.nav-item.active:before{display:none}.unread-count{background:#f2bd62;color:#242424}.sidebar-bottom{margin-top:auto;padding:24px 11px 0;border-top:1px solid #30353a;margin-top:28px}.sidebar-bottom p{font-size:10px;line-height:1.7;color:#949da5}.sidebar-bottom a{color:#e4e7e8}.sidebar-bottom .edition{color:#c1c5c9;font-size:8px;letter-spacing:.13em}.nav-toggle{border:1px solid #53565a;border-radius:6px;background:transparent;color:#eee;font-size:12px;padding:9px 12px}.nav-toggle span{margin-left:8px}
.main-shell{min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:19px 38px;min-height:84px;gap:20px;font-size:12px}.breadcrumb{color:#898d91;font-weight:500;font-size:11px;letter-spacing:.07em}.slash{color:#c0c3c5;margin:0 13px}.user-menu{gap:10px}.avatar{width:35px;height:35px;background:#efece5;color:#654c27;font-size:13px;border:1px solid #e0d9ca;border-radius:50%}.user-menu strong{font-size:12px;font-weight:650}.user-menu small{font-size:10px;color:#82878d}.user-menu .text-button{font-size:11px;color:#777e83;border-left:1px solid #dedfdf;border-radius:0;padding-left:17px;margin-left:10px}.workspace{padding:30px 38px 18px;max-width:1540px;margin:auto}.page-heading{margin-bottom:28px;gap:24px}.page-heading h1{font-size:32px;line-height:1.15;letter-spacing:-.055em;margin:10px 0}.page-heading p{font-size:13px;line-height:1.7;color:#70777e;max-width:670px}.page-heading .eyebrow{margin-bottom:0}
.dashboard-hero,body[data-page=acp] .page-heading,body[data-page=live] .page-heading{padding:35px 34px 33px;border-radius:12px;background:#20262d url("district-map.svg") right 40%/58% auto no-repeat;position:relative;overflow:hidden;min-height:210px;align-items:flex-end;border:1px solid #333b44;isolation:isolate}.dashboard-hero:before,body[data-page=acp] .page-heading:before,body[data-page=live] .page-heading:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#20262d 10%,#20262ded 40%,#20262d10 100%);z-index:-1}.dashboard-hero h1,body[data-page=acp] .page-heading h1,body[data-page=live] .page-heading h1{color:#fff;font-size:39px;line-height:1.15}.dashboard-hero .eyebrow,body[data-page=acp] .page-heading .eyebrow,body[data-page=live] .page-heading .eyebrow{color:#efbe6e}.dashboard-hero p,body[data-page=acp] .page-heading p,body[data-page=live] .page-heading p{color:#c0c7ce;max-width:440px;margin-bottom:0}.dashboard-hero>div{max-width:70%}.dashboard-hero .primary{white-space:nowrap;background:var(--accent);color:#25282b;border-color:var(--accent)}body[data-page=acp] .page-heading .secondary,body[data-page=live] .page-heading .secondary{background:#ffffff0b;border-color:#697079;color:#f4f5f6}
.button{border-radius:6px;font-size:12px;font-weight:600;padding:11px 16px;min-height:40px;gap:9px;letter-spacing:0;box-shadow:none}.button svg{width:16px;height:16px}.primary{background:#232a31;color:white;border:1px solid #232a31}.primary:hover{background:#343d46;color:white;border-color:#343d46;text-decoration:none}.secondary{background:#fff;color:#414a53;border:1px solid #d7dadd}.secondary:hover{background:#f6f5f1;color:#3b342b;border-color:#c2b293;text-decoration:none}.button:disabled{cursor:not-allowed;opacity:.55}
.stats-grid{gap:17px;margin-bottom:24px}.stats-grid .stat{padding:22px 22px 19px;border:1px solid var(--line)!important;border-radius:9px;box-shadow:none;background:#fff;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:23px;height:3px;background:#d9a852;right:22px;top:26px}.stat>span{font-size:11px;color:#70757b;font-weight:500}.stat>strong{font-size:30px;font-weight:650;color:#252c34;letter-spacing:-.06em;margin:13px 0 6px;font-variant-numeric:tabular-nums}.stat strong em{font-size:9px;font-style:normal;letter-spacing:.06em;color:#a1855a}.stat small{font-size:10px;color:#92979d}.card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:25px;box-shadow:none;margin-bottom:22px}.card h2{font-size:16px;margin-bottom:19px;line-height:1.4}.card-heading{margin-bottom:19px;gap:16px}.card-heading h2{margin:0}.card-heading a{font-size:11px;color:#836332;font-weight:600}.card-heading>svg{color:#a1a6ac}.two-column{grid-template-columns:1.1fr 1fr;gap:23px}.character-card{background:white}.character-name{padding-bottom:22px;margin-bottom:23px;border-bottom:1px solid #ececea}.character-name h3{font-size:19px;letter-spacing:-.03em}.character-name p{font-size:11px;color:#868c91}.large-avatar{background:#f2ede4;color:#987339;border:1px solid #e8decf;width:54px;height:60px;border-radius:7px;font-size:24px}.detail-grid{gap:22px 25px}.detail-grid dt{font-size:10px;color:#94999e;margin-bottom:7px}.detail-grid dd{font-size:12px;color:#39434b;line-height:1.5}.small-icon{width:37px;height:39px;border-radius:6px;background:#f5f3ed;color:#897246}.portfolio-row{padding:16px 0;gap:13px}.portfolio-row strong{font-size:12px;font-weight:600}.portfolio-row small{font-size:10px;color:#969ba0}.portfolio-row b{font-size:22px;font-weight:600;color:#3d464f}.badge{font-size:9px;border-radius:4px;padding:4px 8px;letter-spacing:.015em}.badge.online,.badge.completed,.badge.available{background:#eaf2ed;color:#407255}.badge.online:before{content:"";height:5px;width:5px;background:#508c66;border-radius:50%;margin:4px 5px 0 0}.badge.offline{background:#f0f1f1;color:#80868d}.badge.open,.badge.pending,.badge.impounded{background:#fbf0dd;color:#936c2b}.badge.approved,.badge.staff,.badge.awaiting_player{background:#e9eef6;color:#536a8c}.badge.disabled,.badge.declined{background:#fae9e5;color:#a75045}
.notice{font-size:12px;border-radius:6px;padding:13px 16px;margin-bottom:22px;line-height:1.6}.notice.info{background:#eeefed;border-color:#e0e3e0;color:#68716a}.notice.error{background:#fbeeea;color:#9e4b3e;border-color:#eed3cb}.notice a{text-decoration:underline}.city-news{border-top:1px solid var(--line);background:#fdfcf9}.news-preview{padding:18px 0;border-color:#e9e8e2}.news-preview h3{font-size:17px}.news-preview p{font-size:12px;line-height:1.8}.news-preview a{font-size:11px}.activity-grid{gap:20px}.activity-grid .card h2{font-size:14px}.activity-grid p{font-size:12px;line-height:1.7}.empty{padding:34px 18px;border-radius:6px;background:#fafaf8}.empty h3{font-size:14px;color:#525b62}.empty p{font-size:12px;color:#8a9095;line-height:1.7}.empty>svg{color:#b3a588}.workspace-footer{color:#8d9195;font-size:9px;letter-spacing:.035em;padding:15px 0 8px}.count{font-size:11px;color:#92979c}
table{font-size:12px}th{font-size:10px;letter-spacing:.025em;padding:12px 18px 12px 0;color:#91979d;border-bottom:1px solid #e4e6e6}td{font-size:12px;padding:15px 18px 15px 0;border-bottom:1px solid #eee;line-height:1.55}tbody tr:hover{background:#fcfbf8}td small{font-size:10px}.table-wrap{border-radius:5px;max-width:100%}.form-stack label,.filters label{font-size:11px;color:#667079;font-weight:600;gap:8px}input,select,textarea{font-size:14px;border-color:#dfe1e1;border-radius:6px;background:#fcfcfb;padding:12px 13px;line-height:1.5;color:#29323a}input::placeholder,textarea::placeholder{color:#a1a6ab;font-size:12px}input:focus,textarea:focus,select:focus{outline:2px solid #c59854;outline-offset:1px;border-color:transparent;background:white}input[type=checkbox]{width:auto;min-width:16px;accent-color:#987239}summary{cursor:pointer;font-weight:600;line-height:1.6}.form-stack{gap:20px}.filters{gap:14px}.tab-links a{font-size:11px;border-radius:5px}.tab-links [aria-current=page]{background:#252d35;border-color:#252d35;color:white}.review-note{background:#f7f4ed}.message{border-radius:9px;box-shadow:none}.message.staff-message{border-left-color:#dcb267;background:#fffdfa}.message p{font-size:13px}.notification-row.is-unread{border-color:#c59b56;background:#fcf8ef}.notification-copy h2{font-size:13px}.security-summary p{font-size:12px}.staff-stats a:hover{border-color:#ba9a69!important}
.admin-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:0 0 25px}.tool-card{background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:13px;padding:19px;color:#3c454c}.tool-card:hover{border-color:#c5aa82;background:#fffdf7;text-decoration:none;color:#3c454c}.tool-card>div{min-width:0}.tool-card strong{font-size:12px;font-weight:650;display:block;margin-bottom:5px}.tool-card small{font-size:10px;color:#94999d;line-height:1.5;display:block}.tool-card>svg:last-child{margin-left:auto;width:14px;color:#a9aaab;flex-shrink:0}.tool-icon{width:34px;height:36px;flex-shrink:0;display:grid;place-items:center;background:#f5eee1;color:#9a763d;border-radius:6px}.tool-icon svg{width:18px}.acp-search{padding:29px}.acp-search .card-heading{padding-bottom:18px;border-bottom:1px solid #ececea}.acp-search .card-heading h2{margin-top:6px}.acp-search .empty{min-height:170px;display:flex;align-items:center;justify-content:center;flex-direction:column}.acp-search .filters{margin-bottom:20px}body[data-page=acp] .two-column .card{border-top:3px solid #d4b680}
.login-shell{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.login-brand{min-height:100vh;padding:45px 58px;background:#1c2229 url("district-map.svg") 115% 80%/105% auto no-repeat;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column}.login-brand:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1c2229 0,#1c2229c9 55%,#1c222911 100%);z-index:-1}.login-brand:after{display:none}.login-brand .wordmark{font-size:27px}.tiny-label{font-size:8px;color:#aeb5bc;letter-spacing:.16em;border-left:1px solid #61676d;padding-left:17px;margin-left:8px}.login-copy{padding:90px 0 75px;margin:auto 0;max-width:550px}.login-copy .eyebrow{color:#d5af73;max-width:360px;font-size:9px;line-height:1.8}.login-copy h1{font-size:clamp(42px,4.8vw,70px);line-height:1.06;color:#f7f7f2;letter-spacing:-.055em;font-weight:600;margin:25px 0}.login-copy h1 span{color:#f2bd62}.login-copy p{color:#a7b0b9;font-size:13px;line-height:1.9;max-width:360px}.login-coordinate{margin:0 0 37px;padding-left:14px;border-left:2px solid #cfab72;font-family:Consolas,monospace;font-size:10px;letter-spacing:.1em;color:#c7c9c9}.login-coordinate span{display:block;margin-top:8px;color:#697784;font-size:8px}.login-foot{font-size:8px;letter-spacing:.12em;color:#8e979f;padding-top:22px;border-top:1px solid #434950;gap:20px;line-height:1.6}.login-form{background:#f5f5f1;display:flex;align-items:center;justify-content:center;padding:65px 45px}.login-box{max-width:400px;width:100%;padding:0;background:none;border:0;box-shadow:none;border-radius:0}.login-box>.eyebrow{color:#a17d44;font-size:9px}.login-box h2{font-size:38px;letter-spacing:-.055em;margin:16px 0 12px}.login-box>.muted{font-size:13px;line-height:1.8;margin-bottom:34px}.login-box form{gap:22px}.login-box input{background:#fff;padding:14px;font-size:15px}.login-box .button{background:#232a31;color:white;min-height:49px;margin-top:4px;justify-content:space-between;font-size:13px}.login-box>p>a{display:inline-block;font-size:11px;margin-top:19px;font-weight:600}.login-help{font-size:11px;color:#8a9196;line-height:1.8;margin-top:27px;padding-top:23px;border-top:1px solid #deded9}.local-pill{background:#eaece7;border:1px solid #dcdfd8;color:#777f77;font-size:8px;letter-spacing:.07em;border-radius:4px;padding:6px 9px;display:inline-block;margin-top:18px}
.public-site{background:var(--paper);color:var(--ink)}.public-header{background:#1c2229;padding-top:24px;padding-bottom:24px}.public-brand{font-size:26px;font-weight:800;letter-spacing:-1px;color:#f2bd62;gap:18px}.public-brand span{max-width:190px;font-size:9px;line-height:1.6;letter-spacing:.1em;color:#c1c5c9}.public-header nav{gap:21px}.public-header nav a{font-size:11px;color:#c2c9cf}.public-header nav a[aria-current=page]{color:#f2bd62}.public-header .primary{background:#f2bd62;color:#25282b;border-color:#f2bd62}.public-main{max-width:1250px}.public-hero{max-width:none;margin:28px 0 30px;padding:60px 45px;background:#232a31 url("district-map.svg") right center/60% auto no-repeat;border-radius:12px;color:white;position:relative;isolation:isolate;overflow:hidden}.public-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#232a31 15%,#232a31ea 45%,#232a3100);z-index:-1}.public-hero h1{color:#fff;font-size:clamp(45px,6vw,72px);letter-spacing:-.055em;margin:20px 0}.public-hero .eyebrow{color:#dbb477}.public-hero p{max-width:520px;color:#b6c0c7;font-size:14px;line-height:1.9}.public-hero .primary{background:#f2bd62;color:#25282b;border-color:#f2bd62}.public-hero .secondary{background:#ffffff09;color:#eee;border-color:#646d75}.public-hero.compact{padding:40px}.public-hero.compact h1{font-size:42px}.public-main .activity-grid{margin-bottom:30px}.public-main .activity-grid .card{padding:26px}.public-footer{font-size:11px;border-color:#dedfdb}.join-steps p{font-size:13px;line-height:1.8}
@media(min-width:1600px){.workspace{padding-top:38px}.topbar{padding-left:38px}}
@media(min-width:961px){.nav-toggle{display:none!important}}
@media(max-width:1250px){.app-shell{grid-template-columns:225px minmax(0,1fr)}.workspace{padding:25px}.topbar{padding:18px 25px}.dashboard-hero{padding:27px;min-height:200px}.dashboard-hero h1{font-size:32px}.admin-tools{grid-template-columns:1fr}.tool-card{padding:15px 20px}.stat>strong{font-size:26px}.stats-grid{gap:12px}.stats-grid .stat{padding:20px 17px}.stat:after{right:16px;width:17px}.login-brand{padding:40px}.tiny-label{display:none}}
@media(max-width:960px){.app-shell{display:block}.sidebar{position:relative;height:auto;padding:18px 24px;overflow:visible}.sidebar .brand-mark{height:32px;width:31px;font-size:23px}.sidebar .wordmark{font-size:21px}.panel-caption,.sidebar-bottom{display:none}.navigation-panel{margin-top:16px}.navigation-panel nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.portal-js .navigation-panel{display:none}.portal-js .navigation-open .navigation-panel{display:block}.sidebar .nav-label{padding-top:14px}.topbar{min-height:72px;align-items:center}.topbar>div:first-child{display:block}.user-menu{width:auto}.topbar .user-menu form{margin-left:0}.two-column{grid-template-columns:1fr 1fr}.page-heading{flex-direction:row;align-items:center}.dashboard-hero{align-items:flex-end;min-height:200px}.dashboard-hero>div{max-width:70%}.login-brand{padding:35px}.login-copy{padding:60px 0}.login-copy h1{font-size:47px}.login-form{padding:35px}.login-foot{flex-direction:column;gap:4px}.login-box h2{font-size:33px}.activity-grid{grid-template-columns:1fr 1fr}.public-header{padding:22px 24px}.public-header nav{gap:18px}.public-hero p{max-width:440px}.admin-tools{grid-template-columns:1fr 1fr}.admin-tools .tool-card:last-child{grid-column:1/-1}}
@media(max-width:680px){.workspace{padding:20px 16px}.sidebar{padding:16px 19px}.navigation-panel nav{grid-template-columns:1fr 1fr}.nav-item{font-size:11px;padding:10px 8px}.topbar{padding:13px 19px}.topbar>div:first-child{display:none}.user-menu{width:100%}.user-menu form{margin-left:auto!important}.user-menu .text-button{font-size:11px}.page-heading{flex-direction:column;align-items:flex-start;gap:17px}.page-heading h1{font-size:29px}.page-heading p{font-size:12px}.dashboard-hero,body[data-page=acp] .page-heading,body[data-page=live] .page-heading{padding:25px 23px;min-height:235px;gap:23px;background-size:auto 135%;background-position:110% 50%;align-items:flex-start}.dashboard-hero>div{max-width:100%}.dashboard-hero h1,body[data-page=acp] .page-heading h1,body[data-page=live] .page-heading h1{font-size:32px}.dashboard-hero p{font-size:12px;max-width:310px}.dashboard-hero .button{align-self:flex-start}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stats-grid .stat{padding:19px 15px}.stat>strong{font-size:25px;letter-spacing:-.05em}.stat:after{display:none}.stat>span{font-size:10px}.stat small{font-size:9px;line-height:1.5}.card{padding:21px 19px}.card h2{font-size:15px}.two-column,.activity-grid,.admin-tools{grid-template-columns:1fr;gap:0}.admin-tools{gap:10px}.admin-tools .tool-card:last-child{grid-column:auto}.detail-grid{gap:20px}.character-name h3{font-size:17px}.card-heading{align-items:center}.card-heading a{font-size:10px}.workspace-footer{font-size:8px;flex-wrap:wrap}.table-wrap{margin-top:8px}.form-row{grid-template-columns:1fr}.form-stack input,.form-stack select,.form-stack textarea,.filters input,.filters select{font-size:16px}.filters label{width:100%}.login-shell{display:block}.login-brand{padding:26px 25px;min-height:0;background-size:85%;background-position:right 35%}.login-brand .wordmark{font-size:22px}.login-copy{padding:35px 0 14px;margin:0}.login-copy h1{font-size:40px;margin:13px 0 16px}.login-copy h1 br:last-child{display:none}.login-copy p{display:block;font-size:12px;max-width:320px;margin-bottom:7px}.login-copy .eyebrow{font-size:8px}.login-coordinate,.login-foot{display:none}.login-form{padding:34px 25px 45px}.login-box{padding:0}.login-box h2{font-size:31px}.login-box>.muted{margin-bottom:24px}.login-help{margin-top:24px}.public-brand{font-size:25px}.public-brand span{font-size:8px;max-width:150px}.public-header nav{gap:16px}.public-header nav a{font-size:10px}.public-main{padding:0 16px 30px}.public-hero{padding:35px 25px;margin-top:20px;background-size:auto 100%}.public-hero h1{font-size:44px}.public-hero p{font-size:12px}.public-hero.compact{padding:30px 25px}.public-hero.compact h1{font-size:34px}.public-hero .button-row{gap:10px}.public-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Original UCP artwork, framed to exclude its transparent square margins. */
.ucp-logo{display:block;position:relative;width:180px;aspect-ratio:1160/450;overflow:hidden;flex-shrink:0}
.ucp-logo img{position:absolute;width:110.34483%;max-width:none;height:auto;left:-4.310345%;top:-91.11111%;display:block}
.login-brand .ucp-logo{width:240px}
.public-brand .ucp-logo{width:200px;max-width:none}
.sidebar .wordmark{min-width:0}
@media(max-width:1250px){.sidebar .ucp-logo{width:165px}}
@media(max-width:960px){.sidebar .ucp-logo{width:150px}}
@media(max-width:680px){.login-brand .ucp-logo{width:200px}.public-brand .ucp-logo{width:180px}}
