:root{--bg: #f5f5f7;--bg-card: #ffffff;--bg-glass: rgba(255, 255, 255, .78);--ink: #1a1a1a;--ink-soft: rgba(26, 26, 26, .65);--ink-muted: rgba(26, 26, 26, .42);--line: rgba(0, 0, 0, .06);--line-strong: rgba(0, 0, 0, .14);--accent: #6e5ac8;--accent-soft: rgba(110, 90, 200, .1);--accent-glow: rgba(110, 90, 200, .24);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 0 0 .5px rgba(0, 0, 0, .03);--shadow-md: 0 2px 6px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .06), 0 24px 56px rgba(0, 0, 0, .14);--r-sm: 12px;--r-md: 18px;--r-lg: 22px;--r-xl: 28px;--r-pill: 999px;--ease: cubic-bezier(.16, 1, .3, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-spring: cubic-bezier(.5, 1.6, .4, 1)}[data-theme=dark]{--bg: #000000;--bg-card: #1c1c1e;--bg-glass: rgba(28, 28, 30, .72);--ink: #f5f5f7;--ink-soft: rgba(245, 245, 247, .7);--ink-muted: rgba(245, 245, 247, .5);--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .18);--accent: #8a73f0;--accent-soft: rgba(138, 115, 240, .16);--accent-glow: rgba(138, 115, 240, .36);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 0 0 .5px rgba(255, 255, 255, .04);--shadow-md: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .5), 0 24px 56px rgba(0, 0, 0, .7)}[data-theme=dark] .opt:hover,[data-theme=dark] .sopt:hover,[data-theme=dark] .popt:hover,[data-theme=dark] .cal-cell:hover:not(.dis):not(.sel){background:#ffffff0a}[data-theme=dark] .cal-cell.dis{background:#ffffff08;color:var(--ink-muted)}[data-theme=dark] .cal-cell.blocked{background:repeating-linear-gradient(45deg,rgba(255,120,120,.06),rgba(255,120,120,.06) 2px,transparent 2px,transparent 6px);color:#fff6}[data-theme=dark] .badge-full,[data-theme=dark] .col-h-req{color:#ff8a8a;background:#ff787824}[data-theme=dark] .avatar{background:#ffffff0f}[data-theme=dark] .btn-nav.primary{background:#f5f5f7;border-color:#f5f5f7;color:#000}[data-theme=dark] .modal-btn{background:#f5f5f7;color:#000}[data-theme=dark] .modal{background:#000000b3}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,PingFang TC,Helvetica Neue,sans-serif;overflow:hidden;background:var(--bg);color:var(--ink)}html{scroll-padding-top:80px;scroll-behavior:auto!important}.app{position:relative;z-index:1;height:100vh;height:100dvh;max-width:430px;margin:0 auto;padding-bottom:88px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:var(--bg)}.brand{background:var(--bg-glass);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);transition:box-shadow .3s var(--ease)}.brand-logo{max-height:36px;max-width:90px;width:auto;display:block;object-fit:contain;justify-self:start;transition:transform .4s var(--ease)}.brand-name{justify-self:center;text-align:center;font-size:14px;letter-spacing:.16em;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-feature-settings:"palt"}.theme-toggle{justify-self:end;width:34px;height:34px;border-radius:50%;background:var(--bg-card);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:var(--ink-soft);transition:transform .35s var(--ease-spring),background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle:active{transform:scale(.9)}.theme-toggle svg{width:17px;height:17px;display:block}.brand-text{font-size:13px;letter-spacing:.22em;color:var(--ink);font-weight:500}.pages{position:relative}.page{display:none;padding:0 16px 20px}.page.active{display:block;animation:pageIn .6s var(--ease) forwards}@keyframes pageIn{0%{opacity:0;transform:translateY(20px) scale(.98);filter:blur(6px)}60%{filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.stitle{text-align:center;margin:24px 0 14px;animation:fadeUp .7s var(--ease) .1s both}.stitle-zh{font-size:19px;letter-spacing:.3em;color:var(--ink);font-weight:300;font-feature-settings:"palt"}.stitle-en{font-size:10.5px;letter-spacing:.2em;color:var(--ink-muted);margin-top:4px;font-style:italic;font-family:Georgia,Times New Roman,serif}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.col-header{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}.col-h{text-align:left}.col-h-zh{font-size:14.5px;letter-spacing:.18em;color:var(--ink);font-weight:400}.col-h-en{font-size:10px;color:var(--ink-muted);letter-spacing:.08em;margin-top:2px;font-style:italic;font-family:Georgia,serif}.col-h-req{font-size:9px;color:#a13a3a;background:#c1575714;padding:2px 6px;border-radius:4px;margin-left:4px;vertical-align:middle;letter-spacing:.05em}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .35s var(--ease),transform .35s var(--ease)}.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.col-right{grid-column:2}.opt{display:flex;align-items:center;padding:15px 16px;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-card);transition:background .25s var(--ease),transform .2s var(--ease-spring)}.opt:not(:last-child){border-bottom:1px solid var(--line)}.opt:hover{background:#00000005}.opt:active{transform:scale(.985)}.opt input{display:none}.rc{width:20px;height:20px;border-radius:50%;border:2px solid var(--line-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease-bounce);background:var(--bg-card)}.opt.sel{background:var(--accent-soft)}.opt.sel .rc{border-color:var(--accent);background:var(--accent);transform:scale(1.05)}.rd{width:8px;height:8px;border-radius:50%;background:#fff;opacity:0;transform:scale(0);transition:all .35s var(--ease-bounce)}.opt.sel .rd{opacity:1;transform:scale(1)}.opt-t{flex:1;font-size:14.5px;color:var(--ink-soft);letter-spacing:.04em;transition:color .25s,font-weight .25s}.opt-p{font-size:13px;color:var(--ink-muted);flex-shrink:0;font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-style:italic}.opt.sel .opt-t{color:var(--ink);font-weight:600}.opt.sel .opt-p{color:var(--accent);font-weight:600}.sopt{display:flex;align-items:center;padding:12px;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-card);transition:background .25s var(--ease),transform .2s var(--ease-spring)}.sopt:not(:last-child){border-bottom:1px solid var(--line)}.sopt:hover{background:#00000005}.sopt:active{transform:scale(.985)}.sopt input{display:none}.src{width:17px;height:17px;border-radius:50%;border:1.5px solid var(--line-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease-bounce);background:var(--bg-card)}.sopt.sel{background:var(--accent-soft)}.sopt.sel .src{border-color:var(--accent);background:var(--accent);transform:scale(1.05)}.srd{width:7px;height:7px;border-radius:50%;background:#fff;opacity:0;transform:scale(0);transition:all .3s var(--ease-bounce)}.sopt.sel .srd{opacity:1;transform:scale(1)}.sopt-t{flex:1;font-size:12px;color:var(--ink-soft);line-height:1.4}.sopt.sel .sopt-t{color:var(--ink);font-weight:600}.sopt.dis{opacity:.3;pointer-events:none}.date-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:4px}.dlbl{display:block;font-size:10px;color:var(--ink-muted);text-align:center;margin-bottom:6px;letter-spacing:.18em;font-family:Georgia,serif;font-style:italic}.dinput{width:100%;background:var(--bg-card);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);padding:14px 8px;font-size:16px;color:var(--ink);font-family:inherit;text-align:center;outline:none;transition:all .25s var(--ease);-webkit-appearance:none;font-weight:500}.dinput:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.dinput::placeholder{color:var(--ink-muted)}.dinput-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%236e5ac8' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:24px;cursor:pointer}.tinput{width:100%;background:var(--bg-card);border:1.5px solid var(--line);border-radius:var(--r-md);padding:15px 16px;font-size:16px;color:var(--ink);font-family:inherit;outline:none;transition:all .25s var(--ease);-webkit-appearance:none;caret-color:var(--accent)}.tinput:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.tinput::placeholder{color:var(--ink-muted)}.tinput:-webkit-autofill,.dinput:-webkit-autofill{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 30px var(--bg-card) inset;caret-color:var(--ink)}.pcard{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm)}.popt{display:flex;align-items:center;padding:14px;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .25s var(--ease),transform .2s var(--ease)}.popt:not(:last-child){border-bottom:1px solid var(--line)}.popt:hover{background:#00000005}.popt:active{transform:scale(.99)}.popt input{display:none}.popt.dis{opacity:.35;pointer-events:none}.avatar{width:60px;height:60px;border-radius:50%;background:#0000000a;border:1.5px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ink-soft);font-weight:500;overflow:hidden;transition:all .35s var(--ease-bounce)}.popt.sel{background:var(--accent-soft)}.popt.sel .avatar{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);transform:scale(1.06)}.popt.sel .src{border-color:var(--accent);background:var(--accent)}.popt.sel .srd{opacity:1;transform:scale(1)}.pinfo{flex:1;min-width:0}.pname{font-size:16px;color:var(--ink);font-weight:600;letter-spacing:.02em}.prole{font-size:12.5px;color:var(--ink-muted);margin-top:3px;letter-spacing:.04em;font-style:italic;font-family:Georgia,serif}.popt.sel .pname{color:var(--ink);font-weight:700}.flbl{font-size:11px;color:var(--ink-muted);letter-spacing:.18em;margin-bottom:8px;font-family:Georgia,serif;font-style:italic}.req-dot{width:5px;height:5px;border-radius:50%;background:#a13a3a;display:inline-block;margin-right:5px;vertical-align:middle}.fg{margin-bottom:14px;animation:fadeUp .6s var(--ease) both}.fg:nth-child(1){animation-delay:.05s}.fg:nth-child(2){animation-delay:.1s}.fg:nth-child(3){animation-delay:.15s}.fg:nth-child(4){animation-delay:.2s}.fg:nth-child(5){animation-delay:.25s}.fg:nth-child(6){animation-delay:.3s}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}.chip{padding:7px 14px;border-radius:24px;font-size:12px;cursor:pointer;border:1px solid var(--line-strong);background:var(--bg-card);color:var(--ink-soft);transition:all .25s var(--ease);font-family:inherit;-webkit-user-select:none;user-select:none;letter-spacing:.05em}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.sel{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600;box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.chip:active{transform:scale(.95)}.sitem{display:flex;align-items:flex-start;padding:11px 16px;gap:10px;transition:background .25s var(--ease)}.sitem:hover{background:#00000004}.sitem:not(:last-child){border-bottom:1px solid var(--line)}.snum{font-size:11px;color:var(--ink-muted);min-width:18px;padding-top:2px;flex-shrink:0;font-family:Georgia,serif;font-style:italic}.slbl{font-size:13px;color:var(--ink-soft);flex:1}.sval{font-size:13px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:500}.total-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,var(--accent-soft),rgba(110,90,200,.04));border-top:1px solid var(--line)}.total-lbl{font-size:13px;color:var(--ink-soft);letter-spacing:.1em}.total-amt{font-size:22px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;font-family:Georgia,serif}.contract{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);max-height:440px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent;box-shadow:var(--shadow-sm)}.ct-title{font-size:15px;font-weight:600;text-align:center;letter-spacing:.25em;padding:18px 16px 6px;color:var(--ink);font-family:Georgia,serif}.ct-sub{font-size:11px;text-align:center;color:var(--ink-muted);padding-bottom:12px;border-bottom:1px solid var(--line);font-style:italic;font-family:Georgia,serif}.ct-sec{font-size:11.5px;color:var(--ink-soft);line-height:1.85;padding:12px 16px;border-bottom:1px solid var(--line)}.ct-sec b{color:var(--ink);font-weight:600}.ct-sec.party{background:var(--accent-soft)}.ct-fill{color:var(--accent);font-weight:600}.ct-sig{padding:14px 16px;display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);letter-spacing:.08em;flex-wrap:wrap;border-top:1px solid var(--line)}.sig-clear{font-size:11px;color:var(--ink-soft);background:var(--bg-card);border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:6px 14px;cursor:pointer;letter-spacing:.05em;transition:all .25s var(--ease)}.sig-clear:hover{border-color:var(--accent);color:var(--accent)}.sig-clear:active{transform:scale(.95)}.sig-input{background:none;border:none;border-bottom:1px solid var(--line-strong);color:var(--ink);font-size:13px;text-align:center;outline:none;padding:2px 4px;font-family:Georgia,serif;-moz-appearance:textfield;font-style:italic}.sig-input::-webkit-inner-spin-button,.sig-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sig-input.y{width:68px}.sig-input.md{width:36px}.note{font-size:11px;color:var(--ink-muted);text-align:center;padding:10px 12px;line-height:1.7;letter-spacing:.05em;font-style:italic}.bnav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;padding:14px 20px calc(16px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;z-index:200;background:var(--bg-glass);border-top:1px solid var(--line);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 -1px 0 var(--line)}.btn-nav{background:var(--bg-card);border:1.5px solid var(--line-strong);color:var(--ink);font-size:14px;letter-spacing:.12em;padding:13px 28px;border-radius:var(--r-pill);font-family:inherit;cursor:pointer;font-weight:500;transition:transform .25s var(--ease-spring),background .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}.btn-nav:hover{border-color:var(--ink);box-shadow:var(--shadow-md)}.btn-nav:active{transform:scale(.95)}.btn-nav.primary{background:var(--ink);border-color:var(--ink);color:var(--bg-card);font-weight:600}.btn-nav.primary:hover{box-shadow:0 8px 24px #0000002e}.btn-nav.primary:active{transform:scale(.95)}.btn-nav.hidden{display:none}.btn-nav:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.sp{height:14px}.hidden{display:none!important}.loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000;color:var(--ink-soft);font-size:14px;letter-spacing:.2em;background:var(--bg);font-family:Georgia,serif;font-style:italic}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:modalFadeIn .35s var(--ease)}.modal-box{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-xl);padding:36px 32px;text-align:center;max-width:320px;width:84%;box-shadow:var(--shadow-lg);animation:modalScaleIn .45s var(--ease-bounce)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-emoji{font-size:42px;margin-bottom:14px;animation:popIn .6s var(--ease-bounce) .15s both}@keyframes popIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.modal-title{font-size:19px;color:var(--ink);font-weight:600;letter-spacing:.15em;margin-bottom:10px;font-family:Georgia,serif}.modal-body{font-size:13.5px;color:var(--ink-soft);line-height:1.8;margin-bottom:24px;letter-spacing:.04em}.modal-btn{width:100%;padding:14px;border-radius:var(--r-pill);border:none;background:var(--ink);color:var(--bg-card);font-size:14px;cursor:pointer;font-family:inherit;letter-spacing:.12em;font-weight:600;transition:transform .25s var(--ease-spring),box-shadow .25s var(--ease)}.modal-btn:hover{box-shadow:var(--shadow-md)}.modal-btn:active{transform:scale(.96)}.spinner{width:48px;height:48px;margin:0 auto 16px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.carousel-wrap{margin-top:0;animation:fadeUp .8s var(--ease) .15s both}.carousel{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#1a1a1a;pointer-events:none}.carousel img,.carousel video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.carousel video{opacity:0;transition:opacity .45s var(--ease)}.carousel video.ready{opacity:1}.carousel-poster{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:#111}.carousel video.ready+.carousel-poster{opacity:0}.carousel iframe{width:100%;height:100%;border:0;display:block;pointer-events:none}.carousel>img:not(.carousel-poster){animation:kenBurns 12s ease-in-out infinite alternate}@keyframes kenBurns{0%{transform:scale(1) translate(0)}to{transform:scale(1.08) translate(-1.5%,-1.5%)}}.pdesc{font-size:12.5px;color:var(--ink-soft);margin-top:6px;line-height:1.65;letter-spacing:.02em}.popt.sel .pdesc{color:var(--ink-soft)}.pportfolio{display:inline-flex;align-items:center;gap:4px;margin-top:10px;padding:7px 14px;font-size:12px;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(110,90,200,.2);border-radius:var(--r-pill);text-decoration:none;letter-spacing:.08em;transition:all .25s var(--ease)}.pportfolio:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.pportfolio:active{transform:scale(.95)}.popt.sel .pportfolio{background:var(--accent);border-color:var(--accent);color:#fff}.steps{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 28px 18px;background:transparent;gap:0;position:relative}.step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;min-width:0;z-index:2}.step-dot{width:30px;height:30px;border-radius:50%;background:var(--bg-card);color:var(--ink-muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;z-index:2;border:1.5px solid var(--line-strong);transition:all .4s var(--ease-bounce);font-family:Georgia,serif}.step.active .step-dot{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.15);box-shadow:0 6px 20px var(--accent-glow);animation:stepPulse 2s ease-in-out infinite}.step.done .step-dot{background:var(--accent);color:#fff;border-color:var(--accent)}@keyframes stepPulse{0%,to{box-shadow:0 6px 20px var(--accent-glow)}50%{box-shadow:0 6px 28px #6e5ac866}}.step-label{font-size:10.5px;color:var(--ink-muted);margin-top:8px;letter-spacing:.2em;white-space:nowrap;transition:all .35s var(--ease);font-style:italic;font-family:Georgia,serif}.step.active .step-label{color:var(--ink);font-weight:600;font-style:normal;font-family:inherit}.step.done .step-label{color:var(--accent)}.step:not(:last-child):after{content:"";position:absolute;top:14.5px;left:calc(50% + 18px);right:calc(-50% + 18px);height:1.5px;background:var(--line-strong);z-index:1;transition:background .5s var(--ease)}.step.done:not(:last-child):after{background:var(--accent)}.cal{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;box-shadow:var(--shadow-sm);margin-bottom:6px}.cal-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 12px;border-bottom:1px solid var(--line);margin-bottom:10px}.cal-title{display:flex;flex-direction:column;align-items:center;gap:2px}.cal-year{font-size:11px;color:var(--ink-muted);letter-spacing:.2em;font-family:Georgia,serif;font-style:italic}.cal-month{font-size:18px;color:var(--ink);font-weight:600;letter-spacing:.05em}.cal-nav{width:34px;height:34px;border-radius:50%;border:1px solid var(--line-strong);background:var(--bg-card);color:var(--ink);cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .25s var(--ease);font-family:inherit}.cal-nav:hover{border-color:var(--accent);color:var(--accent)}.cal-nav:active{transform:scale(.92)}.cal-nav.dis{opacity:.25;cursor:not-allowed}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-w{text-align:center;font-size:10.5px;color:var(--ink-muted);letter-spacing:.1em;padding:6px 0;font-family:Georgia,serif;font-style:italic}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{position:relative;aspect-ratio:1;border:1px solid transparent;background:var(--bg-card);border-radius:var(--r-sm);font-size:14px;color:var(--ink);font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s var(--ease);padding:0}.cal-cell:hover:not(.dis):not(.sel){background:#00000008;border-color:var(--line)}.cal-cell:active:not(.dis){transform:scale(.92)}.cal-cell.empty{cursor:default;background:transparent}.cal-cell.today{font-weight:600;color:var(--accent)}.cal-cell.today:before{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.cal-cell.sel{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 14px var(--accent-glow);font-weight:600}.cal-cell.sel.today:before{background:#fff}.cal-cell.dis{color:var(--ink-muted);cursor:not-allowed;background:#00000006}.cal-cell.blocked{color:#0000004d;background:repeating-linear-gradient(45deg,rgba(193,87,87,.04),rgba(193,87,87,.04) 2px,transparent 2px,transparent 6px)}.cal-x{position:absolute;font-size:18px;color:#c1575799;font-weight:300;pointer-events:none}.opt.dis,.sopt.dis,.popt.dis{opacity:.42;cursor:not-allowed;pointer-events:none}.opt.dis:hover,.sopt.dis:hover,.popt.dis:hover{background:var(--bg-card)}.badge-full{display:inline-block;font-size:9px;color:#a13a3a;background:#c157571a;padding:2px 6px;border-radius:4px;margin-left:6px;letter-spacing:.05em;vertical-align:middle;font-weight:500}
