/* ── MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(28,28,24,.5);z-index:300;align-items:flex-end;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--white);border-radius:20px 20px 0 0;padding:28px 24px 40px;width:100%;max-width:600px;animation:slideUp .25s ease;}
.modal h3{font-family:var(--font-serif);font-size:1.4rem;margin-bottom:20px;font-weight:400;}
.modal-field{margin-bottom:14px;}
.modal-field label{display:block;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);margin-bottom:6px;}
.modal-field input,.modal-field select,.modal-field textarea{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--cream);font-size:0.92rem;outline:none;transition:border-color .2s;}
.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--olive);}
.modal-field textarea{min-height:100px;resize:vertical;line-height:1.5;}
.modal-actions{display:flex;gap:10px;margin-top:20px;}
.modal-actions .btn{flex:1;}

/* ── TOAST ── */
.toast-container{position:fixed;top:80px;right:16px;z-index:500;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.toast{background:var(--dark);color:var(--cream);border-radius:var(--radius-sm);padding:12px 16px;font-size:0.85rem;max-width:280px;box-shadow:var(--shadow-md);animation:fadeDown .25s ease both;pointer-events:all;}
.toast.success{background:var(--success);}
.toast.error{background:var(--danger);}
.toast.warning{background:var(--warning);}
.toast.out{animation:fadeUp .25s ease both;opacity:0;}

/* ── LOADER ── */
.loader-overlay{position:fixed;inset:0;background:var(--cream);z-index:400;display:flex;align-items:center;justify-content:center;}
.loader-overlay.hidden{display:none;}
.loader-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--olive);border-radius:50%;animation:spin .8s linear infinite;}

/* ── AVATAR ── */
.avatar{border-radius:50%;background:var(--olive);color:var(--cream);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:600;flex-shrink:0;}
.avatar-sm{width:36px;height:36px;font-size:0.95rem;}
.avatar-md{width:44px;height:44px;font-size:1.1rem;}
.avatar-lg{width:60px;height:60px;font-size:1.5rem;}

/* ── CLIENT CARD ── */
.client-card{background:var(--cream-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:all .18s;}
.client-card:active{transform:scale(0.98);background:var(--cream-deep);}
.client-info{flex:1;}
.client-name{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;margin-bottom:2px;}
.client-meta{font-size:0.75rem;color:var(--muted);letter-spacing:0.04em;}
.client-arrow{color:var(--muted);font-size:1rem;}

/* ── SESSION CARD ── */
.session-card{background:var(--cream-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;margin-bottom:10px;transition:all .18s;}
.session-card:active{transform:scale(0.98);}
.session-date-block{background:var(--olive);color:var(--cream);border-radius:var(--radius-sm);padding:6px 10px;text-align:center;flex-shrink:0;min-width:48px;}
.session-date-block .sd-day{font-family:var(--font-serif);font-size:1.4rem;font-weight:600;line-height:1;}
.session-date-block .sd-mon{font-size:0.65rem;letter-spacing:0.08em;text-transform:uppercase;margin-top:2px;}
.session-info{flex:1;}
.session-info .si-label{font-size:0.88rem;color:var(--dark);margin-bottom:2px;}
.session-info .si-meta{font-size:0.75rem;color:var(--muted);}
.score-pill{display:inline-flex;align-items:center;gap:4px;background:var(--cream-deep);border-radius:20px;padding:2px 8px;font-size:0.72rem;color:var(--dark);margin-right:4px;}
.score-pill .sp-num{font-family:var(--font-serif);font-size:0.95rem;font-weight:600;color:var(--olive);}

/* ── PERIOD TABS ── */
.period-tabs{display:flex;background:var(--cream-deep);border-radius:var(--radius-sm);padding:4px;margin-bottom:24px;}
.ptab{flex:1;padding:9px 6px;background:transparent;border-radius:7px;font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);transition:all .18s;}
.ptab.active{background:var(--olive);color:var(--cream);font-weight:500;}

/* ── SCALE CARD ── */
.scale-card{background:var(--cream-card);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:24px;}
.scale-card h4{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.12em;color:var(--muted);margin-bottom:12px;}
.scale-row{display:flex;align-items:center;gap:10px;font-size:0.82rem;color:var(--dark);margin-bottom:6px;}
.scale-badge{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1rem;font-weight:600;flex-shrink:0;}

/* ── ORGAN BLOCK ── */
.organ-block{margin-bottom:32px;}
.organ-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.organ-icon{width:32px;height:32px;background:var(--olive);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:0.9rem;flex-shrink:0;}
.organ-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:600;}

