/* ============================================================
   CODA — Gestione Code · front-end styles (scoped to .coda-app)
   ============================================================ */
.coda-app{
  --ink:#15110C;--casing:#1E180F;--panel:#272014;--panel-2:#2F2719;--line:#3a3122;
  --amber:#FFB000;--amber-soft:#f5c451;--cream:#F2E8D5;--paper:#FAF4E6;--brass:#C9A24B;
  --red:#E2492E;--green:#74BE7C;--blue:#6FA8D6;--muted:#9c8e72;
  --flap-bg:#171513;--flap-bg2:#0e0d0c;--flap-char:#F3ECDB;
  --radius:14px;--shadow:0 18px 40px -18px rgba(0,0,0,.7);
  --disp:'Oswald','Trebuchet MS',system-ui,sans-serif;
  --body:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'Share Tech Mono',ui-monospace,monospace;
  font-family:var(--body);color:var(--cream);
  background:radial-gradient(900px 600px at 85% -10%,#2a2113 0%,transparent 60%),var(--ink);
  border-radius:18px;padding:clamp(16px,3vw,28px);box-sizing:border-box;
  border:1px solid var(--line);
}
.coda-app *{box-sizing:border-box}
.coda-app button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.coda-app input,.coda-app select{font-family:inherit}
.coda-loading{color:var(--muted);text-align:center;padding:40px;font-size:14px}

.coda-app h2{font-family:var(--disp);font-weight:600;font-size:clamp(20px,3.4vw,28px);letter-spacing:.02em;margin:0 0 4px}
.coda-app .lead{color:var(--muted);line-height:1.55;margin:6px 0 22px;max-width:64ch}
.coda-eyebrow{font-family:var(--disp);letter-spacing:.3em;text-transform:uppercase;color:var(--brass);font-size:12px;margin:0 0 12px}
.coda-muted{color:var(--muted)}
.coda-divider{height:1px;background:var(--line);margin:18px 0}

.coda-card{background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.coda-empty{text-align:center;color:var(--muted);padding:30px 16px;border:1px dashed var(--line);border-radius:var(--radius)}

.coda-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 20px;border-radius:11px;font-weight:600;font-size:15px;background:linear-gradient(180deg,#3a2f17,#2a2110);border:1px solid var(--line);color:var(--cream);transition:filter .12s,transform .1s}
.coda-btn:hover{filter:brightness(1.12)}
.coda-btn:active{transform:translateY(1px)}
.coda-btn.primary{background:linear-gradient(180deg,#ffc24d,#e89400);color:#241704;border-color:#ffd27a;box-shadow:0 10px 22px -12px rgba(255,176,0,.7)}
.coda-btn.ghost{background:transparent}
.coda-btn.danger{color:#ffd9cf;border-color:#5a2a20;background:#2a1712}
.coda-btn.sm{padding:8px 13px;font-size:13px;border-radius:9px}
.coda-btn[disabled]{opacity:.4;cursor:not-allowed}
.coda-row{display:flex;gap:12px;flex-wrap:wrap}
.coda-row>*{flex:1;min-width:130px}

.coda-field{display:block;margin-bottom:14px}
.coda-field>span{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-bottom:7px}
.coda-input{width:100%;padding:12px 13px;border-radius:10px;background:#181308;border:1px solid var(--line);color:var(--cream);font-size:15px}
.coda-input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,176,0,.14)}

.coda-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--line)}

/* nav menu shortcode */
.coda-menu{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.coda-menu-item{display:inline-flex;align-items:center;gap:9px;padding:11px 16px;border-radius:11px;border:1px solid var(--line);background:var(--panel);color:var(--cream)!important;text-decoration:none;font-weight:600;font-size:14px}
.coda-menu-item:hover{border-color:var(--brass)}
.coda-menu-item svg{width:18px;height:18px;color:var(--amber)}

/* service buttons */
.coda-svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.coda-svc-btn{text-align:left;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(165deg,var(--panel-2),var(--panel));display:flex;flex-direction:column;gap:8px;min-height:118px;transition:transform .12s,border-color .12s}
.coda-svc-btn:hover{transform:translateY(-2px);border-color:var(--svc,var(--brass))}
.coda-svc-btn svg{width:32px;height:32px;color:var(--svc,var(--amber))}
.coda-svc-btn b{font-family:var(--disp);font-size:18px;font-weight:600}
.coda-svc-btn .w{font-size:12px;color:var(--muted)}

/* ticket */
.coda-ticket{max-width:380px;margin:8px auto;background:var(--paper);color:#2a2113;border-radius:16px;padding:26px;text-align:center;position:relative;box-shadow:var(--shadow);border:1px solid #d8c9a8}
.coda-ticket:before,.coda-ticket:after{content:"";position:absolute;width:24px;height:24px;background:var(--ink);border-radius:50%;top:50%;transform:translateY(-50%)}
.coda-ticket:before{left:-12px}.coda-ticket:after{right:-12px}
.coda-ticket .lbl{font-family:var(--disp);letter-spacing:.3em;text-transform:uppercase;font-size:12px;color:#8a7647}
.coda-ticket .num{font-family:var(--disp);font-weight:700;font-size:clamp(56px,14vw,84px);line-height:.95;margin:6px 0;color:#1c1407}
.coda-ticket .svc{font-weight:600;font-size:17px}
.coda-ticket .meta{margin-top:16px;display:flex;justify-content:space-around;border-top:1px dashed #c8b88f;padding-top:14px}
.coda-ticket .meta b{display:block;font-family:var(--disp);font-size:22px;color:#1c1407}
.coda-ticket .meta span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#8a7647}

/* operator */
.coda-op{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;background:var(--panel);margin-bottom:14px;flex-wrap:wrap}
.coda-op .now{font-family:var(--mono);font-size:40px;color:var(--amber);text-shadow:0 0 18px rgba(255,176,0,.4);min-width:110px}
.coda-op .info{flex:1;min-width:160px}
.coda-op .info b{font-family:var(--disp);font-size:18px}
.coda-op .info div{color:var(--muted);font-size:13px;margin-top:2px}
.coda-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.coda-chip{font-family:var(--mono);background:#181308;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:14px}
.coda-chip.book{border-color:#2c4358;color:var(--blue)}

/* switch */
.coda-switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;user-select:none}
.coda-switch input{display:none}
.coda-switch .track{width:46px;height:26px;border-radius:999px;background:#3a3122;border:1px solid var(--line);position:relative;transition:.2s;flex:none}
.coda-switch .track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#9c8e72;transition:.2s}
.coda-switch input:checked+.track{background:linear-gradient(180deg,#5a7d4e,#3c5a32);border-color:#5a7d4e}
.coda-switch input:checked+.track:after{left:22px;background:var(--green)}

/* booking wizard */
.coda-steps{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}
.coda-step{flex:1;min-width:110px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center}
.coda-step.active{border-color:var(--amber);color:var(--cream)}
.coda-step.done{color:var(--green);border-color:#2e4a32}
.coda-step b{font-family:var(--mono)}
.coda-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.coda-day{padding:12px 8px;border-radius:12px;border:1px solid var(--line);background:var(--panel);text-align:center}
.coda-day:hover{border-color:var(--brass)}
.coda-day.sel{border-color:var(--amber);background:#2a2110}
.coda-day .dow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--brass)}
.coda-day .dnum{font-family:var(--disp);font-size:26px;font-weight:600}
.coda-day .mon{font-size:11px;color:var(--muted)}
.coda-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.coda-slot{padding:11px 6px;border-radius:10px;border:1px solid var(--line);background:var(--panel);font-family:var(--mono);font-size:15px;text-align:center}
.coda-slot:hover:not([disabled]){border-color:var(--brass)}
.coda-slot.sel{border-color:var(--amber);background:#2a2110;color:var(--amber-soft)}
.coda-slot[disabled]{opacity:.3;text-decoration:line-through;cursor:not-allowed}

/* toast */
.coda-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--panel-2);border:1px solid var(--brass);color:var(--cream);padding:13px 20px;border-radius:12px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;z-index:99999;font-size:14px}
.coda-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* =========================================================
   TABELLONE — split-flap board (responsive, wall-ready)
   ========================================================= */
.coda-board{background:radial-gradient(1200px 700px at 50% -10%,#241d12,#070605 70%);border-radius:18px;padding:clamp(16px,3vw,30px);color:var(--flap-char);border:1px solid #1c1a15}
.coda-board .bhead{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-bottom:1px solid #1c1a15;padding-bottom:16px;margin-bottom:18px}
.coda-board .btitle{font-family:var(--disp);letter-spacing:.28em;text-transform:uppercase;font-size:clamp(15px,2.4vw,28px);margin:0}
.coda-board .bclock{font-family:var(--mono);font-size:clamp(16px,2.4vw,28px);color:var(--amber);text-shadow:0 0 14px rgba(255,176,0,.35)}
.coda-board .bfull{border:1px solid #2a2417;border-radius:10px;padding:8px 13px;color:#b9ad93;font-size:13px;background:#161310}
.coda-board .serving-label{font-family:var(--disp);letter-spacing:.4em;text-transform:uppercase;color:var(--brass);font-size:clamp(12px,1.7vw,20px);text-align:center;margin:6px 0 14px}
.coda-flaprow{display:flex;gap:clamp(5px,1vw,16px);align-items:stretch;justify-content:center;flex-wrap:wrap}
.coda-flap{position:relative;background:linear-gradient(180deg,var(--flap-bg) 0 50%,var(--flap-bg2) 50% 100%);border-radius:clamp(6px,.9vw,14px);color:var(--flap-char);font-family:var(--mono);width:clamp(46px,11vw,150px);height:clamp(72px,17vw,222px);display:grid;place-items:center;font-size:clamp(42px,11vw,160px);line-height:1;box-shadow:0 14px 30px -10px #000,inset 0 1px 0 rgba(255,255,255,.05);overflow:hidden}
.coda-flap:after{content:"";position:absolute;left:6%;right:6%;top:calc(50% - 1px);height:2px;background:rgba(0,0,0,.6);box-shadow:0 1px 0 rgba(255,255,255,.04)}
.coda-flap.flip{animation:coda-flip .42s ease}
@keyframes coda-flip{0%{transform:perspective(400px) rotateX(0)}45%{transform:perspective(400px) rotateX(-86deg);filter:brightness(.5)}55%{transform:perspective(400px) rotateX(86deg);filter:brightness(.5)}100%{transform:perspective(400px) rotateX(0)}}
.coda-counterline{font-family:var(--disp);font-size:clamp(18px,3.6vw,52px);letter-spacing:.1em;text-align:center;margin-top:16px}
.coda-counterline span{color:var(--amber);text-shadow:0 0 22px rgba(255,176,0,.5)}
.coda-recall{display:flex;gap:clamp(10px,2vw,40px);justify-content:center;flex-wrap:wrap;border-top:1px solid #1c1a15;margin-top:18px;padding-top:16px}
.coda-recall .r{text-align:center}
.coda-recall .r .n{font-family:var(--mono);font-size:clamp(20px,3.2vw,42px)}
.coda-recall .r .c{font-family:var(--disp);font-size:clamp(11px,1.3vw,16px);color:var(--brass);letter-spacing:.14em;text-transform:uppercase}

/* fullscreen board */
.coda-board.fs{position:fixed;inset:0;z-index:99998;border-radius:0;display:flex;flex-direction:column;justify-content:center}
.coda-board.fs .coda-flap{width:clamp(60px,12vw,180px);height:clamp(96px,19vw,270px);font-size:clamp(54px,12vw,190px)}

@media (max-width:600px){
  .coda-op{flex-direction:column;align-items:stretch}
  .coda-op .now{min-width:0}
}
