:root{
  --white:#FFFFFF;
  --ink:#1A1A1A;
  --ink-soft:#6B675F;
  --rule-soft:#DCD8CE;
  --red:#A61B29;      /* Housing + trust/verified mark */
  --forest:#2F5D3A;   /* Jobs */
  --rust:#B5551F;     /* Market */
  --navy:#2C4A6E;      /* Services */
  --coffee:#6F4A2E;   /* Connect */
  --teal:#2E6B63;     /* Wanted */
  --sepia:#9C7A2E;    /* Advertisement tag only */
  --cream:#FBF3E7;
}
*{box-sizing:border-box;}
body{
  margin:0;background:var(--white);color:var(--ink);
  font-family:'Noto Serif JP',serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
.mono{font-family:'JetBrains Mono',monospace;}
.rule{border:none;border-top:1px solid var(--ink);margin:0;}
.rule.thin{border-top:1px solid var(--rule-soft);}

/* ===== homepage entrance gate (index.html) — visual only, real content
   already sits underneath in the DOM ===== */
.gate-overlay{
  position:fixed;inset:0;z-index:500;background:var(--white);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transition:opacity .5s ease;
}
.gate-overlay.dismissed{opacity:0;pointer-events:none;}
.gate-overlay .gate-rule{width:120px;height:1px;background:var(--ink);}
.gate-overlay .enter{display:flex;flex-direction:column;align-items:center;cursor:pointer;background:none;border:none;padding:0;}
.gate-overlay .enter img{height:clamp(180px,35vh,400px);width:auto;display:block;transition:transform .25s ease;}
.gate-overlay .enter:hover img{transform:scale(1.03);}

/* ===== masthead ===== */
.masthead-wrap{max-width:1180px;margin:0 auto;padding:26px 28px 0;}
.masthead{text-align:center;padding-bottom:16px;}
.masthead .brandline{display:flex;align-items:center;justify-content:center;gap:14px;}
.masthead img{height:52px;width:52px;object-fit:contain;}
.masthead h1{
  font-family:'Shippori Mincho B1',serif;font-weight:800;
  font-size:clamp(34px,5vw,54px);letter-spacing:0.01em;margin:0;
}
.masthead a.brandline{cursor:pointer;}
.masthead .sub{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.25em;
  color:var(--ink-soft);text-transform:uppercase;margin-top:8px;
}

/* ===== edition picker: boxed newsprint dropdown in the masthead,
   switches between the all-Kyushu homepage and each prefecture edition.
   Built as <details>/<summary> with real <a href> links (not a JS-only
   <select>) so the prefecture pages stay crawlable and get real internal
   link equity, not just a sitemap entry. ===== */
/* Tight inline dropdown, sitting right inside the dateline text
   ("Vol. I, No. 1 · Kyushu Edition · 2026年08月06日") rather than a boxed
   button under the logo — reads as part of the newsprint dateline, not a
   separate UI control. */
.dateline-picker{position:relative;display:inline-block;}
.dateline-picker summary{
  list-style:none;cursor:pointer;color:inherit;
}
.dateline-picker summary::-webkit-details-marker{display:none;}
.dateline-picker summary::after{content:'\00a0\25BE';font-size:8px;}
.dateline-picker[open] summary::after{content:'\00a0\25B4';}
.dateline-picker summary:hover{text-decoration:underline;}
.edition-menu{
  position:absolute;left:0;top:100%;z-index:20;
  margin-top:6px;background:var(--white);border:1px solid var(--ink);
  min-width:210px;text-align:left;letter-spacing:0.05em;
}
.edition-menu a{
  display:block;padding:8px 14px;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--rule-soft);white-space:nowrap;
}
.edition-menu a:last-child{border-bottom:none;}
.edition-menu a:hover{background:var(--ink);color:var(--white);}
.edition-menu a.current{font-weight:700;color:var(--red);}
.flag-icon{
  width:18px;height:12px;object-fit:cover;vertical-align:-1px;
  margin-right:8px;border:1px solid var(--rule-soft);
}
.dateline-picker summary .flag-icon{margin-right:6px;border-color:var(--ink-soft);}
.dateline{
  display:flex;justify-content:space-between;align-items:center;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.05em;
  color:var(--ink-soft);padding:11px 0;text-transform:uppercase;
}
.dateline .accent{color:var(--red);}
nav.mainnav{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;padding:13px 0;flex-wrap:wrap;}
nav.mainnav .nav-left, nav.mainnav .nav-right{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
nav.mainnav a{font-size:13px;letter-spacing:0.03em;color:var(--ink);}
nav.mainnav a:hover{color:var(--red);}
nav.mainnav .post{font-weight:700;border:1px solid var(--ink);padding:6px 16px;}
nav.mainnav .post:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
nav.mainnav [hidden]{display:none;}

nav.cat-nav{
  display:flex;justify-content:center;gap:28px;padding:12px 0;
  background:var(--cream);border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);
  flex-wrap:wrap;
}
nav.cat-nav a{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.06em;
  display:flex;align-items:center;gap:7px;color:var(--ink);text-transform:uppercase;
  padding:4px 2px;border-bottom:2px solid transparent;
}
nav.cat-nav a:hover{border-bottom:2px solid var(--dot,var(--ink));}
nav.cat-nav .cat-badge{
  min-width:16px;height:16px;padding:0 3px;border-radius:50%;background:var(--dot);flex:none;
  display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:#fff;line-height:1;
}

