@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=DM+Sans:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:#241712}html,body{color:#efdccb;min-height:100vh}#root{min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}:root{--ff-display:"Cormorant Garamond", Georgia, serif;--ff-ui:"DM Sans", system-ui, sans-serif;--ease:cubic-bezier(.22,.61,.36,1)}html[data-theme=night],html:not([data-theme]){--bg:#241712;--bg2:#1a0f0a;--bg3:#2f1f17;--surface:#2f1f17;--surface2:#382519;--surface3:#43291a;--gold:#d6a07f;--gold2:#b87a5a;--gold3:#8f523f;--gold-dim:#d6a07f21;--gold-border:#d6a07f38;--sand:#efdccb;--sand2:#cdb4a0;--sand3:#a08576;--sand4:#6e5648;--ink:#efdccb;--ink2:#cdb4a0;--ink3:#a08576;--warn-bg:#c98a4a1f;--warn-border:#c98a4a4d;--warn-text:#e0b276;--noise-op:.05;--noise-blend:soft-light;--shadow:0 24px 50px -28px #0009}html[data-theme=day]{--bg:#ece0d2;--bg2:#e3d3c1;--bg3:#f1e6d8;--surface:#f8f1e7;--surface2:#f1e6d8;--surface3:#e7d8c5;--gold:#a85f44;--gold2:#8f4e38;--gold3:#76402e;--gold-dim:#a85f441a;--gold-border:#7a3f362e;--sand:#2e1d15;--sand2:#5d473b;--sand3:#8a7460;--sand4:#a78f78;--ink:#2e1d15;--ink2:#5d473b;--ink3:#8a7460;--warn-bg:#a878281f;--warn-border:#a8782852;--warn-text:#8c6a2a;--noise-op:.04;--noise-blend:multiply;--shadow:0 22px 44px -30px #5a371e66}html,body{background:var(--bg);color:var(--ink);min-height:100vh}body{font-family:var(--ff-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}#root{background:var(--bg);min-height:100vh}body:after{content:"";pointer-events:none;z-index:9999;opacity:var(--noise-op);mix-blend-mode:var(--noise-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.app{max-width:920px;font-family:var(--ff-ui);color:var(--ink);margin:0 auto}.topbar{background:linear-gradient(180deg, var(--bg2), var(--bg));border-bottom:1px solid var(--gold-border);justify-content:space-between;align-items:center;padding:1.6rem 2rem;display:flex}.logo{align-items:center;gap:15px;display:flex}.logo .moon-mark{flex:none;width:38px;height:38px}.logo-text{flex-direction:column;display:flex}.logo-main{font-family:var(--ff-display);color:var(--sand);font-weight:500;line-height:1.1;display:block;letter-spacing:.06em!important;font-size:22px!important}.logo-main em{color:var(--gold);font-style:normal;font-weight:600}.logo-sub{color:var(--gold2);text-transform:uppercase;margin-top:4px;font-weight:500;display:block;letter-spacing:.22em!important;font-size:9px!important}.avatar{background:radial-gradient(circle at 32% 28%, var(--surface3), var(--bg2));border:1px solid var(--gold-border);width:36px;height:36px;color:var(--gold);letter-spacing:.06em;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.daynight{appearance:none;border:1px solid var(--gold-border);cursor:pointer;background:0 0;border-radius:28px;flex:none;width:54px;height:28px;padding:0;transition:border-color .4s;position:relative}.daynight:hover{border-color:var(--gold2)}.daynight .knob{background:linear-gradient(140deg, var(--gold), var(--gold2));width:21px;height:21px;transition:transform .55s var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;top:3px;left:3px}html[data-theme=day] .daynight .knob{transform:translate(26px)}.daynight .knob svg{width:12px;height:12px;display:block}.logout-btn{border:1px solid var(--gold-border);color:var(--sand3);cursor:pointer;letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-family:var(--ff-ui);background:0 0;border-radius:20px;padding:6px 14px;font-weight:500;transition:border-color .3s,color .3s}.logout-btn:hover{border-color:var(--gold2);color:var(--gold)}.nav{background:var(--bg);border-bottom:1px solid var(--gold-border);padding:0 2rem;display:flex;overflow-x:auto}.nb{cursor:pointer;color:var(--sand3);font-size:10px;font-family:var(--ff-ui);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;background:0 0;border:none;border-bottom:1.5px solid #0000;margin-right:1.9rem;padding:1rem 0;font-weight:500;transition:all .25s}.nb.active{color:var(--gold);border-bottom-color:var(--gold)}.nb:hover:not(.active){color:var(--sand2)}.content{padding:2.25rem 2rem 5rem}.dash{flex-direction:column;gap:24px;display:flex}.dash-loading{color:var(--gold2);font-family:var(--ff-display);letter-spacing:.04em;justify-content:center;align-items:center;padding:4rem;font-size:17px;font-style:italic;display:flex}.greet{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:40px;display:flex}.greet .gt{font-family:var(--ff-display);color:var(--ink);letter-spacing:-.01em;font-size:clamp(40px,6vw,64px);font-weight:400;line-height:1.02}.greet .gt em{color:var(--gold);margin-top:2px;font-style:italic;display:block}.greet .gd{color:var(--sand3);letter-spacing:.05em;text-transform:capitalize;margin-top:18px;font-size:13px}.summary{gap:clamp(22px,4vw,46px);padding-bottom:6px;display:flex}.summary .fig{text-align:right}.summary .fig .k{letter-spacing:.2em;text-transform:uppercase;color:var(--sand3);white-space:nowrap;margin-bottom:9px;font-size:10px;font-weight:600;display:block}.summary .fig .v{font-family:var(--ff-display);background:linear-gradient(140deg, var(--gold), var(--gold3));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:34px;line-height:1}.summary .fig .v small{opacity:.7;font-size:17px}.summary .sep{background:var(--gold-border);align-self:stretch;width:1px}@media (width<=760px){.summary{justify-content:flex-start;width:100%}}.dome-scene{margin:4px 0 8px;position:relative}.dome-svg{width:100%;height:auto;display:block;overflow:visible}.dome-svg .arc-base{fill:none;stroke:var(--gold-border);stroke-width:1.5px}.dome-svg .arc-live{fill:none;stroke:url(#domeGoldStroke);stroke-width:2.5px;stroke-linecap:round}.dome-svg .tick-line{stroke:var(--gold-border);stroke-width:1px;opacity:.5}.dome-svg .tick-label{fill:var(--sand4);font-family:var(--ff-ui);letter-spacing:.12em;font-size:13px}.dome-svg .bead .core{stroke-width:1.5px}.dome-svg .bead.past .core{fill:#0000;stroke:var(--sand4)}.dome-svg .bead.future .core{fill:var(--bg);stroke:url(#domeGoldStroke)}.dome-svg .bead.future .fill{fill:url(#domeGoldGrad)}.dome-svg .now-line{stroke:var(--gold2);stroke-width:1px;stroke-dasharray:2 5;opacity:.55}.dome-svg .now-halo{fill:var(--gold);opacity:.4}.dome-svg .now-core{fill:url(#domeGoldGrad)}.dome-svg .now-tag{fill:var(--gold);font-family:var(--ff-ui);letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:600}html[data-motion=still] .dome-svg .now-halo{animation:none!important}.dome-svg .now-halo{animation:domeBreathe 4.6s var(--ease) infinite;transform-origin:50%;transform-box:fill-box}.dome-svg .now-core{animation:domeBreatheCore 4.6s var(--ease) infinite;transform-origin:50%;transform-box:fill-box}@keyframes domeBreathe{0%,to{opacity:.22;transform:scale(.8)}50%{opacity:.5;transform:scale(1.35)}}@keyframes domeBreatheCore{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.dome-next{background:linear-gradient(150deg, var(--surface2), var(--surface));border:1px solid var(--gold-border);width:min(330px,84%);box-shadow:var(--shadow);border-radius:20px;padding:22px 24px 24px;position:absolute;top:0;right:0}.dome-next .eyebrow{letter-spacing:.26em;text-transform:uppercase;color:var(--gold2);align-items:center;gap:8px;font-size:10px;font-weight:600;display:flex}.dome-next .eyebrow .dot{background:var(--gold);border-radius:50%;width:6px;height:6px}.dome-next .nx-time{font-family:var(--ff-display);color:var(--sand);margin:14px 0 2px;font-size:40px;line-height:1}.dome-next .nx-who{font-family:var(--ff-display);color:var(--ink);margin:2px 0 0;font-size:22px;font-style:italic}.dome-next .nx-meta{flex-direction:column;gap:9px;margin:16px 0 0;display:flex}.dome-next .nx-meta .row{color:var(--ink2);align-items:center;gap:10px;font-size:13px;display:flex}.dome-next .nx-meta .row svg{width:15px;height:15px;stroke:var(--gold2);flex:none}.dome-next .nx-cta{appearance:none;cursor:pointer;background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;width:100%;font-family:var(--ff-ui);letter-spacing:.14em;text-transform:uppercase;transition:filter .3s, transform .3s var(--ease);border:none;border-radius:12px;margin-top:20px;padding:13px;font-size:12px;font-weight:600}.dome-next .nx-cta:hover{filter:brightness(1.07);transform:translateY(-1px)}@media (width<=760px){.dome-next{width:100%;margin-top:16px;position:static}}.ribbon-head{justify-content:space-between;align-items:baseline;margin:clamp(20px,4vw,40px) 0 16px;display:flex}.ribbon-head .lab{letter-spacing:.24em;text-transform:uppercase;color:var(--sand3);white-space:nowrap;font-size:10px;font-weight:600}.ribbon-head .all{color:var(--gold2);letter-spacing:.04em;cursor:pointer;font-size:12px;text-decoration:none}.ribbon-head .all:hover{color:var(--gold)}.ribbon{scrollbar-width:thin;grid-auto-columns:minmax(190px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:10px;display:grid;overflow-x:auto}.ses{background:var(--surface);border:1px solid var(--gold-border);transition:border-color .3s, transform .3s var(--ease);border-radius:16px;padding:16px 16px 18px}.ses:hover{border-color:var(--gold2);transform:translateY(-3px)}.ses .t{justify-content:space-between;align-items:center;display:flex}.ses .t .hh{font-family:var(--ff-display);color:var(--sand);font-size:20px}.ses .t .badge{letter-spacing:.16em;text-transform:uppercase;color:var(--gold2);border:1px solid var(--gold-border);white-space:nowrap;border-radius:20px;padding:3px 9px;font-size:9px;font-weight:600}.ses .nm{font-family:var(--ff-display);color:var(--ink);margin:11px 0 4px;font-size:18px;font-style:italic}.ses .rm{color:var(--sand3);letter-spacing:.03em;font-size:11px}.ses.done{opacity:.5}.ses .foot{color:var(--sand4);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:7px;margin-top:13px;font-size:10px;font-weight:500;display:flex}.ses .foot svg{width:13px;height:13px}.kpi{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.kcard{background:var(--surface);border:1px solid var(--gold-border);border-radius:16px;flex-direction:column;gap:6px;padding:1.35rem 1.5rem;display:flex}.kl{color:var(--gold2);text-transform:uppercase;letter-spacing:.2em;font-size:9px;font-weight:600}.kv{font-family:var(--ff-display);color:var(--sand);font-size:38px;font-weight:400;line-height:1}.ks{color:var(--sand3);text-transform:capitalize;font-size:10px;font-weight:400}.nextcard{background:var(--card-grad,linear-gradient(150deg, var(--surface2), var(--surface)));border:1px solid var(--gold-border);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:18px;padding:1.4rem 1.5rem;display:flex}.nextcard .nc-ic{flex:none;width:34px;height:34px}.nextcard .nc-l{color:var(--gold2);letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:600}.nextcard .nc-name{font-family:var(--ff-display);color:var(--ink);font-size:22px;font-style:italic;line-height:1}.nextcard .nc-meta{color:var(--sand3);letter-spacing:.03em;margin-top:6px;font-size:11px}.weekcard{background:var(--surface);border:1px solid var(--gold-border);border-radius:16px;padding:1.4rem 1.5rem}.week-lab{color:var(--gold2);letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px;font-size:9px;font-weight:600}.weekbars{align-items:flex-end;gap:10px;height:64px;display:flex}.wbar-col{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.wbar-fill{width:100%;min-height:3px;transition:height .4s var(--ease);background:var(--surface3);border-radius:5px}.wbar-fill.has{background:linear-gradient(180deg, var(--gold), var(--gold2))}.wbar-fill.today{background:linear-gradient(180deg, var(--gold), var(--gold3));box-shadow:0 0 0 1px var(--gold-border)}.wbar-day{color:var(--sand3);letter-spacing:.04em;font-size:9px}.wbar-day.today{color:var(--gold);font-weight:600}.st{font-family:var(--ff-display);color:var(--sand);letter-spacing:.01em;margin-bottom:1.25rem;font-size:24px;font-style:italic;font-weight:400}.dh{color:var(--gold2);text-transform:uppercase;letter-spacing:.2em;margin:1.75rem 0 .9rem;font-size:9px;font-weight:600}.empty{color:var(--sand3);font-size:15px;font-style:italic;font-family:var(--ff-display)}.reformer-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.rcard{background:var(--surface);border:1px solid var(--gold-border);text-align:center;border-radius:14px;padding:1.1rem 1rem}.rname{font-family:var(--ff-display);color:var(--sand);margin-bottom:8px;font-size:21px;font-weight:500}.rdot{background:#7aaf7a;border-radius:50%;width:6px;height:6px;margin:0 auto 5px}.rdot.busy{background:var(--gold)}.rstatus{color:var(--sand3);text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:500}.rstatus.free{color:#7aaf7a}.rstatus.busy{color:var(--gold)}.bc{background:var(--surface);border:1px solid var(--gold-border);cursor:pointer;transition:border-color .2s, transform .2s var(--ease);border-radius:13px;align-items:center;gap:16px;margin-bottom:9px;padding:1.05rem 1.3rem;display:flex}.bc:hover{border-color:var(--gold2);transform:translate(2px)}.bc.conf{border-left:3px solid var(--gold)}.bc.pend{border-left:3px solid var(--gold3)}.bt{font-family:var(--ff-display);color:var(--gold);min-width:46px;font-size:18px;font-weight:500}.bi{flex:1}.bn{color:var(--sand);letter-spacing:.01em;font-size:13px;font-weight:500}.bd{color:var(--sand3);letter-spacing:.04em;margin-top:3px;font-size:10px;font-weight:400}.bb{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:20px;padding:4px 11px;font-size:9px;font-weight:600}.bconf{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border)}.bpend{color:var(--sand3);border:1px solid var(--gold-border);background:0 0}.warn-row{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:13px;justify-content:space-between;align-items:center;margin-bottom:7px;padding:13px 16px;display:flex}.warn-name{color:var(--ink);font-size:13px;font-family:var(--ff-display);font-size:16px}.warn-meta{color:var(--sand3);margin-top:3px;font-size:10px}.warn-date{color:var(--warn-text);letter-spacing:.03em;font-size:11px;font-weight:600}.cc{background:var(--surface);border:1px solid var(--gold-border);border-radius:13px;align-items:center;gap:14px;margin-bottom:9px;padding:1.05rem 1.3rem;display:flex}.cav{background:radial-gradient(circle at 32% 28%, var(--surface3), var(--bg2));border:1px solid var(--gold-border);width:40px;height:40px;font-family:var(--ff-display);color:var(--gold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:500;display:flex}.ci{flex:1}.cn{color:var(--sand);letter-spacing:.01em;font-size:13px;font-weight:500}.cm{color:var(--sand3);margin-top:3px;font-size:10px;font-weight:400}.cp{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:600}.pr{background:var(--surface);border:1px solid var(--gold-border);border-radius:13px;align-items:center;gap:14px;margin-bottom:9px;padding:1.05rem 1.3rem;display:flex}.pi{background:var(--surface3);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.pd{background:var(--gold);border-radius:50%;width:7px;height:7px}.pn{color:var(--sand);font-size:12px;font-weight:500}.pdt{color:var(--sand3);font-size:10px;font-weight:400}.pa{font-family:var(--ff-display);color:var(--gold);font-size:21px;font-weight:500}.rr{align-items:center;gap:12px;margin-bottom:9px;display:flex}.rl{color:var(--sand3);min-width:72px;font-size:10px;font-weight:400}.rt{background:var(--surface3);border-radius:4px;flex:1;height:4px;overflow:hidden}.rfill{background:linear-gradient(90deg, var(--gold2), var(--gold));border-radius:4px;height:100%}.rv{font-family:var(--ff-display);color:var(--gold);text-align:right;min-width:50px;font-size:17px;font-weight:500}.div{background:var(--gold-border);height:1px;margin:1.6rem 0}.pack-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.pk{background:var(--surface);border:1px solid var(--gold-border);border-radius:14px;padding:1.35rem}.pk-type{color:var(--gold2);text-transform:uppercase;letter-spacing:.14em;margin-bottom:9px;font-size:9px;font-weight:600}.pk-name{font-family:var(--ff-display);color:var(--sand);margin-bottom:6px;font-size:22px;font-style:italic;font-weight:500}.pk-price{font-family:var(--ff-display);color:var(--gold);font-size:30px;font-weight:400}.pk-sess{color:var(--sand3);margin-top:5px;font-size:10px;font-weight:400}.qa{grid-template-columns:1fr 1fr;gap:9px;display:grid}.qb{background:var(--surface);border:1px solid var(--gold-border);color:var(--gold);cursor:pointer;text-align:left;letter-spacing:.05em;font-size:11px;font-weight:500;font-family:var(--ff-ui);border-radius:13px;padding:1.1rem 1.3rem;transition:all .2s}.qb:hover{background:var(--surface2);border-color:var(--gold2);transform:translateY(-2px)}.qi{margin-bottom:6px;font-size:16px;display:block}.fab{justify-content:flex-end;margin-top:2rem;display:flex}.fb{background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;cursor:pointer;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:600;font-family:var(--ff-ui);transition:filter .25s, transform .25s var(--ease);border:none;border-radius:24px;padding:.8rem 1.6rem}.fb:hover{filter:brightness(1.07);transform:translateY(-1px)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080402b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--gold-border);width:100%;max-width:460px;box-shadow:var(--shadow);border-radius:18px;padding:1.85rem}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.6rem;display:flex}.modal-title{font-family:var(--ff-display);color:var(--sand);font-size:22px;font-style:italic;font-weight:500}.modal-close{cursor:pointer;color:var(--sand3);background:0 0;border:none;font-size:18px}.modal-footer{justify-content:flex-end;gap:8px;margin-top:1.6rem;display:flex}.form-group{margin-bottom:1.1rem}.form-group label{color:var(--gold2);letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px;font-size:9px;font-weight:600;display:block}.form-group input,.form-group textarea,.form-group select{border:1px solid var(--gold-border);width:100%;font-size:13px;font-family:var(--ff-ui);background:var(--bg2);color:var(--sand);border-radius:9px;outline:none;padding:.7rem .95rem;transition:border-color .25s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--gold)}.form-group textarea{resize:vertical}.btn-primary{background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;cursor:pointer;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:600;font-family:var(--ff-ui);border:none;border-radius:20px;padding:.65rem 1.35rem;transition:filter .25s}.btn-primary:hover{filter:brightness(1.07)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border:1px solid var(--gold-border);color:var(--sand3);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-family:var(--ff-ui);background:0 0;border-radius:20px;padding:.65rem 1.35rem}.btn-secondary:hover{background:var(--surface2)}.form-error{color:#d4908a;background:#8c4a4a26;border:1px solid #8c4a4a4d;border-radius:9px;margin-bottom:1rem;padding:.65rem .95rem;font-size:11px}.pren-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.pren-head .st{margin:0}.pren-tools{align-items:center;gap:10px;display:flex}.seg{border:1px solid var(--gold-border);border-radius:22px;gap:2px;padding:3px;display:flex}.seg button{appearance:none;cursor:pointer;font-family:var(--ff-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--sand3);white-space:nowrap;background:0 0;border:none;border-radius:18px;padding:6px 16px;font-size:10px;font-weight:600;transition:background .3s,color .3s}.seg button.on{background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812}.pren-add{appearance:none;cursor:pointer;background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;font-family:var(--ff-ui);letter-spacing:.12em;text-transform:uppercase;transition:filter .3s, transform .3s var(--ease);border:none;border-radius:22px;align-items:center;gap:8px;padding:9px 18px;font-size:11px;font-weight:600;display:inline-flex}.pren-add:hover{filter:brightness(1.07);transform:translateY(-1px)}.weeknav{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.weeknav .arw{appearance:none;cursor:pointer;border:1px solid var(--gold-border);width:38px;height:38px;color:var(--ink-soft,var(--sand2));background:0 0;border-radius:50%;flex:none;place-items:center;transition:border-color .3s,color .3s;display:grid}.weeknav .arw:hover{border-color:var(--gold2);color:var(--gold)}.weeknav .arw svg{stroke:currentColor;width:16px;height:16px}.weeknav .label{font-family:var(--ff-display);color:var(--sand);letter-spacing:.02em;font-size:19px;font-style:italic}.calwrap{border:1px solid var(--gold-border);background:var(--surface);border-radius:18px;padding:6px 10px 10px;overflow-x:auto}.calgrid{grid-template-columns:52px repeat(7,1fr);min-width:640px;display:grid}.cal-dayhead{text-align:center;border-bottom:1px solid var(--gold-border);padding:12px 4px 10px}.cal-dow{color:var(--gold2);letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:600}.cal-dnum{font-family:var(--ff-display);color:var(--sand);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin:4px auto 0;font-size:19px;display:flex}.cal-dnum.today{color:#2a1812;background:linear-gradient(140deg, var(--gold), var(--gold2));font-weight:600}.cal-hour{color:var(--sand4);text-align:right;border-top:1px solid var(--line-soft);letter-spacing:.04em;padding:9px 8px 0 0;font-size:10px}.cal-hour.first{border-top:none}.cal-cell{border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft);min-height:46px;padding:3px}.cal-cell.first{border-top:none}.cal-cell.today{background:var(--gold-dim)}.cal-pill{cursor:pointer;background:var(--surface2);border-left:3px solid var(--gold);transition:transform .15s var(--ease), border-color .2s;border-radius:8px;margin-bottom:3px;padding:4px 7px}.cal-pill:hover{transform:translate(1px)}.cal-pill.individuale{border-left-color:var(--gold)}.cal-pill.duo_trio{border-left-color:#c98a4a}.cal-pill.small_group{border-left-color:#b06a54}.cal-pill .pn{color:var(--sand);font-size:11px;font-weight:500;line-height:1.2}.cal-pill .pr2{color:var(--sand3);margin-top:1px;font-size:9px}.cal-legend{border-top:1px solid var(--gold-border);flex-wrap:wrap;gap:18px;margin-top:16px;padding-top:14px;display:flex}.leg-item{align-items:center;gap:7px;display:flex}.leg-dot{border-radius:3px;width:10px;height:10px}.leg-dot.individuale{background:var(--gold)}.leg-dot.duo_trio{background:#c98a4a}.leg-dot.small_group{background:#b06a54}.leg-item span{color:var(--sand3);letter-spacing:.04em;font-size:10px}.bc-cancel{appearance:none;cursor:pointer;border:1px solid var(--gold-border);color:var(--sand3);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-family:var(--ff-ui);background:0 0;border-radius:20px;margin-right:8px;padding:4px 12px;transition:border-color .3s,color .3s}.bc-cancel:hover{color:#d4908a;border-color:#b06a54}.bc-warn{color:var(--warn-text);letter-spacing:.06em;text-transform:uppercase;font-size:9px;position:absolute;top:8px;right:92px}.bd-row{color:var(--ink-soft,var(--sand2));align-items:center;gap:10px;margin-bottom:9px;font-size:13px;display:flex}.bd-row svg{width:15px;height:15px;stroke:var(--gold2);flex:none}.bd-date{color:var(--sand3);letter-spacing:.05em;text-transform:capitalize;margin-bottom:16px;font-size:12px}.bd-cancel{appearance:none;cursor:pointer;border:1px solid var(--gold-border);color:#d4908a;letter-spacing:.12em;text-transform:uppercase;width:100%;font-size:10px;font-family:var(--ff-ui);background:0 0;border-radius:12px;margin-top:8px;padding:11px;transition:border-color .3s,background .3s}.bd-cancel:hover{background:#b06a541a;border-color:#b06a54}.toast{border:1px solid var(--gold-border);border-radius:12px;margin-bottom:1rem;padding:.8rem 1.1rem;font-size:12px}.toast.ok{color:#9cc49c;background:#78aa781f;border-color:#78aa784d}.toast.no{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-text)}.cli-search{margin-bottom:22px;position:relative}.cli-search input{box-sizing:border-box;border:1px solid var(--gold-border);width:100%;font-size:14px;font-family:var(--ff-ui);color:var(--sand);background:var(--bg2);border-radius:14px;outline:none;padding:.85rem 2.6rem .85rem 2.8rem;transition:border-color .25s}.cli-search input::placeholder{color:var(--sand4)}.cli-search input:focus{border-color:var(--gold)}.cli-search .ic{width:16px;height:16px;stroke:var(--gold2);fill:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.cli-search .clr{color:var(--sand3);cursor:pointer;background:0 0;border:none;font-size:14px;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.cli-pkg{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:9px;font-weight:600}.cli-nopkg{color:var(--sand4);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:9px}.cli-pkgbtn{appearance:none;cursor:pointer;border:1px solid var(--gold-border);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-family:var(--ff-ui);background:0 0;border-radius:20px;padding:5px 12px;font-weight:600;transition:background .3s,color .3s,border-color .3s}.cli-pkgbtn:hover{background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;border-color:#0000}.cc.inactive{opacity:.62}.cc.clickable{cursor:pointer;transition:border-color .25s, transform .25s var(--ease)}.cc.clickable:hover{border-color:var(--gold2);transform:translate(2px)}.cc .cc-right{align-items:center;gap:12px;display:flex}.hist-pkg,.hist-book{border:1px solid var(--gold-border);background:var(--surface2);border-radius:11px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:11px 14px;display:flex}.hist-pkg.spent{opacity:.55}.hist-pkg .hp-name,.hist-book .hb-when{font-family:var(--ff-display);color:var(--sand);font-size:15px}.hist-pkg .hp-exp,.hist-book .hb-meta{color:var(--sand3);margin-top:2px;font-size:10px}.hist-pkg .hp-sess{font-family:var(--ff-display);text-align:right;font-size:17px}.hist-pkg .hp-sess.ok{color:var(--gold)}.hist-pkg .hp-sess.no{color:var(--sand4)}.hist-pkg .hp-state{color:var(--gold2);text-transform:uppercase;letter-spacing:.08em;text-align:right;font-size:9px}.hb-badge{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--gold-border);border-radius:20px;padding:3px 9px;font-size:9px}.hb-badge.confirmed{color:#9cc49c;border-color:#78aa784d}.hb-badge.cancelled{color:var(--warn-text);border-color:var(--warn-border)}.pk{transition:border-color .25s, transform .25s var(--ease);position:relative}.pk.editable{cursor:pointer}.pk.editable:hover{border-color:var(--gold2);transform:translateY(-2px)}.pk .pk-edit{opacity:0;border-radius:50%;place-items:center;width:26px;height:26px;transition:opacity .25s;display:grid;position:absolute;top:14px;right:14px}.pk.editable:hover .pk-edit{opacity:1}.pk .pk-edit svg{width:13px;height:13px;stroke:var(--gold);fill:none}.pk-validity{color:var(--sand4);letter-spacing:.03em;margin-top:3px;font-size:10px}.pk-add{border:1px dashed var(--gold-border);cursor:pointer;min-height:124px;color:var(--gold2);font-family:var(--ff-ui);letter-spacing:.12em;text-transform:uppercase;background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:11px;font-weight:600;transition:border-color .3s,color .3s;display:flex}.pk-add:hover{border-color:var(--gold);color:var(--gold)}.pk-add svg{stroke:currentColor;fill:none;width:22px;height:22px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-danger{appearance:none;cursor:pointer;border:1px solid var(--gold-border);color:#d4908a;letter-spacing:.12em;text-transform:uppercase;width:100%;font-size:10px;font-family:var(--ff-ui);background:0 0;border-radius:12px;margin-top:10px;padding:10px;transition:border-color .3s,background .3s}.modal-danger:hover{background:#b06a541a;border-color:#b06a54}.field-hint{color:var(--sand4);letter-spacing:.02em;margin-top:5px;font-size:10px}.kv.green{color:#8bbf8b;-webkit-text-fill-color:#8bbf8b}.kv.amber{color:var(--warn-text);-webkit-text-fill-color:var(--warn-text)}.month-head{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin:26px 0 12px;font-size:11px;font-weight:600;display:flex}.month-head .inc{color:#8bbf8b}.pay-row{background:var(--surface);border:1px solid var(--gold-border);border-radius:14px;align-items:center;gap:14px;margin-bottom:7px;padding:15px 18px;transition:border-color .25s;display:flex}.pay-row:hover{border-color:var(--gold2)}.pay-row.unpaid{opacity:.96}.pay-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pay-dot.ok{background:#8bbf8b;box-shadow:0 0 0 3px #8bbf8b26}.pay-dot.no{background:var(--warn-text);box-shadow:0 0 0 3px #c98a4a21}.pay-info{flex:1;min-width:0}.pay-name{font-family:var(--ff-display);color:var(--sand);font-size:17px}.pay-meta{color:var(--sand3);margin-top:2px;font-size:11px}.pay-date{color:var(--sand4);margin-top:2px;font-size:10px}.pay-right{text-align:right;flex-shrink:0}.pay-amt{font-family:var(--ff-display);font-size:19px}.pay-amt.ok{color:#8bbf8b}.pay-amt.no{color:var(--warn-text)}.pay-state{color:#8bbf8b;letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-size:9px}.pay-mark{appearance:none;cursor:pointer;border:1px solid var(--gold-border);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:9px;font-family:var(--ff-ui);background:0 0;border-radius:20px;margin-top:5px;padding:4px 11px;font-weight:600;transition:background .3s,color .3s}.pay-mark:hover{background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;border-color:#0000}.exp-row{background:var(--surface);border:1px solid var(--gold-border);border-radius:14px;align-items:center;gap:14px;margin-bottom:8px;padding:16px 18px;display:flex}.exp-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.exp-info{flex:1;min-width:0}.exp-name{font-family:var(--ff-display);color:var(--sand);font-size:17px}.exp-meta{color:var(--sand3);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:11px;display:flex}.exp-tag{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--gold-border);color:var(--gold);border-radius:20px;padding:3px 9px;font-size:9px;font-weight:600}.exp-note{color:var(--sand4);font-style:italic}.exp-right{text-align:right;flex-shrink:0;align-items:center;gap:12px;display:flex}.exp-amt{font-family:var(--ff-display);color:var(--sand);font-size:18px}.exp-sub{color:var(--sand4);margin-top:2px;font-size:10px}.exp-icon{border:1px solid var(--gold-border);cursor:pointer;width:32px;height:32px;color:var(--sand3);background:0 0;border-radius:9px;place-items:center;transition:border-color .3s,color .3s;display:grid}.exp-icon:hover{border-color:var(--gold2);color:var(--gold)}.exp-icon svg{stroke:currentColor;fill:none;width:14px;height:14px}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{appearance:none;cursor:pointer;border:1px solid var(--gold-border);color:var(--sand3);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-family:var(--ff-ui);background:0 0;border-radius:20px;padding:6px 14px;font-weight:600;transition:background .3s,color .3s,border-color .3s}.chip:hover{border-color:var(--gold2);color:var(--ink2)}.chip.on{background:linear-gradient(135deg, var(--gold), var(--gold2));color:#2a1812;border-color:#0000}.spese-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 4px;display:flex}.exp-dot.cat-attrezzature{background:#7fa8c4}.exp-dot.cat-affitto{background:#9a8fc4}.exp-dot.cat-lavori{background:#c4a24a}.exp-dot.cat-consulenze{background:#6aa88a}.exp-dot.cat-altro{background:#b09a8a}.exp-tag.cat-attrezzature{color:#9cc0d8}.exp-tag.cat-affitto{color:#b3a8e0}.exp-tag.cat-lavori{color:#d8b860}.exp-tag.cat-consulenze{color:#84c2a4}.exp-tag.cat-altro{color:#c8b2a2}.login-wrap{background:radial-gradient(circle at 50% 30%,#2c1b12 0%,#1a0f0a 60%,#130b07 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative;overflow:hidden}html[data-theme=day] .login-wrap{background:radial-gradient(circle at 50% 30%,#f3e8d8 0%,#e7d6c2 70%,#ddcab2 100%)}.login-star{animation:splashStar var(--dur,3s) ease-in-out infinite;background:#f0e0cbb3;border-radius:50%;position:absolute}html[data-theme=day] .login-star{background:#7a3f362e}.login-card{z-index:1;background:var(--card-grad,linear-gradient(150deg, var(--surface2), var(--surface)));border:1px solid var(--gold-border);width:100%;max-width:410px;box-shadow:var(--shadow);border-radius:22px;padding:2.6rem 2.4rem;position:relative}.login-head{text-align:center;margin-bottom:1.6rem}.login-moon{width:58px;height:58px;margin:0 auto 14px;display:block}.login-title{font-family:var(--ff-display);color:var(--sand);letter-spacing:.04em;font-size:27px;font-weight:500}.login-title em{color:var(--gold);letter-spacing:.05em;font-style:normal;font-weight:600}.powered{border-top:1px solid var(--gold-border);justify-content:center;align-items:center;gap:10px;margin-top:22px;padding-top:18px;display:flex}.powered .pb-lab{letter-spacing:.28em;text-transform:uppercase;color:var(--sand4);white-space:nowrap;font-size:9px;font-weight:500}.powered .pb-moon{flex:none;width:15px;height:15px}.powered .pb-name{color:var(--gold);letter-spacing:.01em;font-size:14px;font-weight:700;font-family:var(--ff-ui)}.login-sub{color:var(--gold2);letter-spacing:.22em;text-transform:uppercase;margin-top:6px;font-size:9px;font-weight:500}.login-manifesto{border-top:1px solid var(--gold-border);border-bottom:1px solid var(--gold-border);text-align:center;margin-bottom:1.6rem;padding:1.3rem 0}.login-quote{font-family:var(--ff-display);color:var(--ink2);margin:0 0 10px;font-size:17px;font-style:italic;line-height:1.55}.login-claim{color:var(--sand3);letter-spacing:.04em;margin:0;font-size:10px;line-height:1.6}.login-wrap .form-group input{background:var(--bg2)}html[data-theme=day] .login-wrap .form-group input{background:#fff}@media (prefers-reduced-motion:reduce){*,:after{animation:none!important}}.cal-cell.slot-open{background:var(--gold-dim);cursor:pointer}.cal-slot{border:1px solid var(--gold-border);cursor:pointer;background:linear-gradient(135deg,#d6a07f38,#b07a5a24);border-radius:8px;margin-bottom:3px;padding:4px 7px}.cal-slot .ss{color:var(--gold);font-size:11px;font-weight:500}.cal-cell.clickempty{cursor:pointer;transition:background .2s}.cal-cell.clickempty:hover{background:var(--gold-dim)}@media (prefers-reduced-motion:reduce){*,:after{animation:none!important}}
