/* ===== GReview デザインシステム (CAIA/COPYMAC準拠・緑アクセント) ===== */
:root{
  --brand:#1E8E5A;        /* アクセント: 緑 */
  --brand-deep:#14523C;   /* 濃い緑(文字) */
  --brand-text:#123B2C;   /* AI文章の文字 */
  --brand-bg:#fff;
  --line:#1a1a1a;         /* 枠線: 黒 */
  --ink:#1a1a1a;          /* 本文 */
  --sub:#6b6b6b;          /* 補助テキスト */
  --muted:#9a9a9a;        /* 非選択 */
  --panel:#f4f4f4;        /* グレーパネル */
  --star:#EF9F27;         /* 星 */
  --danger:#C0392B;       /* 警告 */
  --page:#f7f7f8;         /* ページ背景 */
}
*{box-sizing:border-box;margin:0;padding:0;border-radius:0;}
html,body{min-height:100%;}
body{
  font-family:-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  background:var(--page);color:var(--ink);
  display:flex;justify-content:center;align-items:flex-start;
}

/* 画面コンテナ: スマホ幅基準 */
.app{width:100%;max-width:420px;min-height:100vh;background:#fff;display:flex;flex-direction:column;position:relative;}
.app.has-tab{padding-bottom:64px;}

/* ヘッダー */
.hd{background:#fff;border-bottom:1px solid #e4e4e4;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;}
.hd-left{display:flex;align-items:center;gap:3px;}
.hd-title{color:var(--brand-deep);font-weight:600;font-size:17px;font-family:'Jost',-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;letter-spacing:1.5px;text-decoration:none;}
.hd-store{color:var(--sub);font-size:13px;font-weight:600;display:flex;align-items:center;gap:5px;}

/* メイン領域 */
.main{flex:1;display:flex;flex-direction:column;}
h1{font-size:16px;padding:14px 16px 4px;}
.main > p{padding:4px 16px;font-size:13px;color:var(--sub);}

/* サブページのタイトル行 */
.page-title{padding:14px 16px 0;font-size:15px;font-weight:600;display:flex;align-items:center;gap:6px;color:var(--ink);}
.page-title i{color:var(--brand);}

/* 統計カード */
.stats{display:flex;gap:8px;padding:14px 16px 6px;}
.stat{flex:1;border:2px solid var(--line);padding:10px;text-align:center;background:#fff;}
.stat .lbl{font-size:11px;color:var(--sub);}
.stat .num{font-size:22px;font-weight:600;}
.stat .num small{font-size:11px;color:var(--muted);font-weight:400;}

.sectlbl{padding:14px 16px 4px;font-size:13px;color:var(--sub);display:flex;align-items:center;gap:6px;justify-content:space-between;}
.sectlbl .l{display:flex;align-items:center;gap:6px;}
.sectlbl .l i{color:var(--brand);}
.list{padding:4px 16px 16px;display:flex;flex-direction:column;gap:12px;}

/* カード */
.card{border:2px solid var(--line);padding:14px;background:#fff;display:block;}
.card-btn{width:100%;text-align:left;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;text-decoration:none;}
.card-btn:hover{background:var(--panel);}
.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:8px;}
.nm{font-size:14px;font-weight:600;display:block;}
.sub-line{font-size:12px;color:var(--sub);display:block;margin-top:3px;line-height:1.5;}
.stars{color:var(--star);letter-spacing:1px;}
.badge{font-size:11px;font-weight:500;color:var(--brand-deep);background:#E6F4EA;padding:4px 11px;border-radius:20px;white-space:nowrap;}
.badge.danger{background:#FCE8E6;color:#C5221F;}
.badge.ok{background:#E6F4EA;color:#1E8E3E;}

/* AI枠 */
.ai{background:var(--brand-bg);border:1px solid var(--brand);padding:10px 12px;margin-bottom:10px;}
.ai .ai-lbl{font-size:11px;color:var(--brand-deep);display:flex;align-items:center;gap:5px;margin-bottom:5px;}
.ai p{font-size:13px;line-height:1.65;margin:0;color:var(--brand-text);white-space:pre-wrap;}

/* ボタン */
.actions{display:flex;gap:8px;}
.btn{border:2px solid var(--line);background:#fff;color:var(--ink);padding:9px;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;font-family:inherit;text-decoration:none;}
.btn:hover{background:var(--panel);}
.btn.primary{background:var(--brand);color:#fff;font-weight:600;border-color:var(--brand);}
.btn.primary:hover{background:#187449;}
.btn.f1{flex:1;} .btn.f14{flex:1.4;}
.btn[disabled],.btn.disabled{opacity:.45;pointer-events:none;cursor:not-allowed;}
.btn.block{width:100%;padding:12px;font-size:14px;}
.btn.danger-text{color:var(--danger);}
.btn i{font-size:16px;}

/* タブバー(下部固定) */
.tab{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:420px;background:#fff;border-top:2px solid var(--line);display:flex;padding:8px 0;z-index:10;}
.tab a{flex:1;text-align:center;color:var(--muted);font-size:11px;text-decoration:none;}
.tab a.on{color:var(--brand);font-weight:600;}
.tab a i{font-size:20px;display:block;}

/* フォーム */
.field-lbl{padding:14px 16px 4px;font-size:12px;color:var(--sub);}
.input,textarea.input,select.input{display:block;width:calc(100% - 32px);margin:0 16px;border:2px solid var(--line);padding:10px 12px;font-size:16px;color:var(--ink);font-family:inherit;background:#fff;}
textarea.input{min-height:54px;line-height:1.6;resize:vertical;}
textarea.draft-text{min-height:150px;}
.input:focus,textarea.input:focus,select.input:focus{outline:none;border-color:var(--brand);}
.pad{padding:0 16px;}
.gap{padding:10px 16px;}
.hint{padding:6px 16px 0;font-size:11px;color:var(--muted);line-height:1.5;}
.search-form{padding:10px 0 0;display:flex;flex-direction:column;gap:10px;}
.search-form .btn{width:calc(100% - 32px);margin:0 16px;}
#nearbyForm{padding-top:0;margin-top:10px;}

/* 認証フォーム(card内label) */
form.card{margin:10px 16px;}
form.card label{display:block;margin-bottom:14px;font-size:12px;color:var(--sub);}
form.card input{display:block;width:100%;margin-top:4px;border:2px solid var(--line);padding:10px 12px;font-size:16px;font-family:inherit;}
form.card input:focus{outline:none;border-color:var(--brand);}
form.card .btn{width:100%;}

/* 星評価入力(右→左のradio) */
.star-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px;padding-top:2px;}
.star-input input{display:none;}
.star-input label{font-size:30px;color:#DADCE0;cursor:pointer;padding:0 2px;}
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label{color:var(--star);}

/* マイページ: 入力の行内配置・カード内編集・グラフ */
.input.inline{display:inline-block;width:auto;flex:1;min-width:0;margin:0;}
.actions .input.inline{margin:0;}
.stats-form .actions,.pad .actions{align-items:stretch;}
.input-plain{display:block;width:100%;border:1px solid #e4e4e4;padding:8px 10px;font-size:13px;font-family:inherit;background:#fafafa;}
.input-plain:focus{outline:none;border-color:var(--brand);background:#fff;}
.nm-input{font-weight:600;margin-bottom:6px;}
textarea.input-plain{min-height:60px;line-height:1.6;resize:vertical;}
.spark{width:100%;height:auto;border:1px solid #e4e4e4;background:#fafafa;}

/* フラッシュ */
.flash{margin:12px 16px 0;padding:11px 12px;font-size:13px;border:2px solid;}
.flash-error{border-color:var(--danger);color:var(--danger);background:#FCE8E6;}
.flash-success{border-color:var(--brand);color:var(--brand-deep);background:#E6F4EA;}

.alt-link{text-align:center;font-size:13px;padding:8px 16px;}
.alt-link a{color:var(--brand-deep);}

/* ローディングオーバーレイ */
.loading-overlay{position:fixed;inset:0;background:rgba(255,255,255,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:100;font-size:14px;color:var(--brand-deep);font-weight:600;}
.spinner{width:34px;height:34px;border:4px solid var(--panel);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
