/* CaloriMatch — paylaşılan stiller */
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { margin:0; padding:0; }
body { font-family:'Segoe UI',system-ui,-apple-system,sans-serif; background:#0b1f3a; color:#fff;
  display:flex; justify-content:center; min-height:100vh; }
.wrap { width:100%; max-width:460px; padding:12px 14px 30px; display:flex; flex-direction:column; gap:12px; }
.wrap.wide { max-width:1000px; }

.topbar { display:flex; align-items:center; gap:8px; background:linear-gradient(#b0202f,#8c1622);
  border:2px solid #e8c07a; border-radius:30px; padding:7px 12px; box-shadow:0 3px 0 rgba(0,0,0,.3); }
.avatar { width:44px; height:44px; border-radius:50%; background:#fff; display:flex; align-items:center;
  justify-content:center; font-size:24px; border:2px solid #e8c07a; }
.pill { background:#fff; color:#6a2b12; font-weight:800; border-radius:20px; padding:6px 12px; font-size:14px; }
.grow { flex:1; }

.btn { background:linear-gradient(#c62b3b,#9e1f2c); border:2px solid #e8c07a; color:#fff; font-weight:800;
  border-radius:14px; padding:11px 14px; font-size:14px; cursor:pointer; box-shadow:0 3px 0 rgba(0,0,0,.3);
  display:flex; align-items:center; justify-content:center; gap:6px; }
.btn:active { transform:translateY(2px); box-shadow:0 1px 0 rgba(0,0,0,.3); }
.btn.alt { background:linear-gradient(#2d7d46,#1d5c30); }
.btn.gold { background:linear-gradient(#f0a81e,#d98410); border-color:#ffe0a0; color:#3a2200; }
.btn.grow { flex:1; }
.btn.small { padding:11px 13px; }
.btn:disabled { opacity:.5; cursor:not-allowed; }

.card { background:#0e2340; border:1px solid #2a4670; border-radius:14px; padding:14px; }
.muted { color:#8fa8cc; font-size:12px; line-height:1.5; }
.hide { display:none !important; }
h1,h2,h3 { margin:0 0 8px; }
input, select { font-family:inherit; font-size:15px; padding:10px 12px; border-radius:10px; border:1px solid #2a4670;
  background:#0a1c34; color:#fff; width:100%; }
label.field { display:block; margin:10px 0 4px; font-weight:700; color:#cbdcf5; font-size:13px; }

/* guests */
.guests { display:flex; gap:8px; flex-wrap:wrap; }
.guest { flex:1 1 46%; min-width:104px; border-radius:16px; padding:8px; background:linear-gradient(#c62b3b,#9e1f2c);
  border:3px solid transparent; cursor:pointer; transition:.12s; }
.guest.sel { border-color:#7CFC7A; box-shadow:0 0 14px rgba(124,252,122,.6); }
.guest.done { filter:grayscale(.35) brightness(.8); }
.guest .head { display:flex; align-items:center; gap:6px; }
.guest .face { width:46px; height:46px; border-radius:12px; background:#ffe9c9; display:flex;
  align-items:center; justify-content:center; font-size:26px; }
.guest .need { flex:1; text-align:right; }
.guest .need .lbl { font-size:10px; opacity:.85; font-weight:700; }
.guest .need .val { font-size:28px; font-weight:900; line-height:1; text-shadow:0 2px 0 rgba(0,0,0,.25); }
.guest.done .need .val { color:#9dfc8c; }
.guest .bar { height:10px; background:rgba(0,0,0,.35); border-radius:8px; margin-top:7px; overflow:hidden; }
.guest .bar > i { display:block; height:100%; width:0; background:linear-gradient(90deg,#ffd24a,#7CFC7A); transition:width .2s; }
.guest .slots { display:flex; gap:5px; justify-content:center; margin-top:6px; }
.guest .slots > b { width:11px; height:11px; border-radius:50%; background:rgba(0,0,0,.4); transition:.15s; }
.guest .slots > b.f { background:#ffd24a; transform:scale(1.15); }

/* board */
.board-wrap { background:#12294a; border:3px solid #e8c07a; border-radius:18px; padding:16px 12px;
  min-height:240px; max-height:52vh; overflow:auto; }
.board { display:flex; gap:12px; width:max-content; margin:0 auto; }
.col { display:flex; flex-direction:column; gap:6px; align-items:center; }
.tile { width:66px; height:66px; border-radius:16px; position:relative; display:flex; align-items:center;
  justify-content:center; font-size:36px; box-shadow:inset 0 -6px 0 rgba(0,0,0,.18),0 3px 5px rgba(0,0,0,.3);
  transition:.1s; user-select:none; }
.tile .cal { position:absolute; bottom:4px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.55);
  color:#fff; font-weight:800; font-size:13px; padding:1px 8px; border-radius:9px; min-width:30px; text-align:center;
  text-shadow:0 1px 1px rgba(0,0,0,.5); }
.tile.top { cursor:pointer; }
.tile.top.hot { outline:3px solid rgba(124,252,122,.9); }
.tile.buried { filter:brightness(.42) saturate(.7); transform:scale(.9); }
.tile.shake { animation:shake .35s; }
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-7px)} 75%{transform:translateX(7px)} }
.v10{background:linear-gradient(#5bd06a,#39a94b)} .v20{background:linear-gradient(#a9c94a,#7fa032)}
.v30{background:linear-gradient(#e85a86,#c23566)} .v40{background:linear-gradient(#e8536a,#b8324c)}
.v50{background:linear-gradient(#f0c24a,#d99a24)} .v60{background:linear-gradient(#6ac2e8,#3a8fbf)}
.v70{background:linear-gradient(#e8b24a,#bf8324)} .v80{background:linear-gradient(#7bc86a,#4f9a3f)}
.v90{background:linear-gradient(#9acb6a,#6f9a3a)} .v100{background:linear-gradient(#e0863a,#b25f1f)}
.v120{background:linear-gradient(#d9584a,#a83628)} .v150{background:linear-gradient(#c86ad0,#9a3aa0)}
.v200{background:linear-gradient(#b06ad0,#7a3aa0)}

.hint { text-align:center; font-weight:800; font-size:15px; min-height:20px; }
.hint.warn{color:#ffcf5a} .hint.lock{color:#ff7a7a}
.nav { display:flex; gap:8px; }

.overlay { position:fixed; inset:0; background:rgba(6,15,30,.85); display:none; align-items:center;
  justify-content:center; z-index:20; padding:20px; }
.overlay.show { display:flex; }
.modal { background:#173a63; border:3px solid #e8c07a; border-radius:22px; padding:26px 30px; text-align:center; max-width:340px; }
.modal h2 { font-size:26px; color:#9dfc8c; }
.modal p { color:#cbdcf5; margin:6px 0 18px; }

canvas { background:#0a1c34; border-radius:10px; display:block; width:100%; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th,td { padding:7px 8px; text-align:left; border-bottom:1px solid #21406e; }
th { color:#9fc0f0; font-size:12px; }
tr.clickable { cursor:pointer; } tr.clickable:hover { background:#12294a; }
.tag { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:800; }
.good{background:#1d5c30;color:#9dfc8c} .bad{background:#5c1d24;color:#ff9a9a} .mid{background:#5c4a1d;color:#ffd98a}