/* ===== hero ===== */
.hero{max-width:1180px;margin:0 auto;padding:44px 28px;display:grid;grid-template-columns:1.5fr 1fr;gap:40px;}
.hero .eyebrow{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.2em;color:var(--red);text-transform:uppercase;margin-bottom:14px;}
.hero h2{font-family:'Shippori Mincho B1',serif;font-weight:700;font-size:clamp(26px,3.4vw,36px);line-height:1.25;margin:0 0 18px;}
.hero p.lede{font-size:15px;line-height:1.85;color:var(--ink-soft);max-width:52ch;margin:0 0 24px;}
.search-box{border:1.5px solid var(--ink);padding:16px 18px;max-width:440px;}
.search-box .label{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:0.15em;color:var(--ink-soft);margin-bottom:9px;display:block;text-transform:uppercase;}
.search-box .row{display:flex;gap:10px;}
.search-box input{flex:1;border:none;border-bottom:1px solid var(--ink);padding:6px 2px;font-family:'Noto Serif JP',serif;font-size:14px;outline:none;background:transparent;}
.search-box button{border:none;background:var(--ink);color:#fff;padding:0 18px;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:0.05em;cursor:pointer;}

.weather-box{border:1px solid var(--ink);margin-bottom:18px;}
.weather-head{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.15em;text-transform:uppercase;padding:9px 14px;border-bottom:1px solid var(--ink);display:flex;justify-content:space-between;align-items:center;background:var(--cream);}
.weather-head select{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.05em;text-transform:none;background:transparent;border:1px solid var(--ink);padding:2px 4px;cursor:pointer;}
.weather-days{display:flex;flex-direction:column;}
.weather-day{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--rule-soft);font-size:12.5px;}
.weather-day:last-child{border-bottom:none;}
.weather-day .dow{font-family:'JetBrains Mono',monospace;font-weight:700;width:52px;flex-shrink:0;}
.weather-day .glyph{width:18px;text-align:center;flex-shrink:0;}
.weather-day .cond{flex:1;color:var(--ink-soft);}
.weather-day .temp{font-family:'JetBrains Mono',monospace;font-size:11.5px;white-space:nowrap;}
.weather-credit{font-family:'JetBrains Mono',monospace;font-size:7.5px;color:var(--ink-soft);padding:6px 14px;border-top:1px solid var(--rule-soft);}
.weather-credit a{color:inherit;}

