/* Adapted for this vanilla-JS game from the component patterns in 21st.dev:
   Origin UI tabs/dialogs (https://21st.dev/originui/tabs, https://21st.dev/originui/dialog)
   and its mobile navigation guidance (https://21st.dev/community/components/explore/shadcn-bottom-navigation).
   Claude's page hierarchy and game interactions stay in shell.js / app.js. */
body.accounts{
  --ui-ink:#17382b;
  --ui-muted:#64776c;
  --ui-green:#245940;
  --ui-green-2:#367455;
  --ui-cream:#f7f4ea;
  --ui-border:#d9e1d4;
  --ui-shadow:0 10px 30px #21452b12,0 2px 6px #21452b0c;
  background:var(--ui-cream);
  color:var(--ui-ink);
}
body.accounts button,body.accounts a,body.accounts input,body.accounts select,body.accounts textarea{touch-action:manipulation}
body.accounts :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #d48b37;outline-offset:3px}
body.accounts button:not(:disabled),body.accounts a{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
body.accounts button:not(:disabled):active,body.accounts a:active{transform:scale(.985)}
body.accounts .sh{max-width:480px;background:linear-gradient(180deg,#fffdf7 0,#f8f5ec 34%,#f7f4ea 100%);box-shadow:0 0 0 1px #e8e7da}
body.accounts .sh-top{min-height:72px;padding:14px 18px 12px;border-bottom:1px solid #e9e9de;background:#fffdf8e8}
body.accounts .sh-main{gap:16px;padding:16px 18px 28px}
body.accounts .sh-title{font-size:20px;letter-spacing:-.015em;color:var(--ui-ink)}
body.accounts .sh-h1{font-size:25px;line-height:1.28;letter-spacing:-.018em;color:var(--ui-ink)}
body.accounts .sh-h2{font-size:18px;line-height:1.35;color:var(--ui-ink)}
body.accounts .sh-muted,body.accounts .sh-small{color:var(--ui-muted)}
body.accounts .sh-logo{font-size:17px;line-height:1.3;letter-spacing:-.02em;color:var(--ui-ink)}
body.accounts .sh-home-person{display:flex;align-items:center;gap:11px;min-width:0;max-width:100%;color:var(--ui-ink);text-decoration:none}
body.accounts .sh-home-person>span:last-child{min-width:0}
body.accounts .sh-home-person strong{display:block;font:600 17px/1.3 var(--head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.accounts .sh-home-person small{display:block;font-size:11px;color:var(--ui-muted)}
body.accounts .sh-home-person .sh-av{box-shadow:0 3px 10px #193b2940}
body.accounts .sh-btn{border-radius:13px;background:var(--ui-green);min-height:48px;box-shadow:0 3px 0 #163d2a1e,0 5px 15px #24594016;line-height:1.35}
body.accounts .sh-btn:not(:disabled):hover{background:var(--ui-green-2)}
body.accounts .sh-btn.sec{background:#fffdf8;color:var(--ui-green);border:1.5px solid #a6beaa;box-shadow:none}
body.accounts .sh-btn.sec:not(:disabled):hover{background:#edf5ed;border-color:var(--ui-green)}
body.accounts .sh-btn.ghost{background:transparent;color:var(--ui-green);box-shadow:none}
body.accounts .sh-btn.ghost:hover{background:#eaf2e9}
body.accounts .sh-btn.danger{background:#a72923}
body.accounts .sh-btn:disabled{box-shadow:none}
body.accounts .sh-card{border:1px solid var(--ui-border);border-radius:18px;background:#fffefa;box-shadow:var(--ui-shadow);padding:15px 16px}
body.accounts .sh-card.soft{background:#f4f3e9;box-shadow:none}
body.accounts .sh-card.warn{background:#fff3dd;border-color:#efc885}
body.accounts .sh-card.info{background:#eef6f5;border-color:#bdd8d4}
body.accounts .sh-card.err{background:#fff0ee;border-color:#edb3ac}
body.accounts .sh-card h3{font-size:16px;margin:0 0 5px}
body.accounts .sh-rm{position:relative;min-height:72px;padding:12px 14px;border:1px solid var(--ui-border);border-radius:16px;background:#fffefa;box-shadow:var(--ui-shadow);gap:12px}
body.accounts button.sh-rm:hover{border-color:#a9c0aa;background:#f8fcf7}
body.accounts .sh-rm .grow b{font-size:16px;line-height:1.3}
body.accounts .sh-rm .grow .sh-small{display:block;margin-top:3px}
body.accounts .sh-rm.me{border-color:#74a186;background:#f1f8f0}
body.accounts .sh-chip{font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap}
body.accounts .sh-fld{gap:6px;color:var(--ui-ink)}
body.accounts .sh-fld input,body.accounts .sh-fld select,body.accounts .sh-fld textarea,body.accounts .sh-dob select{background:#fffefa;border:1.5px solid #d2ddcf;border-radius:12px;min-height:48px;box-shadow:0 2px 5px #21452b07;color:var(--ui-ink)}
body.accounts .sh-pw button{min-height:44px;min-width:44px;top:2px}
body.accounts .sh-fld input:focus,body.accounts .sh-fld select:focus,body.accounts .sh-fld textarea:focus{border-color:var(--ui-green);box-shadow:0 0 0 3px #599e7430;outline:none;padding:10px 13px}
body.accounts .sh-li{min-height:60px;padding:10px 8px;border-color:#e8e9dd}
body.accounts .sh-li:hover{background:#f1f6ef}
body.accounts .sh-li .arrow{font-size:21px;color:var(--c-muted,#6b8d75)}
/* 21st's segmented tabs are kept semantic: the selected tab has both aria-selected and a visible surface. */
body.accounts .sh-tabs,body.accounts .role-tabs{gap:4px;padding:4px;border:1px solid #dfe8dc;border-radius:13px;background:#edf2eb}
body.accounts .sh-tabs button,body.accounts .role-tabs button{border:0;border-radius:10px;min-height:44px;color:#607269;font-weight:500}
body.accounts .sh-tabs button[aria-selected=true],body.accounts .role-tabs button[aria-selected=true]{border:1px solid #cbdacb;background:#fffefa;color:var(--ui-green);box-shadow:0 2px 7px #294c2f1c;font-weight:600}
body.accounts .sh-seg button[aria-pressed=true]{background:#e8f2e8;box-shadow:inset 0 0 0 1px var(--ui-green)}
body.accounts .sh-nav{background:#fffdf9f2;border-top:1px solid #e0e7dc;padding:7px 8px max(8px,env(safe-area-inset-bottom));box-shadow:0 -6px 18px #294c2f10}
body.accounts .sh-nav .in{gap:4px}
body.accounts .sh-nav a{min-height:58px;justify-content:center;gap:3px;padding:4px 2px 2px;border-radius:13px;font-size:11px;font-weight:500}
body.accounts .sh-nav a svg{width:23px;height:23px;display:block}
body.accounts .sh-nav a[aria-current=page]{background:#e8f2e8;color:var(--ui-green);font-weight:700}
body.accounts .sh-nav a:hover{background:#f0f5ed}
body.accounts .sh-sheet-wrap{background:#132c2480;backdrop-filter:blur(3px)}
body.accounts .sh-sheet{position:relative;background:#fffdf8;border:1px solid #e2e8db;border-radius:26px 26px 0 0;box-shadow:0 -18px 50px #0c261f36;padding:13px 20px max(22px,env(safe-area-inset-bottom));gap:13px}
body.accounts .sh-sheet .grab{width:42px;height:5px;background:#b6c5b7;margin:0 auto 10px}
body.accounts .sh-sheet .x{right:13px;top:12px;border-radius:50%;background:#f0f4ee;color:var(--ui-ink)}
body.accounts .sh-sheet h2{padding-right:40px}
body.accounts .sh-skel{background:linear-gradient(90deg,#e9ece2,#f8faf3,#e9ece2);background-size:200% 100%}

/* Home: keep Claude's create / join / open-room order, with an expressive game surface. */
body.accounts .sh[data-page="/"] .sh-main{gap:14px}
body.accounts .sh-home-start{position:relative;overflow:hidden;isolation:isolate;border-radius:22px;padding:19px 18px 17px;background:radial-gradient(circle at 78% 20%,#477f59 0,#2c6248 38%,#214b39 100%);color:#fffdf4;box-shadow:0 12px 24px #24594024}
body.accounts .sh-home-start::before{content:'';position:absolute;z-index:-1;right:-14px;top:7px;width:150px;height:132px;background:url('/assets/village/square.png') center/contain no-repeat;opacity:.82;filter:drop-shadow(0 7px 6px #133c2b5c)}
body.accounts .sh-home-start-copy{position:relative;z-index:1;max-width:66%;min-height:104px}
body.accounts .sh-eyebrow{display:inline-block;color:#f7d897;font:500 11px/1.4 var(--head);letter-spacing:.02em}
body.accounts .sh-home-start h1{font:600 22px/1.2 var(--head);letter-spacing:-.018em;margin:6px 0;color:#fff}
body.accounts .sh-home-start p{font-size:12px;line-height:1.45;margin:0;color:#e6f1e4}
body.accounts .sh-home-start .sh-btn{position:relative;z-index:1;background:#efbd71;color:#1d3b2b;box-shadow:0 4px 0 #ba814a33;margin-top:2px}
body.accounts .sh-home-start .sh-btn:hover{background:#f8cc82}
body.accounts #resume .sh-btn{background:var(--c-action,#fff6e4);color:var(--c-on-action,#6d4417);border-color:var(--c-action,#e6b975);box-shadow:0 3px 10px #b8823218}
body.accounts .sh.has-resume #resume .sh-btn{background:var(--c-action,var(--ui-green));color:var(--c-on-action,#fff);border-color:var(--c-action,var(--ui-green));box-shadow:0 6px 16px #24594024}
body.accounts .sh.has-resume .sh-home-start .sh-btn{background:var(--c-raised,#fffaf0);color:var(--c-text,#285541);box-shadow:inset 0 0 0 1px var(--c-edge,transparent)}
body.accounts #code-form{gap:10px}
body.accounts #code-form .sh-fld{min-width:0}
body.accounts #code-form button{flex:0 0 106px!important}
body.accounts #room-list{gap:9px!important}
body.accounts #room-list>.sh-card{padding:24px 16px}
body.accounts .sh-podium .sh-av{box-shadow:0 3px 10px #21452b24}
body.accounts .sh-friends-empty{text-align:center;padding:24px 12px;border:1px dashed #c9d9c7;border-radius:20px;background:#fffefa}
body.accounts .sh-friends-faces{display:flex;justify-content:center;padding:4px 0 16px}
body.accounts .sh-friends-faces .sh-av+ .sh-av{margin-left:-12px}
body.accounts .sh-friends-empty h2{font-size:21px;margin:0 0 8px}
body.accounts .sh-friends-empty p{font-size:14px;line-height:1.65;margin:0}
body.accounts .sh-form{display:flex;flex-direction:column;gap:14px}
body.accounts .sh-icon-button{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--ui-border);border-radius:13px;color:var(--ui-green);background:#f0f6ed;text-decoration:none}
body.accounts .sh-icon-button svg{width:23px;height:23px}
body.accounts .sh-room-symbol{font-size:28px;flex:none}
body.accounts .sh-rm{text-align:left}
body.accounts .sh-rm .grow{min-width:0}
body.accounts .sh-rm small,body.accounts .sh-li small{display:block;font-size:12px;font-weight:400;color:var(--ui-muted);line-height:1.6}
body.accounts .sh-rm .grow b{overflow-wrap:anywhere}
body.accounts .sh-section-label{font:500 13px/1.5 var(--head);color:var(--ui-muted);margin:0 0 7px}
body.accounts .sh-person-card{text-align:center;padding:20px 16px}
body.accounts .sh-person-card h1,body.accounts .sh-person-card h2{margin:8px 0;overflow-wrap:anywhere}
body.accounts .sh-person-card p{font-size:13px;margin-bottom:0}
body.accounts .sh-person-row{width:100%;min-height:76px}
body.accounts .sh-person-row .sh-chip{flex:none;padding-inline:8px}
body.accounts .sh-badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.accounts .sh-badge-card{display:flex;flex-direction:column;align-items:center;gap:7px;padding:20px 10px;background:#fffefa;border:1px solid var(--ui-border);box-shadow:var(--ui-shadow)}
body.accounts .sh-badge-card>span{font-size:38px;line-height:1.4}
body.accounts .sh-badge-card small{font-size:11px;color:var(--ui-muted)}
body.accounts .sh-ranking-podium{display:flex;gap:7px;align-items:flex-end;justify-content:center;padding:14px 0}
body.accounts .sh-podium-member{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:0;padding:12px 5px;border:1px solid var(--ui-border);border-radius:15px;background:#fffefa;font-size:12px;text-align:center}
body.accounts .sh-podium-member b{max-width:100%;overflow-wrap:anywhere;line-height:1.5}
body.accounts .sh-podium-member small{font-size:11px;color:var(--ui-muted)}
body.accounts .sh-ranking-podium .sh-podium-member:first-child{order:2;background:#fff3d7;border-color:#e5b95f;padding-top:22px;box-shadow:0 6px 15px #bd8c3020}
body.accounts .sh-ranking-podium .sh-podium-member:nth-child(2){order:1}
body.accounts .sh-ranking-podium .sh-podium-member:nth-child(3){order:3}
body.accounts .sh-rank-self{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(82px + env(safe-area-inset-bottom));width:min(calc(100% - 28px),452px);z-index:19;box-shadow:0 -6px 20px #21452b20;border-radius:16px}
body.accounts .sh-rank-self .sh-rm{width:100%;background:#e5f1e3;border:2px solid var(--ui-green)}
body.accounts .sh[data-page="/ranking"] .sh-main{padding-bottom:125px}
body.accounts .sh-role-thumb{width:37px;height:55.5px;object-fit:contain;border-radius:7px;flex:none}
body.accounts .sh-summary-link{color:var(--ui-ink);text-decoration:none;display:block;min-height:85px}
body.accounts .sh-summary-link small{font-size:12px;color:var(--ui-muted)}
body.accounts .sh-help-extras{display:flex;flex-direction:column;gap:12px}
body.accounts .sh-help-extras summary{font-size:14px;font-weight:600}
body.accounts .sh-tour-icon{text-align:center;font-size:50px;margin:10px 0 15px}
body.accounts #tour-body{display:flex;flex-direction:column;gap:12px}
body.accounts[data-shell-tone="paper"] .sh{background:#fff}
body.accounts[data-shell-tone="paper"] .sh-top,body.accounts[data-shell-tone="paper"] .sh-nav{background:#fff}
body.accounts.ui-large .sh-small,body.accounts.ui-large .sh-rm small{font-size:14px}
body.accounts.ui-large .sh-btn,body.accounts.ui-large .sh-li{font-size:17px}
body.accounts.ui-large .sh-fld{font-size:15px}
body.accounts.ui-large .sh-fld input,body.accounts.ui-large .sh-fld select,body.accounts.ui-large .sh-fld textarea{font-size:17px}
body.accounts.calm .sh-sheet-wrap,body.accounts.calm .sh-sheet{animation:none}
body.accounts.calm button,body.accounts.calm a{transition:none}
body.accounts .sh[data-page="/login"] > .sh-main{gap:13px;padding-top:20px}
body.accounts .sh[data-page="/login"] form.sh-main,
body.accounts .sh[data-page="/register"] form.sh-main,
body.accounts .sh[data-page="/setpassword"] form.sh-main{flex:0 0 auto;gap:14px}
body.accounts .sh[data-page="/login"] .sh-fold{margin-top:auto;border:1px solid var(--ui-border);background:var(--c-panel,#fffefa);border-radius:13px;padding:0 13px}
body.accounts .sh[data-page="/login"] .sh-fold summary{color:var(--ui-green)}

/* In-room chrome only: keep the round village geometry and the live game controls untouched. */
body.accounts.room2 .room-top{background:#fffdf8;border-bottom:1px solid #e3e9dd;padding:8px 14px;min-height:62px}
body.accounts.room2 .room-top h1{font:600 18px/1.2 var(--head);color:var(--ui-ink)}
body.accounts.room2 .room-actions button{border:1px solid #cbdcc9;background:#f0f6ef;color:var(--ui-green);border-radius:12px;box-shadow:0 2px 4px #21452b0d}
body.accounts.room2 .room-actions button:hover{background:#e2f0e3}
body.accounts.room2 .phase-bar{border-radius:14px;background:linear-gradient(110deg,#245740,#356d50);color:#fff;box-shadow:0 6px 14px #24594020}
body.accounts.room2 .phase-action{border-radius:11px;background:#f3f6eb;color:var(--ui-green);box-shadow:0 2px 0 #0f392314}
body.accounts.room2 .phase-action.start{background:#efc274;color:#273e2c}
body.accounts.room2 .village-panel{border-color:#779f79;box-shadow:0 5px 15px #21452b16}
body.accounts.room2 .chat-panel{border-color:#d7e1d3;background:#fffefa;box-shadow:0 6px 18px #21452b10}
body.accounts.room2 .chat-title{background:#fffdf8;border-color:#e8ebdf}
body.accounts.room2 .chat-title h2{color:var(--ui-ink)}
body.accounts.room2 .chat-form{background:#fffdf8;border-color:#e5eadd}
body.accounts.room2 .chat-form input{border:1.5px solid #d2ddcf;border-radius:12px;background:#fff;min-height:46px}
body.accounts.room2 .chat-form button{border-radius:11px;background:var(--ui-green);min-width:58px}
body.accounts.room2 .map.circle .house .house-name{box-shadow:0 3px 6px #14392233}
body.accounts.room2 .map-chip{box-shadow:0 3px 9px #1439222b}
body.accounts.room2 dialog{background:#fffdf8;border:1px solid #d8e3d6;box-shadow:0 24px 70px #102b2380}
body.accounts.room2 dialog .close{border-radius:50%;background:#edf4eb}
body.accounts.room2 dialog.room-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,480px);max-height:86dvh;border-radius:26px 26px 0 0;padding:23px 18px max(20px,env(safe-area-inset-bottom));box-shadow:0 -20px 55px #102b2355}
body.accounts.room2 dialog.room-sheet::before{content:'';display:block;width:42px;height:5px;border-radius:5px;background:#b4c6b5;margin:-11px auto 16px}
body.accounts.room2 dialog.room-sheet h2{margin:0 0 15px;font:600 21px/1.3 var(--head)}
body.accounts.room2 dialog.room-sheet .menu-list{display:grid;gap:8px}
body.accounts.room2 dialog.room-sheet .menu-list button{min-height:63px;text-align:left;border:1px solid #dfe7dc;border-radius:14px;background:#fffefa;color:var(--ui-ink);padding:9px 14px;box-shadow:0 2px 6px #21452b0b}
body.accounts.room2 dialog.room-sheet .menu-list button:hover{background:#f1f8f1;border-color:#a8c8ad}
body.accounts.room2 dialog.room-sheet .menu-list button small{color:var(--ui-muted)}
body.accounts.room2 dialog.room-sheet .menu-list button.danger{background:#fff3f1;border-color:#edc6bf;color:#9a2d26}
body.accounts.room2 dialog.room-sheet .menu-list button.danger small{color:#a45a53}

@media(max-width:380px){
  body.accounts .sh-top{padding-inline:14px}
  body.accounts .sh-main{padding-inline:14px}
  body.accounts .sh-home-start-copy{max-width:64%}
  body.accounts .sh-home-start h1{font-size:20px}
  body.accounts .sh-home-start::before{right:-28px;width:138px}
}
@media(prefers-reduced-motion:reduce){
  body.accounts .sh-sheet-wrap,body.accounts .sh-sheet{animation:none}
  body.accounts button,body.accounts a{transition:none}
}
