:root{--bg:#f7f3fb;--paper:#fcfaff;--surface:#fff;--ink:#271d39;--muted:#685e76;--accent:#6544bd;--accent-dark:#4d2e9d;--accent-soft:#eee8fa;--line:#ded6eb;--danger:#a33146;--shadow:0 16px 45px rgba(54,36,82,.08);--radius:18px;--font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(140deg,#fbf9fd 0,#f6f0fb 60%,#f1edf8 100%);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.55;min-height:100vh}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}.skip-link{position:fixed;left:12px;top:-60px;background:var(--ink);color:#fff;padding:12px 18px;z-index:100;border-radius:8px}.skip-link:focus{top:12px}:focus-visible{outline:3px solid #b94d00;outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-header,.site-footer{max-width:1200px;margin:auto;padding:22px clamp(20px,5vw,64px);display:flex;justify-content:space-between;align-items:center}.brand{border:0;background:none;display:flex;align-items:center;gap:12px;font-size:.73rem;letter-spacing:.08em;font-weight:800;padding:6px}.brand-mark{width:32px;height:32px;border:1.5px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:3px}.brand-mark i{display:block;width:5px;height:13px;background:var(--accent);border-radius:10px;transform:rotate(35deg)}.brand-mark i+ i{transform:rotate(-35deg)}.quiet-link,.text-button,.back-button{border:0;background:none;padding:8px;color:var(--muted);font-size:.82rem;text-decoration:underline;text-underline-offset:4px}.back-button{text-decoration:none;font-weight:800;letter-spacing:.07em}.view{max-width:1120px;margin:0 auto;padding:clamp(34px,7vw,86px) clamp(20px,5vw,64px) 80px}.view[hidden]{display:none}.home-view{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:end;gap:clamp(35px,8vw,100px);min-height:calc(100vh - 150px)}.home-copy{max-width:650px}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--accent);margin:0 0 16px;text-transform:uppercase}.danger{color:var(--danger)}h1,h2,h3{line-height:1.12;letter-spacing:-.035em}h1{font-size:clamp(2.5rem,7vw,5.4rem);margin:0 0 24px}h2{font-size:clamp(1.45rem,3vw,2.15rem);margin:0 0 14px}.home-view h1{font-size:clamp(3rem,7.7vw,6rem);line-height:.96}.lead{font-size:clamp(1.08rem,2vw,1.35rem);color:#483e56;max-width:700px}.cycle-rhythm{display:flex;gap:8px;margin:34px 0}.cycle-rhythm i{height:14px;flex:1;max-width:84px;border-radius:20px;background:var(--accent);opacity:.18}.cycle-rhythm i:nth-child(2),.cycle-rhythm i:nth-child(5){opacity:.48}.cycle-rhythm i:nth-child(3){opacity:1}.home-actions{display:grid;gap:12px;margin:30px 0 18px;max-width:420px}.button{appearance:none;border:0;border-radius:15px;padding:15px 22px;min-height:52px;font-weight:800;font-size:.8rem;letter-spacing:.055em;text-align:center;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--accent);color:#fff;box-shadow:0 9px 22px rgba(101,68,189,.22)}.button-primary:hover{background:var(--accent-dark)}.button-secondary{background:transparent;border:1px solid var(--line)}.button-danger{background:transparent;border:1px solid #d7a7b0;color:var(--danger)}.button-danger-solid{background:var(--danger);color:#fff}.microcopy{font-size:.83rem;color:var(--muted);max-width:500px}.home-note{border-left:1px solid var(--line);padding-left:28px;margin-bottom:16px}.home-note h2{font-size:1.25rem}.home-note p{font-size:.92rem;color:var(--muted)}.privacy-icon{display:block;width:36px;height:42px;border:2px solid var(--accent);border-radius:17px 17px 9px 9px;margin-bottom:20px;position:relative}.privacy-icon:after{content:"";position:absolute;width:5px;height:5px;background:var(--accent);border-radius:50%;left:14px;top:19px}.wizard-view{max-width:760px}.wizard-topline,.section-heading,.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.wizard-topline span{font-size:.75rem;letter-spacing:.12em;font-weight:800;color:var(--muted)}.progress{display:flex;gap:6px;margin:25px 0 45px}.progress i{height:5px;flex:1;background:var(--line);border-radius:8px}.progress i.done{background:var(--accent)}.step-kicker{font-size:.75rem;letter-spacing:.15em;color:var(--accent);font-weight:800}.step-title{font-size:clamp(1.75rem,4vw,2.6rem);margin:12px 0}.step-intro{color:var(--muted)}.field{margin:28px 0}.field-label,.field legend{display:block;font-weight:750;margin-bottom:10px}.field-help{font-size:.85rem;color:var(--muted);margin-top:7px}.text-input{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.84);border-radius:15px;padding:16px;min-height:120px;resize:vertical}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(101,68,189,.1);outline:0}.choice-grid{border:0;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice-grid.single{grid-template-columns:1fr}.choice-card{position:relative;display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:15px;padding:15px;min-height:56px}.choice-card:hover{border-color:#b9aad8}.choice-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.choice-card input{width:19px;height:19px;accent-color:var(--accent);margin:2px 0 0;flex:none}.choice-copy b{display:block;font-size:.92rem}.choice-copy small{display:block;color:var(--muted);margin-top:5px;line-height:1.45}.examples{background:var(--accent-soft);border-radius:15px;padding:0 18px;margin:20px 0}.examples summary{font-weight:750;cursor:pointer;padding:15px 0}.examples ul{margin:0;padding:0 0 18px 20px;color:var(--muted)}.range-wrap{display:flex;align-items:center;gap:18px}.range-wrap input{flex:1;accent-color:var(--accent)}.range-value{font-weight:800;font-size:1.6rem;min-width:2ch}.info-strip{border-left:3px solid var(--accent);padding:4px 0 4px 15px;color:var(--muted);font-size:.9rem}.wizard-actions{margin-top:35px}.wizard-actions .button{width:100%}.form-error{color:var(--danger);font-weight:700;background:#fff0f2;border-radius:10px;padding:11px 14px}.result-view{max-width:870px}.result-view h1,.patterns-view h1,.info-view h1{font-size:clamp(2.5rem,6vw,4.7rem)}.cycle-map{margin:45px 0}.cycle-node{display:grid;grid-template-columns:44px 1fr;gap:16px;position:relative;margin-bottom:18px}.cycle-node:not(:last-child):after{content:"";position:absolute;left:21px;top:44px;bottom:-19px;width:2px;background:var(--line)}.cycle-number{position:relative;z-index:1;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:.72rem;font-weight:800}.cycle-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:0 5px 20px rgba(54,36,82,.04);overflow-wrap:anywhere}.cycle-card b{display:block;font-size:.68rem;letter-spacing:.13em;color:var(--muted);margin-bottom:6px}.cycle-node:nth-child(4) .cycle-card,.cycle-node:nth-child(5) .cycle-card{background:var(--accent-soft);border-color:#cdbfe9}.reflection-note{background:var(--ink);color:#fff;border-radius:24px;padding:clamp(24px,5vw,40px);margin:38px 0}.reflection-note h2{color:#d7c9f3}.reflection-note p{color:#e8e3ef}.button-row,.dialog-actions,.data-actions{display:flex;gap:12px;flex-wrap:wrap}.button-row .button{flex:1}.patterns-view{max-width:1120px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:42px 0 20px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.metric-label{font-size:.75rem;color:var(--muted);font-weight:700}.metric-value{display:block;font-size:2.3rem;letter-spacing:-.05em;font-weight:800;margin:7px 0}.metric-note{font-size:.78rem;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.panel h2{font-size:1.25rem}.chart{margin-top:18px}.bar-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr auto;align-items:center;gap:10px;margin:11px 0;font-size:.85rem}.bar-track{height:10px;border-radius:10px;background:#eee9f2;overflow:hidden}.bar-fill{height:100%;border-radius:10px;background:var(--accent)}.bar-value{font-variant-numeric:tabular-nums;font-weight:800}.chart-note{font-size:.77rem;color:var(--muted);margin-top:14px}.trend{width:100%;height:auto;overflow:visible}.trend text{fill:var(--muted);font-size:11px}.trend .axis{stroke:var(--line);stroke-width:1}.trend .line{fill:none;stroke:var(--accent);stroke-width:3}.trend .dot{fill:var(--surface);stroke:var(--accent);stroke-width:3}.episode-list-panel{margin-top:18px}.episode-list{margin-top:10px}.episode-row{display:grid;grid-template-columns:120px 1fr auto;gap:18px;align-items:center;border-top:1px solid var(--line);padding:15px 0}.episode-row time{font-size:.8rem;color:var(--muted)}.episode-row p{margin:0;font-size:.9rem;overflow-wrap:anywhere}.episode-row button{border:0;background:none;color:var(--accent);font-weight:800}.data-actions{margin:28px 0}.empty-state{background:var(--surface);border:1px dashed var(--line);border-radius:22px;padding:38px;text-align:center;margin-top:38px}.info-view{max-width:950px}.info-view>.back-button{margin-bottom:50px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:45px 0}.info-grid article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:25px}.info-grid h2{font-size:1.25rem}.info-grid p{color:var(--muted)}.site-footer{border-top:1px solid var(--line);font-size:.77rem;color:var(--muted)}dialog{border:0;padding:0;border-radius:24px;background:var(--paper);color:var(--ink);width:min(600px,calc(100% - 32px));box-shadow:0 25px 90px rgba(31,18,51,.3)}dialog::backdrop{background:rgba(27,19,38,.68);backdrop-filter:blur(3px)}.dialog-inner{padding:clamp(24px,6vw,42px)}.dialog-inner p{color:var(--muted)}.dialog-actions{margin-top:26px;justify-content:flex-end}.radio-cards{border:0;padding:0;display:grid;gap:10px;margin:22px 0}.radio-cards label{display:flex;gap:12px;padding:15px;border:1px solid var(--line);border-radius:15px}.radio-cards label:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.radio-cards input{accent-color:var(--accent)}.radio-cards b,.radio-cards small{display:block}.radio-cards small{color:var(--muted);margin-top:3px}.toast{position:fixed;z-index:200;right:20px;bottom:20px;background:var(--ink);color:#fff;padding:14px 18px;border-radius:12px;box-shadow:var(--shadow);max-width:360px}@media(max-width:760px){.app-header{padding:16px 18px}.brand span:last-child{display:none}.home-view{grid-template-columns:1fr;align-items:start;min-height:auto;padding-top:48px}.home-note{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.choice-grid,.dashboard-grid,.info-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid .metric:first-child{grid-column:1/-1}.episode-row{grid-template-columns:1fr auto}.episode-row time{grid-column:1/-1}.section-heading{flex-direction:column-reverse}.button-row,.data-actions{flex-direction:column}.button-row .button{width:100%}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button{width:100%}.site-footer{padding:18px}.bar-row{grid-template-columns:minmax(90px,1fr) 1.4fr auto}}@media(max-width:390px){.view{padding-left:17px;padding-right:17px}.metric-grid{grid-template-columns:1fr}.metric-grid .metric:first-child{grid-column:auto}.choice-card{padding:13px}.bar-row{grid-template-columns:1fr auto}.bar-track{grid-column:1/-1;grid-row:2}.episode-row{gap:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.app-header,.site-footer,.button-row{display:none}.view{padding:20px}.cycle-card{box-shadow:none}}

/* ===== Brand layer: allineamento a psicologadrabik.it ===== */
:root{--bg:#F8F1E7;--paper:#FFFCF8;--surface:#FFFCF8;--ink:#1A202C;--text:#2D3748;--muted:#5F6675;--accent:#2B6CB0;--accent-dark:#215387;--accent-soft:#EAF1F8;--line:#E6DBCB;--danger:#A33146;--shadow:0 14px 40px -22px rgba(33,83,135,.35);--font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:var(--font)}
.lead{color:var(--text)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
/* header */
.app-header{border-bottom:1px solid var(--line);max-width:none;padding:16px clamp(20px,5vw,64px)}
.brand{gap:14px;font-size:inherit;letter-spacing:0;font-weight:400;text-align:left;color:var(--ink)}
.brand-mono{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--ink);flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-title{font-family:var(--serif);font-size:1.12rem;color:var(--ink)}
.brand-sub{font-size:.78rem;color:var(--muted)}
.quiet-link,.text-button{color:var(--accent-dark);font-size:.9rem}
/* buttons */
.button{border-radius:999px;font-size:.95rem;letter-spacing:.01em;font-weight:800;padding:14px 26px}
.button-primary{background:var(--accent);box-shadow:0 8px 20px -10px rgba(33,83,135,.7)}
.button-primary:hover{background:var(--accent-dark)}
.button-secondary{background:var(--paper);border:1.5px solid var(--accent);color:var(--accent-dark)}
.button-secondary:hover{background:var(--accent-soft)}
.back-button{color:var(--accent-dark);letter-spacing:.04em}
/* surfaces */
.home-note{border-left:0;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:28px}
.purpose-copy,.info-strip{border-left-color:var(--accent)}
.eyebrow,.step-kicker{color:var(--accent-dark)}
.text-input,.choice-card{background:var(--paper)}
.choice-card:hover{border-color:#B9CBE0}
.intensity-field{border-color:#C9DAEC!important}
.cycle-card b{color:var(--muted)}
.cycle-node:nth-child(4) .cycle-card,.cycle-node:nth-child(5) .cycle-card{border-color:#C9DAEC}
.reflection-note{background:#1F3550}
.reflection-note h2{color:#fff}
.reflection-note p{color:#E4ECF5}
.bar-track{background:#EFE7DB}
.panel{box-shadow:none}
.site-footer{max-width:none;padding:22px clamp(20px,5vw,64px);flex-wrap:wrap;gap:10px}
.site-footer a{color:var(--accent-dark)}
.author-link{color:var(--accent-dark);font-weight:700}
dialog{background:var(--paper)}
.toast{background:#1F3550}
.bar-track{display:block}.bar-fill{display:block}
.episode-row button{font-size:.85rem;letter-spacing:.06em;color:var(--accent-dark)}
@media(max-width:760px){.brand span.brand-text{display:flex}.brand-sub{display:none}.brand-title{font-size:1rem}}

.cycle-node:nth-child(4) .cycle-card,.cycle-node:nth-child(5) .cycle-card{background:var(--surface);border-color:var(--line)}
.cycle-node .cycle-card.cycle-card--accent{background:var(--accent-soft);border-color:#C9DAEC}

body{background:var(--bg);color:var(--ink)}
h1,h2,h3{color:var(--ink)}
.brand-title{font-weight:800;font-size:.95rem;letter-spacing:-.01em}
.brand-mono{font-style:normal;font-weight:800;font-size:.8rem;letter-spacing:.02em}
.brand-logo{height:44px;width:auto;display:block;mix-blend-mode:multiply;flex:none}
@media(max-width:760px){.brand-logo{height:36px}}
.text-input--short{min-height:80px}