.advt-box{border:1px dashed var(--sepia);padding:16px;text-align:center;}
.advt-box .tag{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.15em;color:var(--sepia);border:1px solid var(--sepia);padding:2px 8px;display:inline-block;margin-bottom:10px;}
.advt-box h5{font-family:'Shippori Mincho B1',serif;font-size:15px;margin:0 0 6px;}
.advt-box p{font-size:11.5px;color:var(--ink-soft);margin:0;line-height:1.6;}

/* ===== ad slots (category/prefecture top banners + footer banner) ===== */
.ad-slot-banner{border:1px dashed var(--sepia);padding:14px 16px;text-align:center;margin:0 0 28px;}
.ad-slot-banner .tag{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.15em;color:var(--sepia);border:1px solid var(--sepia);padding:2px 8px;display:inline-block;margin-bottom:8px;}
.ad-slot-banner h5{font-family:'Shippori Mincho B1',serif;font-size:14px;margin:0 0 4px;}
.ad-slot-banner p{font-size:11.5px;color:var(--ink-soft);margin:0;line-height:1.6;}
.ad-slot-banner img{max-width:100%;max-height:140px;display:block;margin:0 auto;}

.footer-banner{border-top:1px dashed var(--sepia);border-bottom:1px dashed var(--sepia);padding:12px 16px;text-align:center;max-width:1180px;margin:0 auto;}
.footer-banner .tag{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.15em;color:var(--sepia);border:1px solid var(--sepia);padding:2px 8px;display:inline-block;margin-right:10px;}
.footer-banner p{display:inline;font-size:11.5px;color:var(--ink-soft);margin:0;}
.footer-banner img{max-width:100%;max-height:90px;display:block;margin:8px auto 0;}

.admin-ad-thumb{max-width:160px;max-height:80px;display:block;margin:6px 0;border:1px solid var(--sepia);}

/* Category/prefecture page intro: description on the left, ad box on the
   right, so the ad-slot sits beside the text instead of stacked under it. */
.intro-row{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start;}
.intro-row .advt-box{margin-top:34px;}

/* ===== classifieds ===== */
.classifieds{max-width:1180px;margin:0 auto;padding:8px 28px 8px;}
.cat-block{margin-bottom:8px;}
.cat-head{display:flex;align-items:center;gap:12px;margin:34px 0 14px;}
.cat-head h3{font-family:'Shippori Mincho B1',serif;font-weight:700;font-size:19px;margin:0;white-space:nowrap;color:var(--accent,var(--ink));}
.cat-head .line{flex:1;height:2px;background:var(--accent,var(--ink));}
.cat-head .count{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-soft);white-space:nowrap;}
.cat-head .pref-filter{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.03em;background:transparent;border:1px solid var(--accent,var(--ink));color:var(--accent,var(--ink));padding:3px 6px;cursor:pointer;flex:none;}
.cat-head h3 a{color:inherit;}
.cat-head h3 a:hover{text-decoration:underline;}

.see-all{display:inline-block;margin:10px 0 0;font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;color:var(--accent,var(--ink));text-decoration:none;letter-spacing:.02em;}
.see-all:hover{text-decoration:underline;}

.post-btn{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--accent,var(--ink));border:1px solid var(--accent,var(--ink));padding:6px 14px;text-decoration:none;}
.post-btn:hover{background:var(--accent,var(--ink));color:#fff;}
.cat-block-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;}
.cat-block-foot .see-all{margin:0;}

