:root{
  --bg:#fdf3f0;      /* 背景（薄いピンク） */
  --card:#ffffff;
  --line:#f3d3ca;
  --accent:#e27059;  /* 差し色＝ロゴのハートの色 */
  --accent-dark:#a8432a;
  --text:#4a2e27;
  --sub:#9a6a5e;
  --ng:#b3261e;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
     font-family:"Yu Gothic","游ゴシック",YuGothic,"Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
     -webkit-text-size-adjust:100%}
.page{max-width:560px;margin:0 auto;padding:16px 16px 40px}

header{display:flex;flex-direction:column;align-items:center;gap:6px;margin:8px 0 18px}
header img{width:190px;display:block}
.who{font-size:12px;color:var(--sub);display:flex;gap:12px;align-items:center}
.who a{color:var(--sub)}

.notice{display:block;background:var(--card);border-left:3px solid var(--accent);padding:10px 12px;font-size:14px;margin-bottom:18px;line-height:1.6;color:var(--text);text-decoration:none}
.notice .when{display:block;font-size:11px;color:var(--sub)}
.notice .more{display:block;font-size:12px;color:var(--accent-dark);margin-top:4px}

.big{display:flex;align-items:center;gap:12px;background:var(--accent);color:#fff;border-radius:16px;padding:16px;margin-bottom:22px;text-decoration:none;position:relative}
.big i.lead{font-size:30px}
.big .t{margin:0;font-size:17px;font-weight:700}
.big .s{margin:2px 0 0;font-size:12px}
.big.soon{background:#efc3b8;color:#7a3b2c;cursor:default}

h2{font-size:13px;font-weight:700;color:var(--sub);margin:0 0 8px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
      min-height:96px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 6px;
      text-align:center;font-size:12.5px;line-height:1.35;color:var(--text);text-decoration:none}
.tile i{font-size:26px;color:var(--accent)}
a.tile:active{transform:scale(.97)}
.tile.soon{background:#faf3f1;color:var(--sub);border-style:dashed;cursor:default}
.tile.soon i{color:#d9a99c}
.badge{position:absolute;top:6px;right:6px;font-size:10px;padding:1px 7px;border-radius:20px;background:#f7e4df;color:var(--accent-dark)}
.big .badge{top:10px;right:10px;background:#fff;color:var(--accent-dark)}

footer{font-size:11px;color:var(--sub);text-align:center;margin-top:10px;line-height:1.7}
@media (max-width:360px){ .grid{grid-template-columns:repeat(2,1fr)} }

/* ログイン・登録などの入力画面 */
.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 18px;margin-top:8px}
.panel h1{font-size:18px;margin:0 0 6px}
.panel p.lead{font-size:13px;color:var(--sub);margin:0 0 16px;line-height:1.7}
label{display:block;font-size:13px;margin:12px 0 4px}
input[type=email],input[type=password],input[type=text],textarea{width:100%;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font-family:inherit}
input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.btn{display:block;width:100%;margin-top:16px;padding:13px;font-size:15px;font-weight:700;border:0;border-radius:12px;background:var(--accent);color:#fff;font-family:inherit;cursor:pointer;text-align:center;text-decoration:none}
.btn.sub{background:#fff;color:var(--accent-dark);border:1px solid var(--line);font-weight:400}
.btn.small{display:inline-block;width:auto;margin:0;padding:6px 12px;font-size:12px}
.btn:disabled{opacity:.6}
.msg{font-size:13px;margin-top:12px;line-height:1.6}
.msg.ng{color:var(--ng)}
.msg.ok{color:#2f6b45}
.rules{font-size:12px;color:var(--sub);margin:6px 0 0;padding-left:1.2em}
.rules li.ng{color:var(--ng)}
.center{text-align:center}
.link{display:inline-block;margin-top:14px;font-size:13px;color:var(--accent-dark)}
.mockbar{background:#fff7d6;color:#7a5b00;font-size:11px;text-align:center;padding:4px}

/* お知らせ・管理 */
.list{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.item{padding:12px 14px;border-top:1px solid var(--line)}
.item:first-child{border-top:0}
.item .t{font-weight:700;font-size:14px}
.item .m{font-size:11px;color:var(--sub);margin-top:2px}
.item .b{font-size:13px;margin-top:6px;white-space:pre-wrap;line-height:1.6}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.state{font-size:11px;padding:1px 8px;border-radius:20px;background:#e3f2e8;color:#2f6b45}
.state.off{background:#eee;color:#666}
.state.wait{background:#fff3d6;color:#7a5b00}
.tabs{display:flex;gap:6px;margin:4px 0 14px}
.tabs a{font-size:13px;padding:6px 14px;border-radius:20px;background:#fff;border:1px solid var(--line);color:var(--text);text-decoration:none}
.tabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