/* ── SYMPTOM CHIPS (Cliente) ── */
.symptom-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:13px 14px;margin-bottom:8px;display:flex;align-items:center;gap:10px;transition:border-color .2s;}
.symptom-card.scored{border-color:var(--olive-pale);}
.sym-text{flex:1;font-size:0.86rem;line-height:1.4;font-weight:300;}
.score-chips{display:flex;gap:3px;flex-shrink:0;}
.chip{width:30px;height:30px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:transparent;font-family:var(--font-serif);font-size:1rem;font-weight:600;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:all .15s;}
.chip:active{transform:scale(0.9);}
.chip[data-sel="true"][data-v="0"]{background:var(--cream-deep);border-color:var(--border);color:var(--muted);}
.chip[data-sel="true"][data-v="1"]{background:#e8f0d0;border-color:#b8cc88;color:#4a6020;}
.chip[data-sel="true"][data-v="2"]{background:#d4e8a0;border-color:#a0c050;color:#3a5010;}
.chip[data-sel="true"][data-v="3"]{background:var(--olive-pale);border-color:var(--olive-mid);color:var(--dark);}
.chip[data-sel="true"][data-v="4"]{background:var(--olive);border-color:var(--olive);color:var(--cream);}

/* ── SYMPTOM STEPPER (Admin/Session) ── */
.symptom-item{background:var(--cream-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;}
.symptom-text{flex:1;font-size:0.87rem;line-height:1.4;}
.score-stepper{display:flex;align-items:center;flex-shrink:0;}
.step-btn{width:32px;height:32px;border:1.5px solid var(--border);background:var(--white);color:var(--dark);font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .15s;user-select:none;}
.step-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.step-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.step-btn:active{background:var(--olive);color:var(--cream);border-color:var(--olive);}
.step-val{width:36px;height:32px;border-top:1.5px solid var(--border);border-bottom:1.5px solid var(--border);background:var(--white);text-align:center;font-family:var(--font-serif);font-size:1.1rem;font-weight:600;line-height:32px;transition:all .15s;}
.step-val[data-v="4"]{background:var(--olive);color:var(--cream);border-color:var(--olive);}
.step-val[data-v="3"]{background:var(--olive-pale);color:var(--dark);}
.step-val[data-v="2"]{background:#dde8c0;color:var(--dark);}

/* ── 5 ELEMENTOS TABS ── */
.elem-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:20px;}
.elem-tab{flex:1;min-width:56px;padding:9px 4px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--cream-card);font-size:0.7rem;letter-spacing:0.04em;text-transform:uppercase;text-align:center;transition:all .2s;color:var(--muted);}
.elem-tab.active{color:var(--cream);border-color:transparent;}
.elem-tab[data-el="fogo"].active{background:var(--fogo);}
.elem-tab[data-el="terra"].active{background:var(--terra);}
.elem-tab[data-el="metal"].active{background:var(--metal);}
.elem-tab[data-el="agua"].active{background:var(--agua);}
.elem-tab[data-el="madeira"].active{background:var(--madeira);}

/* ── ELEM ITEM ── */
.elem-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:600;margin-bottom:4px;}
.elem-subtitle{font-size:0.78rem;color:var(--muted);margin-bottom:16px;font-weight:300;}
.elem-item{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:13px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;transition:border-color .2s;}
.elem-item.checked-item{border-color:var(--olive-pale);}
.elem-checkbox{width:24px;height:24px;border:2px solid var(--border);border-radius:7px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;background:var(--white);min-width:24px;}
.elem-checkbox.checked{border-color:var(--olive);background:var(--olive);}
.elem-checkbox.checked::after{content:'✓';color:var(--cream);font-size:0.85rem;font-weight:600;}

/* ── YIN YANG ── */
.yy-question{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:10px;}
.yy-q-text{font-size:0.88rem;font-weight:500;margin-bottom:10px;line-height:1.4;}
.yy-options{display:flex;flex-direction:column;gap:6px;}
.yy-opt{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;background:var(--cream-card);font-size:0.83rem;line-height:1.3;}
.yy-opt.selected{border-color:var(--olive);background:var(--olive-ghost);}
.yy-opt.selected .yy-radio{background:var(--olive);border-color:var(--olive);}
.yy-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;transition:all .15s;min-width:16px;}
.yy-pts{margin-left:auto;font-family:var(--font-serif);font-size:0.9rem;color:var(--muted);font-weight:600;white-space:nowrap;padding-left:6px;}