.listing-cols{columns:2;column-gap:36px;}
.listing{break-inside:avoid;padding:11px 0;border-bottom:1px solid var(--rule-soft);position:relative;}
.listing .head-row{display:flex;justify-content:space-between;gap:10px;margin-bottom:3px;}
.listing .title{font-size:14px;font-weight:600;}
.listing .price{font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:700;white-space:nowrap;}
.listing .desc{font-size:12.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 4px;}
.listing .foot{font-family:'JetBrains Mono',monospace;font-size:10px;color:#A29D91;display:flex;gap:10px;flex-wrap:wrap;}
.listing .foot .verified, .demo-listing .foot .verified{background:rgba(47,93,58,0.12);color:var(--forest);font-weight:700;padding:2px 7px;border-radius:3px;}
.demo-listing .foot{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#A29D91;display:flex;align-items:center;flex-wrap:wrap;margin-top:10px;}
.demo-listing .foot span:not(:first-child)::before{content:'—';margin:0 10px;color:var(--rule-soft);}
.listing .inquire-btn{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.04em;
  color:var(--red);background:none;border:none;padding:0;margin-top:6px;cursor:pointer;text-decoration:underline;display:inline-block;
}
.listing .inquire-btn:hover{color:var(--ink);}
.listing .report-btn{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.04em;
  color:var(--ink-soft);background:none;border:none;padding:0;margin-top:6px;margin-left:12px;cursor:pointer;text-decoration:underline;display:inline-block;
}
.listing .report-btn:hover{color:var(--red);}
.listing .share-btn{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.04em;
  color:var(--ink-soft);background:none;border:none;padding:0;margin-top:6px;margin-left:12px;cursor:pointer;text-decoration:underline;display:inline-block;
}
.listing .share-btn:hover{color:var(--navy);}

/* Deep-linked from a shared "?listing=" URL — a brief highlight so the
   visitor can actually spot which card they were sent to, fading on its
   own without needing to be manually removed from the DOM. */
.listing.listing-highlighted{
  box-shadow:0 0 0 3px var(--navy);
  transition:box-shadow 2.5s ease 1.5s;
}

.modal-overlay{
  position:fixed;inset:0;background:rgba(26,26,26,0.55);display:flex;align-items:center;justify-content:center;
  padding:20px;z-index:200;
}
.modal-overlay.hidden{display:none;}
.modal-box{background:var(--white);border:1px solid var(--ink);padding:28px;max-width:440px;width:100%;}
.modal-box h4{font-family:'Shippori Mincho B1',serif;font-size:18px;margin:0 0 14px;}
.modal-actions{display:flex;gap:10px;margin-top:16px;}
.modal-actions button{width:auto;flex:1;}

.inline-advt{break-inside:avoid;border:1px dashed var(--sepia);padding:14px;margin:14px 0;}
.inline-advt .tag{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.15em;color:var(--sepia);border:1px solid var(--sepia);padding:2px 8px;display:inline-block;margin-bottom:8px;}
.inline-advt h5{font-family:'Shippori Mincho B1',serif;font-size:14.5px;margin:0 0 4px;}
.inline-advt p{font-size:12px;color:var(--ink-soft);margin:0;line-height:1.55;}

/* sold stamp — hanko style */
.stamp{
  position:absolute;top:6px;right:2px;width:72px;height:72px;border-radius:50%;
  border:3px solid var(--red);color:var(--red);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transform:rotate(-13deg);mix-blend-mode:multiply;opacity:0.9;pointer-events:none;
}
.stamp .kanji{font-family:'Shippori Mincho B1',serif;font-weight:800;font-size:21px;line-height:1;}
.stamp .en{font-family:'JetBrains Mono',monospace;font-size:7.5px;letter-spacing:0.15em;margin-top:2px;}
.listing.is-sold .title, .listing.is-sold .price{opacity:0.4;text-decoration:line-through;}
.listing.is-sold .desc{opacity:0.55;}

.removed-tag{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--ink-soft);border:1px dashed var(--ink-soft);padding:3px 9px;display:inline-block;margin-top:6px;}
.listing.is-removed .title{text-decoration:line-through;opacity:0.5;}
.listing.is-removed .desc, .listing.is-removed .price{opacity:0.4;}

/* ===== seller controls demo ===== */
.seller-demo{max-width:1180px;margin:0 auto;padding:48px 28px;border-top:2px solid var(--ink);}
.section-title{font-family:'Shippori Mincho B1',serif;font-size:24px;font-weight:700;margin:0 0 6px;}
.section-sub{font-size:13px;color:var(--ink-soft);margin:0 0 26px;max-width:60ch;line-height:1.7;}
.demo-wrap{display:grid;grid-template-columns:1fr 300px;gap:30px;align-items:start;}
.demo-listing{border:1px solid var(--ink);padding:16px 18px;position:relative;background:var(--white);}
.demo-controls{border:1px solid var(--rule-soft);padding:18px;}
.demo-controls .dbtn{
  display:block;width:100%;text-align:left;font-family:'JetBrains Mono',monospace;font-size:12px;
  padding:10px 14px;margin-bottom:10px;border:1px solid var(--ink);background:var(--white);cursor:pointer;
}
.demo-controls .dbtn:hover{background:var(--ink);color:#fff;}
.demo-controls .dbtn.danger{border-color:var(--red);color:var(--red);}
.demo-controls .dbtn.danger:hover{background:var(--red);color:#fff;}
.demo-controls .dbtn.ghost{border:none;color:var(--ink-soft);text-decoration:underline;margin-top:4px;}
.demo-controls .dbtn.ghost:hover{background:none;color:var(--ink);}
#reasonPanel{margin-top:6px;padding-top:12px;border-top:1px dashed var(--rule-soft);}
#reasonPanel .rlabel{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.1em;color:var(--ink-soft);text-transform:uppercase;margin-bottom:8px;display:block;}
#reasonPanel label{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-bottom:7px;cursor:pointer;}
#otherReason{width:100%;padding:7px 8px;border:1px solid var(--rule-soft);font-family:'Noto Serif JP',serif;font-size:12.5px;margin:6px 0 10px;}

/* Same "why are you removing this" reason panel as the homepage demo, but
   reusable per-card on the real dashboard (class-based, not id-based —
   there can be many listing cards on one page at once). */
.remove-reason-panel{display:none;margin-top:10px;padding-top:12px;border-top:1px dashed var(--rule-soft);}
.remove-reason-panel.open{display:block;}
.remove-reason-panel .rlabel{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.1em;color:var(--ink-soft);text-transform:uppercase;margin-bottom:8px;display:block;}
.remove-reason-panel label{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-bottom:7px;cursor:pointer;}
.remove-reason-panel .other-reason-input{width:100%;padding:7px 8px;border:1px solid var(--rule-soft);font-family:'Noto Serif JP',serif;font-size:12.5px;margin:6px 0 10px;}

/* ===== verification ===== */
.verify{max-width:1180px;margin:0 auto;padding:8px 28px 48px;}
.verify-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:20px 0 26px;}
.v-step{border-left:2px solid var(--forest);padding-left:16px;}
.v-step .num{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--forest);}
.v-step h5{font-family:'Shippori Mincho B1',serif;font-size:15.5px;margin:6px 0 6px;}
.v-step p{font-size:12.5px;color:var(--ink-soft);line-height:1.65;margin:0;}
.badge-legend{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:12px;color:var(--ink-soft);border-top:1px solid var(--rule-soft);padding-top:18px;}
.chip{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:3px;margin-right:6px;}
.chip.basic{background:rgba(47,93,58,0.12);color:var(--forest);}

/* ===== ad rate card ===== */
.rates{max-width:1180px;margin:0 auto;padding:48px 28px;border-top:2px solid var(--ink);}
table.rate-table{width:100%;border-collapse:collapse;}
table.rate-table th{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;text-align:left;padding:10px 12px;border-bottom:2px solid var(--ink);color:var(--ink-soft);}
table.rate-table td{padding:16px 12px;border-bottom:1px solid var(--rule-soft);font-size:13.5px;vertical-align:top;}
table.rate-table td.name{font-family:'Shippori Mincho B1',serif;font-weight:700;font-size:15px;}
table.rate-table td.price{font-family:'JetBrains Mono',monospace;font-weight:700;white-space:nowrap;}
table.rate-table td.desc{color:var(--ink-soft);font-size:12.5px;line-height:1.6;}

/* ===== notice ===== */
.notice{max-width:1180px;margin:0 auto;padding:8px 28px 56px;}
.notice-box{border:1px solid var(--ink);padding:26px 30px;}
.notice-box .kicker{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.2em;color:var(--red);text-transform:uppercase;margin-bottom:12px;}
.notice-box h4{font-family:'Shippori Mincho B1',serif;font-size:19px;margin:0 0 14px;}
.notice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.notice-grid p{font-size:12.5px;line-height:1.75;color:var(--ink-soft);margin:0;}
.notice-grid strong{color:var(--ink);display:block;margin-bottom:4px;font-size:13px;}

/* ===== kyushu café ===== */
.cafe{background:var(--cream);border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);padding:48px 0;}
.cafe-inner{max-width:1180px;margin:0 auto;padding:0 28px;}
.cafe .section-title{color:var(--coffee);}
.tables{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px;}
.table-card{background:var(--white);border:1px solid var(--rule-soft);border-left:3px solid var(--coffee);padding:16px 18px;}
.table-card .table-no{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:0.15em;color:var(--coffee);text-transform:uppercase;}
.table-card h5{font-family:'Shippori Mincho B1',serif;font-size:15.5px;margin:6px 0 6px;}
.table-card p{font-size:12px;color:var(--ink-soft);margin:0 0 12px;line-height:1.55;}
.table-card .table-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#A29D91;display:flex;justify-content:space-between;margin-bottom:12px;}
.table-card .join{width:100%;border:1px solid var(--coffee);background:none;color:var(--coffee);font-family:'JetBrains Mono',monospace;font-size:11px;padding:8px;cursor:pointer;letter-spacing:0.04em;}
.table-card .join:hover{background:var(--coffee);color:#fff;}

/* ===== footer ===== */
footer{max-width:1180px;margin:0 auto;padding:34px 28px 60px;border-top:2px solid var(--ink);}
.foot-top{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px;margin-bottom:20px;}
.foot-top .fm{font-family:'Shippori Mincho B1',serif;font-weight:700;font-size:15px;}
.editions{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-soft);letter-spacing:0.03em;line-height:1.9;}
.editions b{color:var(--ink);}
.foot-links{display:flex;flex-wrap:wrap;row-gap:8px;column-gap:20px;font-size:12px;color:var(--ink-soft);margin-top:18px;}

