:root{--bg:#020504;--panel:#050a07;--line:#12301d;--green:#65ff91;--dim:#6e9b79;--text:#c9f8d5;--danger:#ff6e6e;--w:860px}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}body{min-height:100vh;background-image:linear-gradient(rgba(58,255,111,.025) 1px,transparent 1px);background-size:100% 4px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.site-head{height:54px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 18px;position:sticky;top:0;background:rgba(2,5,4,.94);backdrop-filter:blur(7px);z-index:10}.logo{font-weight:800;letter-spacing:.12em;color:var(--green)}.tag{color:var(--dim);font-size:12px}.shell{display:grid;grid-template-columns:180px minmax(0,var(--w)) 180px;gap:18px;justify-content:center;padding:22px 14px}.content{min-width:0}.ad{position:sticky;top:76px;height:max-content}.ad-box{height:600px;border:1px dashed #284832;color:#42664b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#030704}.ad-box.mobile{height:72px}.mobile-ad{display:none}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}h1{font-size:21px;margin:0 0 6px;color:#dcffe5}p{margin:0;color:var(--dim);font-size:13px;line-height:1.6}.ghost-button,.primary,button{font:inherit;border:1px solid #2f7142;background:#07130b;color:var(--green);padding:9px 13px;cursor:pointer}.ghost-button:hover,.primary:hover,button:hover{background:#0b2111;text-decoration:none}.legend{display:grid;grid-template-columns:1fr auto auto;gap:18px;padding:8px 12px;color:#5d8567;font-size:11px;border-bottom:1px solid var(--line)}.thread-row{display:grid;grid-template-columns:1fr auto;gap:18px;padding:15px 12px;border-bottom:1px solid #0d2415;color:inherit}.thread-row:hover{background:#061009;text-decoration:none}.thread-title{font-weight:700;color:#d8ffe2;margin-bottom:5px}.thread-preview{font-size:12px;color:#6c9375;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-meta{display:flex;gap:14px;align-items:center;color:#789982;font-size:12px}.live{color:var(--green)}.panel,.thread-head{border:1px solid var(--line);background:rgba(4,10,6,.84);padding:18px}.narrow{max-width:650px;margin:20px auto}.back{display:inline-block;margin-bottom:14px;font-size:12px}.muted{color:var(--dim);font-size:12px}.error,.notice{border:1px solid #593131;background:#1b0808;color:#ffb0b0;padding:10px;margin:12px 0}.notice{border-color:#2d623d;background:#07140b;color:#aaffbf}label{display:block;margin:16px 0 7px;color:#91b69a;font-size:12px}input,textarea,select{width:100%;background:#010302;border:1px solid #225331;color:#dbffe4;font:inherit;padding:11px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 1px #1a7b35}textarea{resize:vertical}.primary{margin-top:10px}.statusline{display:flex;flex-wrap:wrap;gap:12px 18px;font-size:12px;color:#7aa084;margin-top:12px}.copy-link{padding:2px 8px;font-size:11px}.pager{display:flex;justify-content:space-between;align-items:center;padding:10px 2px;color:#67866e;font-size:12px}.post{padding:13px 10px;border-top:1px solid #0d2415}.post:first-child{border-top:1px solid var(--line)}.post:target{background:#07140b;outline:1px solid #214c2d;outline-offset:-1px}.post-meta{display:flex;gap:10px;flex-wrap:wrap;color:#66866e;font-size:11px;margin-bottom:8px}.post-no,.post-id{color:#66866e;font-weight:400}.post-no{cursor:pointer}.post-no:hover{color:#91b69a;text-decoration:underline}.post-body{white-space:normal;overflow-wrap:anywhere;line-height:1.65;color:#c5eecd;font-size:14px}.quote{color:#8bdcff}.ext-link{color:#a6cfff}.report-link{margin-left:auto;padding:0;border:none;background:none;color:#496753;font-size:11px}.post-form{border-top:1px solid #285236;margin-top:14px;padding-top:14px}.form-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.old-page-note{text-align:center;padding:20px}.empty{padding:35px 14px;text-align:center;color:#587360}.hidden{display:none}footer{border-top:1px solid #0b1d11;color:#3d5b45;font-size:11px;padding:16px;text-align:center}.admin-report{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #15301d}.admin-actions{display:flex;gap:8px;align-items:center}.admin-actions form{display:flex;gap:6px}.admin-actions button{padding:5px 7px;font-size:11px}
@media(max-width:1180px){.shell{grid-template-columns:minmax(0,var(--w))}.ad{display:none}.mobile-ad{display:block;max-width:var(--w);margin:10px auto;padding:0 14px}.mobile-ad .ad-box{height:74px}}
@media(max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{font-size:14px;background-size:100% 3px}

  .site-head{
    position:static;
    height:44px;
    padding:0 12px;
    border-bottom:1px solid #12301d;
  }
  .logo{font-size:16px;letter-spacing:.16em}
  .tag{display:none}

  /* スマホではまずスレ一覧を見せる。上広告は極小、PC広告は非表示 */
  .ad{display:none}
  .mobile-ad{display:block;width:100%;max-width:none;margin:0;padding:0 8px}
  .site-head + .mobile-ad{padding-top:6px;padding-bottom:4px}
  .mobile-ad .ad-box{height:44px;min-height:44px;font-size:11px;line-height:1.2;gap:0}

  .shell{display:block;width:100%;max-width:none;padding:8px 10px 10px}
  .content{width:100%;max-width:none;min-width:0}

  .topbar{display:block;margin:0 0 6px;padding:0 0 4px}
  .topbar>div{min-width:0}
  .topbar h1{font-size:19px;line-height:1.25;margin:0 0 4px}
  .topbar p{font-size:11px;line-height:1.45;padding-right:0}

  /* 新規スレは一覧を邪魔しないフローティングボタン */
  .topbar .ghost-button{
    position:fixed;
    z-index:30;
    right:14px;
    bottom:calc(16px + env(safe-area-inset-bottom));
    width:52px;
    height:52px;
    min-width:52px;
    min-height:52px;
    padding:0;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    overflow:hidden;
    font-size:0;
    background:#07130b;
    border:1px solid #3b8b50;
    box-shadow:0 4px 18px rgba(0,0,0,.45);
  }
  .topbar .ghost-button::before{content:"＋";font-size:27px;line-height:1;color:var(--green)}

  .legend{display:none}
  #thread-list{border-top:1px solid #12301d}
  .thread-row{display:block;padding:12px 8px 11px;border-bottom:1px solid #12301d}
  .thread-row:hover{background:transparent}
  .thread-title{font-size:15px;line-height:1.35;margin:0 0 4px;padding-right:4px}
  .thread-preview{font-size:11px;line-height:1.45;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .thread-meta{display:flex;justify-content:space-between;gap:8px;margin-top:7px;font-size:10px;line-height:1.2}
  .thread-meta .live{font-size:11px;font-weight:700}

  .empty{padding:28px 8px 30px;font-size:13px;text-align:left}

  .panel,.thread-head{border-left:0;border-right:0;padding:12px 8px}
  .narrow{max-width:none;margin:0}
  .back{margin:0 0 10px;font-size:11px}
  .statusline{gap:6px 10px;font-size:10px;margin-top:8px}
  .copy-link{font-size:10px;padding:2px 6px}

  .post{padding:11px 2px}
  .post-meta{gap:6px 8px;font-size:10px;margin-bottom:6px}
  .post-body{font-size:14px;line-height:1.65}
  .report-link{font-size:10px}
  .post-form{margin-top:10px;padding-top:10px}
  .form-row{display:block}
  input,textarea,select{font-size:16px;padding:10px}
  textarea{min-height:110px}
  .primary{width:100%;min-height:44px;margin-top:8px}
  .pager{padding:9px 0;font-size:11px}

  footer{padding:10px 66px 14px 10px;font-size:9px;line-height:1.4;text-align:left}
  .admin-report{flex-direction:column}
}

@media(max-width:390px){
  .shell{padding-left:8px;padding-right:8px}
  .mobile-ad{padding-left:6px;padding-right:6px}
  .topbar .ghost-button{right:10px;bottom:calc(12px + env(safe-area-inset-bottom));width:48px;height:48px;min-width:48px;min-height:48px}
}

/* ===== Sponsor slots / direct fallback ===== */
.rail{position:sticky;top:76px;height:max-content;min-width:0}
.mobile-promo{display:none}
.sponsor-unit{position:relative;width:100%;overflow:hidden;background:#030704;border:1px solid #15351f}
.sponsor-desktop{width:180px;min-height:600px}
.sponsor-mobile{width:100%;min-height:62px}
.network-slot{position:relative;z-index:2;width:100%;min-height:inherit;display:flex;align-items:center;justify-content:center;overflow:hidden}
.network-slot:empty{display:none}
.direct-sponsor{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:12px;text-align:center;color:#5c8b67;background:#030704;text-decoration:none}
.direct-sponsor strong{font-size:13px;letter-spacing:.08em;color:#75c889}
.direct-sponsor span{font-size:10px;color:#466951}
.direct-sponsor:hover{background:#061009;text-decoration:none}
.sponsor-unit.has-network .direct-sponsor{display:none}
.sponsor-unit:not(.has-network) .network-slot{pointer-events:none}
.trap-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-note{margin-top:10px;font-size:11px;color:#55725d}
.advertise-panel .primary{width:100%;min-height:44px}

@media(max-width:1180px){
  .rail{display:none}
  .mobile-promo{display:block;max-width:860px;margin:10px auto;padding:0 14px}
}

@media(max-width:700px){
  .mobile-promo{display:block;width:100%;max-width:none;margin:0;padding:6px 8px 0}
  .mobile-promo-bottom{padding:8px 8px 4px}
  .sponsor-mobile{min-height:56px}
  .direct-sponsor{flex-direction:row;gap:10px;padding:8px 12px}
  .direct-sponsor strong{font-size:12px}
  .direct-sponsor span{font-size:10px}
  .advertise-panel{margin-top:0}
}

/* Legacy ad selectors are no longer used by layout.php. */
@media(min-width:1181px){.mobile-promo{display:none!important}}

/* DUGA mobile ad */
.duga-responsive-frame{
  display:block;
  width:100%;
  max-width:600px;
  aspect-ratio:3 / 2;
  height:auto;
  margin:0 auto;
  border:0;
}
.network-slot img{
  display:block;
  max-width:100%;
  height:auto;
}


/* ===== Optional shared-password threads ===== */
.check-option{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
.check-option input[type="checkbox"]{
  width:auto;
  margin:0;
  padding:0;
  accent-color:var(--green);
}
.check-option span{color:#b9ddc2}
.pass-help{margin-top:0}
.issued-pass{margin:0 0 14px}
.issued-pass strong{display:block;margin-bottom:8px;color:#c9ffd7}
.pass-display{display:flex;gap:8px;align-items:center}
.pass-display input{flex:1;width:auto;min-width:0}
.pass-display button{white-space:nowrap}
.issued-pass p{margin-top:8px;color:#79a383}
.pass-gate .primary{min-width:110px}

@media(max-width:700px){
  .check-option{margin-top:14px}
  .pass-display{display:block}
  .pass-display button{width:100%;margin-top:8px;min-height:44px}
  .pass-gate .primary{width:100%}
}
