:root{
  color-scheme:dark;
  --bg:#06182e;--surface:#0b2442;--surface2:#0e2a4a;--surface3:#12355d;
  --ink:#eff7ff;--muted:#a4bfd9;--soft:#cce2f4;--blue:#2491ff;--cyan:#53c9ff;
  --brand:#0b65d6;--line:rgba(141,190,255,.18);--line2:rgba(141,190,255,.32);
  --green:#71e2be;--amber:#ffcc79;--red:#ff8f93;--shadow:0 18px 55px rgba(0,9,30,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% -20%,#15447d 0%,transparent 38%),var(--bg);color:var(--ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
a{color:var(--cyan)}
.layout{max-width:1440px;min-height:100vh;margin:0 auto;display:grid;grid-template-columns:238px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(164deg,#071b36 0%,#07162a 100%);border-right:1px solid var(--line);padding:29px 16px 20px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:9px;padding:0 4px 33px;min-width:0}
.brand-image{height:49px;width:49px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(36,145,255,.15))}
.brand strong{font-size:16px;letter-spacing:-.3px;white-space:nowrap;display:block}
.brand small{display:block;font-size:11px;color:#a8c5e5;margin-top:5px;line-height:1.35}
.nav{display:grid;gap:7px}
.nav button{width:100%;display:flex;align-items:center;gap:12px;border:1px solid transparent;text-align:left;padding:12px 13px;border-radius:12px;background:transparent;color:#91b2d7;transition:background .15s,color .15s}
.nav button:hover{background:#102d51;color:white}
.nav button.active{background:linear-gradient(110deg,#0e4eab,#155fbd);border-color:rgba(137,198,255,.28);color:#fff;box-shadow:0 7px 18px rgba(0,57,135,.18)}
.nav .symbol{font-size:21px;line-height:1;width:25px;text-align:center;font-family:Georgia,serif;color:#77c8ff}
.nav button.active .symbol{color:#fff}
.side-foot{margin-top:auto;padding:16px 9px;font-size:11px;color:#8babc9;letter-spacing:1.1px;line-height:1.7}
.side-foot p{color:#bed4ec;letter-spacing:0;font-size:12px}
.main{min-width:0;padding:30px clamp(18px,3.6vw,54px) 65px}
.top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.6px;text-transform:uppercase;color:#75c9ff}
.top h1{font-size:26px;line-height:1.2;letter-spacing:-.8px;margin:6px 0 5px}
.top small{color:var(--muted);font-size:12px}
.top-right{display:flex;align-items:center;gap:13px}
.language-switch{display:inline-flex;align-items:center;border:1px solid var(--line2);background:#092341;border-radius:30px;padding:3px;gap:2px;flex-shrink:0}
.language-switch button{min-width:38px;padding:7px 10px;color:var(--muted);border:0;border-radius:24px;font-size:12px;background:transparent;font-weight:700}
.language-switch button.selected{background:var(--blue);color:white;box-shadow:0 2px 8px rgba(0,111,234,.32)}
.avatar{flex-shrink:0;width:39px;height:39px;border:1px solid rgba(147,205,255,.6);border-radius:50%;background:linear-gradient(135deg,#2f91fa,#1a4382);color:#fff;font-size:17px;font-weight:800}
.banner{border:1px solid rgba(255,204,121,.35);background:rgba(248,164,55,.12);color:#ffdfaa;border-radius:12px;padding:14px 16px;font-size:12px;line-height:1.7;margin-bottom:19px}
.demo-banner{border-color:rgba(105,189,255,.34);background:rgba(25,93,166,.19);color:#cde9ff}
.demo-banner strong{font-size:10px;color:#81d8ff;letter-spacing:1.5px;margin-right:7px}
.hero{position:relative;overflow:hidden;background:linear-gradient(112deg,#0b315f 0%,#0a448f 52%,#095cbc 100%);color:#fff;border:1px solid rgba(127,191,255,.37);
  border-radius:23px;padding:35px 35px 33px;box-shadow:var(--shadow);isolation:isolate}
.hero::before{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(139,206,255,.22);transform:rotate(35deg);right:-120px;top:-180px;z-index:-1}
.hero::after{content:"";position:absolute;width:285px;height:285px;transform:rotate(45deg);background:linear-gradient(135deg,rgba(22,153,255,.24),rgba(22,153,255,0));right:4%;top:10%;z-index:-1}
.hero .eyebrow{color:#a9dafa}
.hero h2{font-size:clamp(26px,4vw,38px);line-height:1.3;letter-spacing:-1px;max-width:630px;margin:17px 0 14px}
.hero p{max-width:630px;color:#d2e7ff;font-size:14px;line-height:1.85;margin:0;position:relative}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}
.hero-mark{font-size:250px;font-weight:900;font-style:italic;font-family:Arial,sans-serif;position:absolute;right:5%;top:-49px;color:rgba(181,226,255,.10);pointer-events:none}
.hero-home{min-height:247px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.hero-missions{min-height:220px;background:linear-gradient(125deg,#0a2c57,#104d9e 73%,#1366b5)}
.blind-graphic{position:absolute;right:9%;top:25px;display:grid;place-items:center;width:122px;height:122px;background:linear-gradient(145deg,#55d4ff,#116fd9 48%,#073c97);
  border:2px solid #75deff;border-radius:24px;transform:rotate(-13deg);font-size:76px;font-weight:850;text-shadow:0 2px 20px rgba(255,255,255,.5);box-shadow:0 19px 48px rgba(0,16,52,.4)}
.blind-graphic::after{content:"";inset:9px;position:absolute;border:1px solid rgba(255,255,255,.33);border-radius:15px}
.hero-ranking{padding-right:150px}
.hero-trophy{position:absolute;right:45px;top:6px;font-family:Georgia,serif;font-size:180px;color:rgba(195,232,255,.22);transform:rotate(-11deg)}
.btn{border:1px solid transparent;border-radius:12px;padding:12px 19px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:13px;font-weight:750;text-decoration:none;transition:transform .12s,box-shadow .12s}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn.primary{background:linear-gradient(108deg,#168cff,#1266e3);color:#fff;box-shadow:0 6px 16px rgba(13,96,207,.18)}
.btn.gold{background:#fff;color:#0a3c78;box-shadow:0 6px 25px rgba(0,29,87,.12)}
.btn.white{background:rgba(255,255,255,.1);color:white;border-color:rgba(198,234,255,.42)}
.btn.outline{background:#11345b;color:#cfeeff;border-color:rgba(118,188,255,.27)}
.btn.negative{background:rgba(240,107,115,.11);color:#ffb5ba;border-color:rgba(240,107,115,.38)}
.btn.small{padding:8px 12px;min-height:35px;font-size:12px}
.section{margin-top:25px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.section-head h2{font-size:18px;letter-spacing:-.35px;margin:0}
.section-head small,.muted{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{background:linear-gradient(160deg,var(--surface2),var(--surface));border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 6px 20px rgba(0,12,37,.09);min-width:0}
.metric-card{position:relative;overflow:hidden;min-height:130px}
.metric-card:after{content:"";position:absolute;right:-24px;bottom:-45px;transform:rotate(45deg);width:120px;height:120px;border:1px solid rgba(115,199,255,.1)}
.metric-icon{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;background:rgba(36,145,255,.16);color:#78d4ff;border-radius:11px;font-size:23px}
.metric{font-size:32px;font-weight:800;letter-spacing:-.7px;margin:9px 0 3px;color:#fff;font-variant-numeric:tabular-nums}
.metric-label{color:var(--muted);font-size:12px}
.columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:15px}
.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.quick-action{border:1px solid var(--line);background:linear-gradient(135deg,#113457,#092844);border-radius:16px;min-height:96px;text-align:left;color:var(--ink);
  padding:15px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:13px;font-weight:750;position:relative}
.quick-action:hover{border-color:#439fef;background:#143d6d}
.quick-icon{font-family:Georgia,serif;color:#6acbff;font-size:24px;line-height:1}
.quick-arrow{position:absolute;right:14px;top:15px;font-size:17px;color:#9dc5eb}
.notice{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.notice:last-child{border-bottom:0}
.notice strong{display:block;font-size:13px;margin-bottom:6px;line-height:1.5}
.notice p{font-size:12px;color:var(--soft);white-space:pre-wrap;margin:4px 0 6px;line-height:1.7}
.notice time{font-size:11px;color:var(--muted)}
.dot{flex-shrink:0;width:9px;height:9px;border-radius:50%;margin-top:6px;background:#6cbbff}
.dot.warning{background:#ffbd5b}.dot.urgent{background:#ff777a}
.empty{border:1px dashed var(--line2);border-radius:16px;padding:34px 19px;text-align:center;background:rgba(6,29,55,.34)}
.empty-icon{font-size:40px;color:#72c6ff;margin-bottom:10px;font-family:Georgia,serif}
.empty h3{font-size:16px;margin:0 0 9px}.empty p{font-size:13px;color:var(--muted);line-height:1.8;margin:0 0 16px}
.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field label{font-size:12px;font-weight:750;color:#d1e4f6;line-height:1.5}
.input{color:var(--ink);width:100%;min-width:0;border:1px solid rgba(136,192,246,.31);border-radius:10px;padding:12px;background:#081e38;outline:none;min-height:43px}
.input::placeholder{color:#7799b9}
.input:focus{border-color:#40b2ff;box-shadow:0 0 0 3px rgba(34,156,255,.15)}
.input option{background:#0e2949;color:white}
textarea.input{min-height:100px;resize:vertical}
.check-list{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0 2px}
.check-list label{display:inline-flex;gap:8px;align-items:center;font-size:12px;color:#c6dcf1;line-height:1.5}
input[type=checkbox]{accent-color:#168dff;width:16px;height:16px;flex:none}
.full{grid-column:1/-1}.full-width{width:100%;margin-top:22px}
.trip-card{display:flex;gap:12px;justify-content:space-between;align-items:center}
.trip-name{font-size:16px;font-weight:750;line-height:1.6}
.trip-card p{font-size:12px;color:var(--muted);margin:7px 0 0;line-height:1.6}
.trip-destination{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px;line-height:1.6}
.travel-icon{font-size:22px;color:#7bcdff}
.stage-strip{display:flex;gap:8px;margin-top:21px}
.stage-strip span{flex:1;text-align:center;background:rgba(40,126,223,.12);border:1px solid var(--line);border-radius:10px;padding:11px 4px;font-size:11px;color:#cde8ff}
.card-actions{margin-top:16px}
.stack{display:grid;gap:13px}
.tag{display:inline-flex;align-items:center;border-radius:40px;background:rgba(105,157,213,.15);color:#a9d2f5;border:1px solid rgba(124,176,232,.16);
  padding:4px 9px;margin-right:3px;font-size:10px;font-weight:750;white-space:nowrap}
.tag.blue{color:#a8e2ff;background:rgba(28,132,242,.21);border-color:rgba(94,191,255,.27)}
.tag.amber{color:#ffd68b;background:rgba(239,174,48,.14);border-color:rgba(239,174,48,.24)}
.tag.red{color:#ffb9b9;background:rgba(230,88,90,.11)}
.pill-tabs{display:flex;gap:7px;overflow-x:auto;margin:19px 0 22px;padding-bottom:2px}
.pill-tabs button{background:#082340;border:1px solid var(--line2);border-radius:30px;padding:9px 14px;color:#a5bfd6;white-space:nowrap;font-size:12px}
.pill-tabs button.selected{background:#1276dc;border-color:#409dff;color:white;font-weight:750}
.mission-card{display:flex;flex-direction:column;gap:14px}
.mission-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.mission-card h3{font-size:17px;line-height:1.5;margin:10px 0 0}
.mission-card > p{color:#d2e1f1;font-size:13px;line-height:1.8;margin:0}
.mission-note{border-radius:13px;padding:12px 15px;background:#081e37;border:1px solid var(--line)}
.mission-note strong{font-size:12px;color:#b9dfff}
.mission-note p{font-size:12px;line-height:1.8;color:#a9c5df;margin:7px 0 0}
.mission-card footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:13px;border-top:1px solid var(--line)}
.mission-card footer .muted{font-size:11px;line-height:1.6}
.points{color:#ffda87;white-space:nowrap;font-size:13px;font-weight:850;margin-top:3px}
.ranking-controls{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.segmented{border:1px solid var(--line2);border-radius:12px;padding:4px;display:inline-flex;background:#091f3b;gap:4px}
.segmented button{border:0;background:transparent;color:#a9c6df;border-radius:9px;padding:10px 15px;font-size:12px;font-weight:700}
.segmented button.active{background:linear-gradient(110deg,#1379eb,#115dc7);color:#fff;box-shadow:0 3px 10px rgba(8,87,188,.22)}
.my-rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:16px}
.my-rank-card{padding:18px 21px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;background:linear-gradient(110deg,#0b315d,#102b50)}
.my-rank-card>small{color:#a9c9e9;font-size:12px}
.my-rank-card>strong{font-size:31px;font-variant-numeric:tabular-nums;line-height:1.2;color:white}
.my-rank-card>strong em{font-size:12px;font-style:normal}
.my-rank-card>span{font-size:11px;color:#a7c7e4;line-height:1.6}
.leaderboard-card{padding:22px}
.podium{display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:end;gap:9px;margin:23px 0 22px;min-height:213px}
.podium-place{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;min-width:0}
.podium-avatar{display:grid;place-items:center;width:54px;height:54px;border:2px solid #a4bcd7;border-radius:50%;background:#153b6c;font-size:23px;font-weight:800;color:#fff}
.place-1 .podium-avatar{width:63px;height:63px;border-color:#ffdd86;background:#174f8f;box-shadow:0 0 22px rgba(255,201,86,.1)}
.place-3 .podium-avatar{border-color:#d6a186}
.podium-place strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.podium-place>small{font-size:10px;color:var(--muted);min-height:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podium-place>b{font-size:15px;color:#fff;font-variant-numeric:tabular-nums}.podium-place>b small{font-size:10px;color:#a9cfe9}
.podium-medal{font-family:Georgia,serif;font-size:28px;color:#c4d5f5}.place-1 .podium-medal{color:#ffd376}.place-3 .podium-medal{color:#e9a886}
.podium-base{height:27px;width:100%;display:grid;place-items:center;background:linear-gradient(180deg,#215c99,#12355f);border-top:2px solid #68afea;border-radius:6px 6px 0 0;color:#cee8ff;font-weight:800}
.place-1 .podium-base{height:48px;background:linear-gradient(180deg,#9c741f,#614923);border-top-color:#ffdc91;color:#ffe2a3}
.place-3 .podium-base{height:22px;background:linear-gradient(180deg,#7a4e3f,#573a37);border-top-color:#d9a68e}
.rank-table-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;color:#83a9ce;font-size:11px;padding:12px 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rank-table-head span:last-child{text-align:right}
.rank-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;align-items:center;padding:11px 8px;border-bottom:1px solid var(--line);min-width:0}
.rank-row:last-child{border-bottom:0}.rank-row.my-row{border:1px solid rgba(66,173,255,.6);border-radius:10px;background:rgba(23,107,210,.18);margin:3px 0}
.rank-num{text-align:center;color:#8eaecb;font-size:17px;font-weight:800;font-family:Georgia,serif}.rank-num.top3{color:#ffd17b}
.rank-person{display:flex;align-items:center;gap:10px;min-width:0}
.person-initial{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;flex:none;background:#184779;color:#d8eeff;font-weight:750}
.person-name{display:flex;flex-direction:column;gap:4px;min-width:0}.person-name strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.person-name small{color:#8fbbdf;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-score{white-space:nowrap;color:#81ccff;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.rank-score small{font-size:10px;color:#aacde9;font-weight:500}
.ranking-privacy{font-size:12px;color:var(--muted);line-height:1.7;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.reward-banner{border:1px solid rgba(255,201,111,.28);background:linear-gradient(112deg,#27334c,#213d5b 68%,#1d5185);border-radius:18px;padding:21px;
  display:flex;align-items:center;gap:17px;flex-wrap:wrap}
.reward-icon{font-family:Georgia,serif;font-size:46px;color:#ffd087}
.reward-banner div{flex:1;min-width:200px}.reward-banner strong{font-size:16px;color:#ffe3a6}.reward-banner p{font-size:12px;color:#d3ddec;line-height:1.7;margin:5px 0 0}
.privacy-note{font-size:12px;line-height:1.9;color:var(--muted);padding:19px 0}
.admin-summary{display:flex;gap:8px;flex-wrap:wrap}
.admin-task{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}
.admin-task strong{font-size:13px;line-height:1.8}
.admin-task p{font-size:12px;color:var(--muted);line-height:1.7;margin:7px 0 0}
.admin-task .actions{display:flex;gap:6px;justify-content:flex-end;align-items:start;flex-wrap:wrap}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 75% 4%,#174b85 0%,transparent 40%),#06182e}
.auth-card{width:min(480px,100%);border:1px solid rgba(116,187,255,.32);background:linear-gradient(150deg,#10335a,#0b2443);border-radius:23px;padding:30px;box-shadow:0 20px 75px rgba(0,10,32,.4)}
.auth-head{display:flex;gap:10px;align-items:center;margin-bottom:30px}.auth-head>div:nth-child(2){flex:1;min-width:0}.auth-head strong{font-size:16px;display:block}.auth-head small{display:block;color:var(--muted);margin-top:3px;font-size:11px}
.auth-logo{width:53px;height:53px;object-fit:contain}
.auth-card h1{font-size:27px;margin:12px 0}.auth-card p{color:#bcd2e6;font-size:13px;line-height:1.8;margin:10px 0 22px}
.auth-card .form-field{margin-top:20px}.auth-card .auth-foot{color:#8fb4d4;font-size:11px;margin-bottom:0}
.toast{position:fixed;z-index:100;bottom:22px;right:22px;background:#166ac2;color:white;border:1px solid #55b5ff;border-radius:12px;padding:13px 17px;box-shadow:var(--shadow);max-width:min(370px,calc(100vw - 40px));font-size:13px;line-height:1.6}
.splash{min-height:100vh;display:grid;place-content:center;justify-items:center;text-align:center}.splash-icon{font-size:48px;color:var(--cyan)}.splash h1{margin:10px 0 3px}.splash p{color:var(--muted)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7ed2ff;outline-offset:3px}
@media(max-width:1040px){.layout{grid-template-columns:205px minmax(0,1fr)}.main{padding:25px 22px 55px}.sidebar{padding:25px 12px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:790px){
  .layout{display:block;padding-bottom:calc(75px + env(safe-area-inset-bottom))}.sidebar{display:contents}.sidebar .brand,.side-foot{display:none}
  .nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;justify-content:space-around;gap:0;height:auto;min-height:69px;
    background:rgba(6,23,44,.97);border-top:1px solid rgba(92,158,222,.32);backdrop-filter:blur(14px);
    padding:7px max(2px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,10,30,.28)}
  .nav button{flex:1;display:flex;min-width:0;flex-direction:column;justify-content:center;gap:4px;border-radius:9px;padding:5px 1px;font-size:10px;text-align:center;color:#a5c4e3;line-height:1.25;white-space:nowrap}
  .nav button.active{background:rgba(15,111,234,.25);border-color:transparent;box-shadow:none;color:#7bd5ff}
  .nav .symbol{width:auto;font-size:20px;line-height:1.1}
  .main{padding:19px 16px 30px}.top h1{font-size:22px}.top{margin-bottom:18px}
  .columns{grid-template-columns:1fr}.hero{padding:26px 23px}.hero h2{font-size:28px}.hero-mark{font-size:170px;top:7px}
  .cards{gap:9px}.card{padding:15px}.metric{font-size:27px}
  .admin-task{grid-template-columns:1fr}.admin-task .actions{justify-content:flex-start}
  .podium{min-height:195px}.hero-ranking{padding-right:80px}.hero-trophy{font-size:122px;right:8px;top:39px}
}
@media(max-width:430px){
  .main{padding-left:13px;padding-right:13px}.eyebrow{font-size:9px}.top small{font-size:10px}
  .top-right{gap:7px}.language-switch button{min-width:31px;padding:5px 6px;font-size:11px}.avatar{width:34px;height:34px}
  .hero{padding:25px 20px}.hero h2{font-size:26px}.hero p{font-size:12px}.hero-home{min-height:250px}
  .hero-actions .btn{font-size:12px;padding:10px 13px}.hero-missions{padding-right:100px;min-height:206px}
  .hero-missions h2{font-size:23px}.blind-graphic{width:78px;height:78px;right:14px;top:39px;font-size:48px;border-radius:16px}
  .cards{gap:8px}.metric-card{padding:13px 10px;min-height:116px}.metric{font-size:23px}.metric-label{font-size:10px}.metric-icon{width:30px;height:30px;font-size:18px}
  .quick-grid{gap:9px}.quick-action{padding:13px 11px;min-height:86px}
  .grid-form{grid-template-columns:1fr}.mission-card header{flex-direction:column}.mission-card footer{align-items:flex-start;flex-direction:column}
  .rank-row{grid-template-columns:36px minmax(0,1fr) auto;gap:4px;padding:10px 4px}.rank-table-head{grid-template-columns:36px minmax(0,1fr) auto;gap:4px}
  .rank-score{font-size:13px}.person-name strong{font-size:11px}.person-initial{width:31px;height:31px}.person-name small{font-size:9px}
  .my-rank-card{padding:14px}.my-rank-card>strong{font-size:25px}.segmented button{padding:9px 11px;font-size:11px}
  .leaderboard-card{padding:15px}.podium-avatar{width:48px;height:48px}.place-1 .podium-avatar{width:56px;height:56px}
  .podium-place>b{font-size:13px}.podium-place strong{font-size:11px}.podium{gap:4px}
  .auth-card{padding:22px}.auth-head{flex-wrap:wrap}.auth-head .language-switch{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.nav button{transition:none}}
/* v0.4 · Optional compressed photo evidence / accessible upload feedback */
.photo-panel{margin:14px 0 17px;border:1px dashed rgba(106,194,255,.52);border-radius:14px;background:rgba(23,92,154,.14);padding:16px}
.photo-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.photo-panel .muted{line-height:1.6;font-size:12px}
.photo-choice{position:relative;overflow:hidden;margin:5px 0;min-height:44px}
.photo-choice input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.photo-progress-wrap{display:grid;gap:9px;padding:12px 0 2px;color:#d3e9ff;font-size:12px}
.photo-progress-wrap[hidden]{display:none}
.photo-thumbnail{width:min(100%,190px);height:128px;object-fit:contain;border-radius:10px;border:1px solid var(--line2);background:#0a1a2f}
.photo-thumbnail[hidden]{display:none}
.progress-line{display:flex;align-items:center;gap:12px}.progress-line progress{width:100%;flex:1;height:12px;accent-color:#40c7ff;border-radius:10px;overflow:hidden}
.progress-line span{width:46px;text-align:right;font-variant-numeric:tabular-nums;color:#9edfff}
.photo-evidence{padding:11px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.photo-lightbox,.credentials-modal{position:fixed;z-index:1001;inset:0;background:rgba(0,8,22,.92);padding:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;overflow:auto}
.photo-lightbox img{max-width:min(94vw,980px);max-height:78vh;object-fit:contain;border-radius:12px}
.credentials-modal .card{max-width:560px;width:100%;display:grid;gap:12px}
.credentials-modal pre{white-space:pre-wrap;word-break:break-all;border:1px solid var(--line2);padding:14px;border-radius:12px;background:#06182e;color:#f5fcff;font-size:15px}
.admin-member-divider{border-top:1px solid var(--line);margin:24px 0 12px}