/* ===== auth pages (sign-in) ===== */
.auth-wrap{max-width:460px;margin:0 auto;padding:48px 28px 80px;}
.auth-card{border:1px solid var(--ink);padding:30px 30px 26px;}
.auth-tabs{display:flex;border-bottom:1px solid var(--rule-soft);margin-bottom:22px;}
.auth-tabs button{
  flex:1;background:none;border:none;cursor:pointer;padding:10px 4px 12px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ink-soft);border-bottom:2px solid transparent;margin-bottom:-1px;
}
.auth-tabs button.active{color:var(--ink);border-bottom-color:var(--red);}
.auth-view{display:none;}
.auth-view.active{display:block;}
.field{margin-bottom:16px;}
.field label{
  display:block;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:0.12em;
  color:var(--ink-soft);text-transform:uppercase;margin-bottom:7px;
}
.field input, .field select, .field textarea{
  width:100%;border:1px solid var(--rule-soft);padding:9px 10px;font-family:'Noto Serif JP',serif;
  font-size:14px;background:var(--white);color:var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none;border-color:var(--ink);}
.field .hint{font-size:11px;color:var(--ink-soft);margin-top:5px;line-height:1.5;}
.btn-primary{
  width:100%;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:11px 14px;
  font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.05em;cursor:pointer;text-transform:uppercase;
}
.btn-primary:hover{background:var(--red);border-color:var(--red);}
.btn-primary:disabled{opacity:0.5;cursor:not-allowed;}
.btn-secondary{
  width:100%;border:1px solid var(--ink);background:var(--white);color:var(--ink);padding:11px 14px;
  font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.05em;cursor:pointer;text-transform:uppercase;
}
.auth-social{display:flex;flex-direction:column;gap:9px;margin-bottom:22px;}
.social-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:9px;
  border:1px solid var(--ink);background:var(--white);color:var(--ink);padding:10px 14px;
  font-family:'Noto Serif JP',serif;font-size:13px;cursor:pointer;
}
.social-btn:hover{background:var(--cream);}
.social-btn .icon{width:16px;height:16px;flex:none;}
.auth-divider{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.1em;color:var(--ink-soft);text-transform:uppercase;}
.auth-divider::before, .auth-divider::after{content:'';flex:1;height:1px;background:var(--rule-soft);}
.btn-secondary:hover{background:var(--ink);color:#fff;}
.link-btn{
  background:none;border:none;color:var(--red);font-size:12px;cursor:pointer;padding:0;text-decoration:underline;
  font-family:'Noto Serif JP',serif;
}
.msg-box{padding:11px 13px;font-size:12.5px;line-height:1.6;margin-bottom:16px;border:1px solid var(--rule-soft);}
.msg-box.info{border-color:var(--navy);color:var(--navy);background:rgba(44,74,110,0.06);}
.msg-box.success{border-color:var(--forest);color:var(--forest);background:rgba(47,93,58,0.06);}
.msg-box.error{border-color:var(--red);color:var(--red);background:rgba(166,27,41,0.06);}
.msg-box.hidden{display:none;}

/* ===== post-listing page ===== */
.form-page{max-width:720px;margin:0 auto;padding:48px 28px 80px;}
.gate-box{border:1px solid var(--ink);padding:26px 30px;text-align:center;}
.gate-box p{font-size:13.5px;color:var(--ink-soft);line-height:1.7;margin:0 0 16px;}
.gate-box .btn-primary, .gate-box .btn-secondary{width:auto;display:inline-block;padding:10px 22px;margin:0 6px;}
.form-card{border:1px solid var(--ink);padding:30px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;}
.form-grid .full{grid-column:1 / -1;}
.image-drop{
  border:1.5px dashed var(--rule-soft);padding:22px;text-align:center;cursor:pointer;
  font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--ink-soft);
}
.image-drop:hover{border-color:var(--ink);color:var(--ink);}
.thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.thumbs img{width:72px;height:72px;object-fit:cover;border:1px solid var(--rule-soft);}
.rate-note{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-soft);
  border-top:1px dashed var(--rule-soft);margin-top:22px;padding-top:14px;line-height:1.7;
}