/* ── BOTTOM BARS ── */
.bottom-bar{position:fixed;bottom:0;left:0;right:0;background:var(--dark);padding:12px 20px 20px;display:flex;align-items:center;justify-content:space-between;z-index:200;box-shadow:0 -4px 30px rgba(0,0,0,.2);}
.bar-totals{display:flex;gap:14px;}
.bar-total{text-align:center;}
.bar-total .bt-lbl{font-size:0.6rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--olive-pale);}
.bar-total .bt-val{font-family:var(--font-serif);font-size:1.45rem;font-weight:300;color:var(--cream);line-height:1;}
.elem-bar-totals{display:flex;gap:8px;flex-wrap:wrap;}
.ebc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.ebc-val{font-family:var(--font-serif);font-size:1.1rem;font-weight:300;color:var(--cream);}
.ebc-lbl{font-size:0.58rem;color:var(--olive-pale);text-transform:uppercase;letter-spacing:0.05em;}

/* ── PROGRESS ── */
.progress-wrap{height:3px;background:var(--border-soft);border-radius:2px;margin-bottom:28px;overflow:hidden;}
.progress-bar{height:100%;background:var(--olive);border-radius:2px;transition:width .4s ease;}

/* ── DETAIL VIEW ── */
.dt-organ-header{font-family:var(--font-serif);font-size:1.05rem;font-weight:600;color:var(--olive);padding:12px 0 6px;border-bottom:1px solid var(--border);margin-bottom:4px;}
.dt-row{display:flex;align-items:center;padding:7px 4px;border-bottom:1px solid var(--cream-deep);gap:10px;}
.dt-sym{flex:1;font-size:0.84rem;}
.dt-score{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1rem;font-weight:600;flex-shrink:0;}
.dt-score[data-v="0"]{background:var(--cream-deep);color:var(--muted);}
.dt-score[data-v="1"]{background:#dde8c0;color:var(--dark);}
.dt-score[data-v="2"]{background:#c4d490;color:var(--dark);}
.dt-score[data-v="3"]{background:var(--olive-pale);color:var(--dark);}
.dt-score[data-v="4"]{background:var(--olive);color:var(--cream);}

/* ── SUMMARY BLOCKS ── */
.summary-totals{display:flex;gap:10px;margin-bottom:24px;}
.sum-block{flex:1;background:var(--cream-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 10px;text-align:center;}
.sum-block .sb-label{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:4px;}
.sum-block .sb-val{font-family:var(--font-serif);font-size:2rem;font-weight:300;color:var(--olive);}

/* ── ELEM RESULT CARDS ── */
.elem-result-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px;}
.elem-result-card{border-radius:var(--radius-md);padding:16px;text-align:center;color:white;}
.erc-name{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:4px;}
.erc-score{font-family:var(--font-serif);font-size:2.5rem;font-weight:300;line-height:1;}
.erc-sub{font-size:0.62rem;opacity:.8;text-transform:uppercase;letter-spacing:0.06em;margin-top:2px;}
.erc-dominant{grid-column:1/-1;}

/* ── YY RESULT ── */
.yy-result-card{border-radius:var(--radius-md);padding:20px;color:white;text-align:center;margin-bottom:20px;}
.yy-result-card h3{font-family:var(--font-serif);font-size:1.6rem;font-weight:300;margin-bottom:6px;}
.yy-result-card .yy-score-big{font-family:var(--font-serif);font-size:3rem;font-weight:300;line-height:1;margin-bottom:4px;}
.yy-result-yin{background:linear-gradient(135deg,#1a5276,#2471a3);}
.yy-result-yang{background:linear-gradient(135deg,#922b21,#c0392b);}
.yy-result-balance{background:linear-gradient(135deg,#1e5631,#5a6b3a);}

/* ── FOOD TABLE ── */
.yy-food-table{width:100%;border-collapse:collapse;font-size:0.8rem;margin-top:12px;}
.yy-food-table th{padding:8px 10px;font-size:0.65rem;text-transform:uppercase;letter-spacing:0.08em;font-weight:500;}
.yy-food-table td{padding:6px 10px;border-bottom:1px solid var(--cream-deep);}
.yy-food-table tr:last-child td{border-bottom:none;}
.yy-th-yin{background:#d4e8f8;color:#1a5276;}
.yy-th-neu{background:#e8eedd;color:#2e5016;}
.yy-th-yang{background:#fadadd;color:#922b21;}
.yy-td-yin{background:#f0f7fc;}
.yy-td-neu{background:#f5f8f0;}
.yy-td-yang{background:#fdf3f3;}

/* ── SEARCH ── */
.search-wrap{position:relative;margin-bottom:24px;}
.search-wrap input{width:100%;padding:13px 44px 13px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--white);font-size:0.92rem;outline:none;transition:border-color .2s;}
.search-wrap input:focus{border-color:var(--olive);}
.search-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;}

/* ── LINK BOX ── */
.link-box{background:var(--dark-soft);border-radius:var(--radius-sm);padding:10px 14px;display:flex;align-items:center;gap:10px;margin-top:10px;}
.link-box code{flex:1;font-size:0.78rem;color:var(--olive-pale);word-break:break-all;font-family:monospace;}
.link-copy-btn{background:var(--olive);color:var(--cream);border-radius:6px;padding:6px 12px;font-size:0.72rem;letter-spacing:0.06em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;}

/* ── PDF PREVIEW ── */
.pdf-editor{width:100%;min-height:400px;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:16px;background:var(--white);font-size:0.88rem;line-height:1.7;resize:vertical;font-family:var(--font-sans);}

/* ── HERO ── */
.page-hero{background:var(--dark);position:relative;overflow:hidden;padding:60px 24px 56px;text-align:center;}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 20% 110%,rgba(90,107,58,.25),transparent 60%),radial-gradient(ellipse 50% 60% at 80% -10%,rgba(90,107,58,.15),transparent 55%);pointer-events:none;}
.hero-logo{display:flex;justify-content:center;margin-bottom:22px;animation:fadeDown .8s ease both;}
.page-hero h1{font-family:var(--font-serif);font-size:clamp(1.9rem,6vw,2.6rem);font-weight:300;letter-spacing:0.18em;text-transform:uppercase;color:var(--cream);line-height:1.15;margin-bottom:8px;animation:fadeUp .8s .1s ease both;}
.hero-sub{font-size:0.78rem;letter-spacing:0.22em;color:var(--olive-pale);text-transform:lowercase;margin-bottom:20px;animation:fadeUp .8s .2s ease both;}

/* ── CONSENT BOX ── */
.consent-box{display:flex;gap:12px;align-items:flex-start;background:var(--cream-card);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:14px;margin-bottom:20px;cursor:pointer;}
.consent-box input[type="checkbox"]{width:18px;height:18px;flex-shrink:0;accent-color:var(--olive);margin-top:2px;}
.consent-box p{font-size:0.8rem;color:var(--muted);line-height:1.55;font-weight:300;}

/* ── ORIENTACOES ── */
.orientacao-card{background:var(--cream-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;margin-bottom:14px;}
.orientacao-card h4{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;margin-bottom:8px;}
.orientacao-card p{font-size:0.85rem;color:var(--muted);line-height:1.7;font-weight:300;}
.orientacao-date{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-top:10px;}

/* ── INFO ROW ── */
.info-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border-soft);}
.info-row:last-child{border-bottom:none;}
.info-row .ir-label{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);}
.info-row .ir-value{font-size:0.9rem;color:var(--dark);}

/* ── NAV TABS (admin) ── */
.nav-tabs{display:flex;gap:0;background:var(--cream-deep);border-radius:var(--radius-sm);padding:4px;margin-bottom:24px;}
.nav-tab{flex:1;padding:9px 8px;border-radius:7px;font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);text-align:center;transition:all .18s;}
.nav-tab.active{background:var(--olive);color:var(--cream);font-weight:500;}
