:root{
  --bg2:#060a10; --panel:#172233; --panel2:#1c2a40; --text:#eef2f7; --muted:#a3b3c6;
  --accent:#ff8a1e; --accent-soft:rgba(255,138,30,.15); --line:#223046; --ok:#5fd48a; --blue:#4aa3ff;
  --head-h:54px; --maxw:720px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{background:var(--bg2);}
body{color:var(--text);font-family:"Noto Sans JP",system-ui,sans-serif;max-width:var(--maxw);margin:0 auto;padding-top:var(--head-h);padding-bottom:40px;min-height:100vh;line-height:1.6;}
img{max-width:100%;} button{font-family:inherit;cursor:pointer;} a{color:var(--blue);}

.app-head{position:fixed;top:0;left:0;right:0;z-index:40;height:var(--head-h);max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:8px;padding:0 12px;background:rgba(8,12,18,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.head-back{background:none;border:none;color:var(--text);font-size:30px;line-height:1;width:32px;height:38px;}
.app-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);}
.logo-mark{width:30px;height:30px;display:block;}
.logo-txt{font-weight:900;font-size:16px;} .logo-txt b{color:var(--accent);}
.me-chip{margin-left:auto;background:var(--panel);border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:700;padding:8px 13px;border-radius:999px;}

.view{display:none;padding:14px;animation:fade .18s ease;}
.view.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}
.page-title{font-size:20px;font-weight:900;margin-bottom:12px;}

.hero-strip{background:linear-gradient(135deg,#16233b,#0d1626);border:1px solid var(--line);border-radius:14px;padding:15px 17px;margin-bottom:12px;}
.hero-copy{font-size:18px;font-weight:900;}
.hero-sub{font-size:12px;color:var(--muted);margin-top:3px;}

.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none;}
.chips::-webkit-scrollbar{display:none;}
.chip{flex:none;font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--muted);}
.chip.on{background:var(--accent-soft);border-color:var(--accent);color:#ffc98d;}

.new-btn{width:100%;margin-bottom:14px;}
.btn{background:var(--panel);border:1px solid var(--line);color:var(--text);font-weight:800;font-size:14px;border-radius:10px;padding:12px 14px;}
.btn.primary{background:var(--accent);color:#14100a;border-color:var(--accent);}
.btn.small{padding:7px 11px;font-size:12px;border-radius:8px;}
.btn.ghost{background:transparent;}
.submit{width:100%;padding:14px 0;font-size:15px;margin-top:16px;}

.thread-list{display:flex;flex-direction:column;gap:10px;}
.thread-card{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 14px;color:var(--text);}
.thread-card:active{transform:scale(.99);}
.tc-cat{font-size:10.5px;color:var(--accent);font-weight:700;}
.tc-title{font-size:14.5px;font-weight:700;line-height:1.45;margin:3px 0 7px;}
.tc-meta{font-size:11px;color:var(--muted);display:flex;gap:10px;align-items:center;}
.tc-meta .reply{margin-left:auto;color:#ffc98d;font-weight:700;}

.loading{text-align:center;color:var(--muted);font-size:13px;padding:24px;}
.empty{text-align:center;color:var(--muted);font-size:13px;padding:36px 20px;line-height:1.9;}

/* スレッド詳細 */
.th-head{margin-bottom:12px;}
.th-cat{font-size:11px;color:var(--accent);font-weight:700;}
.th-title{font-size:19px;font-weight:900;line-height:1.45;margin:4px 0 8px;}
.post{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin-bottom:11px;}
.post.op{border-color:#33455f;}
.post-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:7px;}
.post-head .nm{font-weight:700;color:#cdd8e6;}
.post-head .time{margin-left:auto;}
.post-body{font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;}
.post-actions{display:flex;gap:14px;margin-top:9px;}
.post-actions button{background:none;border:none;color:var(--muted);font-size:11.5px;font-weight:700;padding:0;}
.post-actions button.del{color:#e07474;}

.reply-head{font-size:13px;font-weight:700;color:var(--muted);margin:16px 2px 10px;}
.reply-box{position:sticky;bottom:0;background:var(--bg2);padding:10px 0 4px;border-top:1px solid var(--line);margin-top:12px;}
.reply-box textarea{width:100%;background:#0e1724;border:1px solid #33465f;border-radius:10px;color:var(--text);font-size:14px;font-family:inherit;padding:11px 12px;min-height:60px;resize:vertical;line-height:1.7;}
.reply-box .row{display:flex;gap:9px;margin-top:8px;}

/* フォーム */
.f-label{display:block;font-size:12.5px;font-weight:700;margin:14px 0 6px;}
.f-label .req{color:var(--accent);font-size:10px;margin-left:6px;}
.f-input,.f-select,.f-area{width:100%;background:#0e1724;border:1px solid #33465f;border-radius:10px;color:var(--text);font-size:15px;font-family:inherit;padding:11px 12px;}
.f-area{min-height:150px;resize:vertical;line-height:1.8;}
.f-input:focus,.f-select:focus,.f-area:focus{outline:none;border-color:var(--accent);}
.guideline{margin-top:14px;background:rgba(255,138,30,.08);border:1px solid rgba(255,138,30,.3);border-radius:10px;font-size:11px;color:#ffc98d;padding:10px 12px;line-height:1.8;}

/* モーダル */
.modal{position:fixed;inset:0;z-index:80;background:rgba(4,8,13,.86);display:grid;place-items:center;padding:20px;}
.modal[hidden]{display:none;}
.modal-box{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px 20px;width:100%;max-width:360px;text-align:center;}
.modal-logo{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;}
.modal-box h2{font-size:19px;font-weight:900;margin-bottom:6px;}
.modal-box p{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:14px;}
.modal-box .f-input{margin-bottom:10px;text-align:left;}
.auth-switch{font-size:12px;color:var(--muted);margin-top:12px;}
.modal-close{background:none;border:none;color:var(--muted);font-size:12px;margin-top:12px;text-decoration:underline;}
.auth-error{color:#e07474;font-size:12.5px;background:rgba(224,116,116,.1);border-radius:7px;padding:8px 10px;text-align:center;line-height:1.6;}
.auth-error[hidden]{display:none;}
.auth-info{color:#7cb342;font-size:12.5px;background:rgba(124,179,66,.1);border:1px solid rgba(124,179,66,.3);border-radius:7px;padding:9px 10px;text-align:center;line-height:1.6;}
.auth-info[hidden]{display:none;}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(10px);z-index:90;max-width:90%;background:var(--panel2);border:1px solid var(--accent);color:var(--text);font-size:13px;font-weight:700;padding:12px 18px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.5);opacity:0;transition:opacity .25s,transform .25s;text-align:center;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