/* ===== resources page ===== */
.resources-page{max-width:1000px;margin:0 auto;padding:8px 28px 8px;}
.resources-intro{max-width:70ch;font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin:0 0 8px;}
.res-section{margin:34px 0 8px;}
.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 8px;}
.link-card{border:1px solid var(--rule-soft);padding:15px 17px;}
.link-card h5{font-family:'Shippori Mincho B1',serif;font-size:14.5px;margin:0 0 5px;}
.link-card p{font-size:12.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 10px;}
.link-card .card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.link-card .domain{font-family:'JetBrains Mono',monospace;font-size:10px;color:#A29D91;word-break:break-all;}
.link-card a.visit{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.04em;color:var(--red);
  white-space:nowrap;border-bottom:1px solid var(--red);
}
.link-card a.visit:hover{color:var(--ink);border-color:var(--ink);}
.res-disclaimer{
  border-top:1px dashed var(--rule-soft);margin-top:10px;padding-top:14px;
  font-size:11.5px;color:var(--ink-soft);line-height:1.7;
}

/* ===== admin page ===== */
.admin-page{max-width:1000px;margin:0 auto;padding:48px 28px 80px;}
.admin-page h3.section-title{margin-bottom:4px;}
.admin-tabs{display:flex;gap:10px;margin:24px 0;flex-wrap:wrap;}
.admin-tabs button{
  border:1px solid var(--ink);background:var(--white);color:var(--ink);padding:8px 16px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.05em;cursor:pointer;text-transform:uppercase;
}
.admin-tabs button.active{background:var(--ink);color:#fff;}
.tab-badge{
  display:inline-block;margin-left:7px;background:var(--red);color:#fff;
  font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;
  border-radius:999px;padding:1px 7px;line-height:1.5;
}
.admin-tabs button.active .tab-badge{background:#fff;color:var(--red);}
.tab-badge.hidden{display:none;}
.queue-section{display:none;}
.queue-section.active{display:block;}
.queue-empty{font-size:13px;color:var(--ink-soft);padding:24px 0;text-align:center;font-family:'JetBrains Mono',monospace;}
.queue-item{border:1px solid var(--rule-soft);padding:16px 18px;margin-bottom:12px;}
.queue-item .qhead{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;}
.queue-item .qtitle{font-size:14.5px;font-weight:600;}
.queue-item .qmeta{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-soft);display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.queue-item .qdesc{font-size:13px;color:var(--ink-soft);line-height:1.6;margin:0 0 12px;}
.queue-actions{display:flex;gap:10px;flex-wrap:wrap;}
.queue-actions button, .queue-actions a{
  border:1px solid var(--ink);background:var(--white);padding:7px 14px;font-family:'JetBrains Mono',monospace;
  font-size:11px;cursor:pointer;display:inline-block;text-decoration:none;
}
.queue-actions button.approve, .queue-actions a.approve{border-color:var(--forest);color:var(--forest);}
.queue-actions button.approve:hover, .queue-actions a.approve:hover{background:var(--forest);color:#fff;}
.queue-actions button.reject, .queue-actions a.reject{border-color:var(--red);color:var(--red);}
.queue-actions button.reject:hover, .queue-actions a.reject:hover{background:var(--red);color:#fff;}
.status-pill{
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;
  padding:2px 8px;border-radius:2px;border:1px solid var(--sepia);color:var(--sepia);
}

/* ===== legal pages ===== */
.legal-page{max-width:760px;margin:0 auto;padding:40px 28px 80px;}
.legal-page .updated{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-soft);margin:6px 0 26px;text-transform:uppercase;letter-spacing:0.05em;}
.legal-page h4{font-family:'Shippori Mincho B1',serif;font-size:16.5px;margin:30px 0 10px;color:var(--ink);}
.legal-page p, .legal-page li{font-size:13.5px;line-height:1.8;color:var(--ink-soft);margin:0 0 14px;}
.legal-page ul, .legal-page ol{margin:0 0 14px;padding-left:22px;}
.legal-page strong{color:var(--ink);}
.legal-page .callout{border:1px solid var(--red);background:rgba(166,27,41,0.05);padding:16px 18px;margin:22px 0;font-size:12.5px;line-height:1.7;color:var(--ink);}
.legal-page .callout strong{color:var(--red);}
.legal-page .todo{border:1px dashed var(--sepia);background:rgba(156,122,46,0.06);padding:14px 16px;margin:16px 0;font-size:11.5px;color:var(--ink-soft);font-family:'JetBrains Mono',monospace;line-height:1.7;}
.legal-page .todo b{color:var(--sepia);}
.legal-nav{display:flex;gap:18px;margin:0 0 26px;flex-wrap:wrap;font-size:12px;}
.legal-nav a{text-decoration:underline;color:var(--ink-soft);}
.legal-nav a.current{color:var(--ink);font-weight:700;text-decoration:none;}

/* ===== dashboard inline edit ===== */
.inline-edit{display:none;margin-top:12px;padding-top:12px;border-top:1px dashed var(--rule-soft);}
.inline-edit.open{display:block;}
.inline-edit .field{margin-bottom:10px;}
.inline-edit .btn-primary, .inline-edit .btn-secondary{width:auto;display:inline-block;padding:8px 16px;font-size:11px;margin-right:8px;}
.queue-item .qtitle .status-pill{margin-left:8px;}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;}
  .intro-row{grid-template-columns:1fr;}
  nav.mainnav{flex-wrap:wrap;gap:16px 22px;}
  nav.cat-nav{gap:16px;}
  .listing-cols{columns:1;}
  .notice-grid{grid-template-columns:1fr;}
  .demo-wrap{grid-template-columns:1fr;}
  .verify-steps{grid-template-columns:1fr;}
  .tables{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .link-grid{grid-template-columns:1fr;}
}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
