.pinpad{display:flex;flex-direction:column;align-items:center;gap:var(--sp-8);width:100%}.pinpad__dots{display:flex;gap:var(--sp-4)}.pinpad__dots--shake{animation:ty-shake var(--dur-slow) var(--ease)}.pinpad__dot{width:16px;height:16px;border-radius:var(--r-pill);border:2px solid var(--primary-strong);background:transparent;transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.pinpad__dot--filled{background:var(--primary-strong);transform:scale(1.05)}.pinpad__dot--error{border-color:var(--error);background:var(--error)}.pinpad__keys{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);width:100%;max-width:300px}.pinpad__key{aspect-ratio:1 / 1;min-width:44px;min-height:44px;border:none;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);font-family:var(--font-display);font-size:28px;cursor:pointer;transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.pinpad__key:hover:not(:disabled){background:var(--surface-alt)}.pinpad__key:active:not(:disabled){transform:scale(.94)}.pinpad__key--del{background:transparent;box-shadow:none;font-size:24px;color:var(--text-muted)}.pinpad__key:disabled{opacity:.5;cursor:not-allowed}.cf-turnstile{display:flex;justify-content:center;min-height:65px}.unlock{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-4);background:var(--bg)}.unlock__card{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);padding:var(--sp-8) var(--sp-6)}@media (min-width: 768px){.unlock__card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}}.unlock__heart{font-size:40px;color:var(--primary);line-height:1}.unlock__title{margin:0;font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--text);text-align:center}.unlock__loading{display:flex;align-items:center;gap:var(--sp-2);color:var(--text);font-size:13px}.unlock__spinner{color:var(--primary-strong);animation:ty-heart-pulse .9s var(--ease) infinite}.unlock__message{margin:0;min-height:20px;font-size:14px;color:var(--error);text-align:center;opacity:0;transition:opacity var(--dur-base) var(--ease)}.unlock__message--show{opacity:1}.profilecard{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-md);cursor:pointer;border:3px solid transparent;transition:transform var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease)}.profilecard:hover:not(:disabled){transform:translateY(-4px)}.profilecard:active:not(:disabled){transform:scale(.97)}.profilecard:disabled{opacity:.6;cursor:not-allowed}.profilecard__avatar{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-pill);font-size:34px}.profilecard__name{font-family:var(--font-display);font-size:20px;font-weight:600}.profilecard--top{border-color:var(--top)}.profilecard--top .profilecard__avatar{background:var(--top)}.profilecard--top .profilecard__name{color:var(--top-strong)}.profilecard--yok{border-color:var(--yok)}.profilecard--yok .profilecard__avatar{background:var(--yok)}.profilecard--yok .profilecard__name{color:var(--yok-strong)}.pick{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-4)}.pick__inner{width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-8)}.pick__title{margin:0;font-family:var(--font-display);font-size:24px;font-weight:600;text-align:center}.pick__cards{display:flex;gap:var(--sp-4);width:100%}@media (max-width: 340px){.pick__cards{flex-direction:column}}.pick__error{margin:0;color:var(--error);font-size:14px;text-align:center}.idchip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);font-size:13px;font-weight:600;white-space:nowrap}.idchip--top{border:1px solid var(--border);color:var(--top-strong)}.idchip--yok{border:1px solid var(--border);color:var(--yok-strong)}.idchip__dot{width:8px;height:8px;border-radius:var(--r-pill)}.idchip--top .idchip__dot{background:var(--top-strong)}.idchip--yok .idchip__dot{background:var(--yok-strong)}.apptcard{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:44px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;font-family:var(--font-body);transition:transform var(--dur-fast) var(--ease)}.apptcard:active{transform:scale(.98)}.apptcard--highlight{border-color:var(--primary-strong);box-shadow:0 0 0 2px var(--primary)}.apptcard__cat{flex:0 0 auto;width:10px;height:40px;border-radius:var(--r-pill)}.apptcard__body{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.apptcard__time{font-size:13px;font-weight:600;color:var(--primary-strong)}.apptcard__title{font-size:16px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apptcard__loc{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skeleton{width:100%;border-radius:var(--r-md);background:linear-gradient(100deg,var(--surface-alt) 30%,var(--bg) 50%,var(--surface-alt) 70%);background-size:200% 100%;animation:ty-shimmer 1.2s var(--ease) infinite}@keyframes ty-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.emptystate{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);text-align:center}.emptystate__emoji{font-size:40px}.emptystate__text{margin:0;color:var(--text);font-size:16px}.errorstate{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);background:var(--error-bg);border:1px solid var(--error);border-radius:var(--r-md);text-align:center}.errorstate__icon{font-size:24px}.errorstate__text{margin:0;color:var(--error);font-size:16px}.errorstate__retry{min-height:44px;padding:var(--sp-2) var(--sp-6);border:none;border-radius:var(--r-pill);background:var(--primary-strong);color:#fff;font-family:var(--font-body);font-size:16px;cursor:pointer}.home-today{display:flex;flex-direction:column;gap:var(--sp-4)}.home-today__heading{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text)}.home-today__group{display:flex;flex-direction:column;gap:var(--sp-2)}.home-today__group-title{margin:0;font-size:13px;font-weight:600;color:var(--primary-strong)}.home-today__list{display:flex;flex-direction:column;gap:var(--sp-2)}.calgrid{width:100%}.calgrid__head,.calgrid__body{display:grid;grid-template-columns:repeat(7,1fr)}.calgrid__dow{text-align:center;padding:var(--sp-2) 0;font-size:13px;font-weight:600;color:var(--text)}.calgrid__body{gap:2px}.calgrid__cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;aspect-ratio:1 / 1;padding:0;border:none;border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:16px;cursor:pointer;transition:transform var(--dur-fast) var(--ease)}.calgrid__cell:active{transform:scale(.95)}.calgrid__cell--muted .calgrid__num{color:var(--text-muted);opacity:.6}.calgrid__cell--today{outline:2px solid var(--primary-strong);outline-offset:-2px;font-weight:700}.calgrid__cell--selected{background:var(--surface-alt)}.calgrid__num{line-height:1}.calgrid__dot{width:6px;height:6px;border-radius:var(--r-pill)}.cal{display:flex;flex-direction:column;gap:var(--sp-4)}.cal__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.cal__nav{display:flex;align-items:center;gap:var(--sp-2)}.cal__navbtn{width:44px;height:44px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-size:20px;cursor:pointer}.cal__month{min-width:140px;text-align:center;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text)}.cal__toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-pill);overflow:hidden}.cal__toggle-btn{min-height:44px;padding:0 var(--sp-4);border:none;background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:14px;cursor:pointer}.cal__toggle-btn--on{background:var(--primary-strong);color:#fff}.cal__list{display:flex;flex-direction:column;gap:var(--sp-2)}.daysheet{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.daysheet__head{display:flex;align-items:center;justify-content:space-between}.daysheet__title{margin:0;font-size:16px;font-weight:700;color:var(--text)}.daysheet__close{min-width:44px;min-height:44px;border:none;background:transparent;color:var(--text);font-size:16px;cursor:pointer}.daysheet__empty{margin:0;color:var(--text);font-size:14px}.daysheet__list{display:flex;flex-direction:column;gap:var(--sp-2)}.daysheet__add{min-height:44px;border:1px dashed var(--primary-strong);border-radius:var(--r-pill);background:transparent;color:var(--primary-strong);font-family:var(--font-body);font-size:16px;cursor:pointer}@media (min-width: 768px){.cal__month{font-size:20px}}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.confetti__piece{position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:2px;opacity:0;animation:ty-confetti-burst .8s var(--ease) forwards}.confetti__piece:nth-child(1){animation-delay:0ms;--tx: -30px;--ty: -34px}.confetti__piece:nth-child(2){animation-delay:40ms;--tx: 30px;--ty: -30px}.confetti__piece:nth-child(3){animation-delay:80ms;--tx: -18px;--ty: -42px}.confetti__piece:nth-child(4){animation-delay:60ms;--tx: 18px;--ty: -42px}.confetti__piece:nth-child(5){animation-delay:20ms;--tx: 0px;--ty: -46px}@keyframes ty-confetti-burst{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.5)}}.couple-counter{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:center}.couple-counter--milestone{border:1px solid var(--primary-strong)}.couple-counter__milestone{margin:0;color:var(--primary-strong);font-size:14px;font-weight:600}.couple-counter__label{margin:0;font-size:16px;color:var(--text)}.couple-counter__days{margin:0;display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-display);font-size:32px;font-weight:700;color:var(--primary-strong)}.couple-counter__heart{display:inline-block;animation:ty-heart-pulse var(--dur-slow) var(--ease)}.couple-counter__edit{min-height:44px;padding:0 var(--sp-3);border:none;background:transparent;color:var(--secondary-strong);font-family:var(--font-body);font-size:13px;text-decoration:underline;cursor:pointer}.couple-counter--empty .couple-counter__empty-text{margin:0 0 var(--sp-3);color:var(--text);font-size:16px}@media (min-width: 1024px){.couple-counter__days{font-size:37px}}.countdowncard{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);width:100%;min-height:44px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;font-family:var(--font-body);transition:transform var(--dur-fast) var(--ease)}.countdowncard:active{transform:scale(.98)}.countdowncard--today{position:relative;border-color:var(--primary-strong);box-shadow:0 0 0 2px var(--primary)}.countdowncard__emoji{flex:0 0 auto;font-size:24px}.countdowncard__body{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;gap:2px}.countdowncard__title{font-size:16px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.countdowncard__date{font-size:13px;color:var(--text-muted)}.countdowncard__days{flex:0 0 auto;font-size:14px;font-weight:700;color:var(--primary-strong)}.confirm__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#4a3b4766}.confirm__box{width:100%;max-width:320px;background:var(--surface);border-radius:var(--r-lg);padding:var(--sp-6) var(--sp-4);box-shadow:var(--shadow-lg);text-align:center}.confirm__msg{margin:0 0 var(--sp-6);font-size:16px;color:var(--text)}.confirm__actions{display:flex;gap:var(--sp-3)}.confirm__actions .btn{flex:1 1 auto}.sdform__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#4a3b4752}.sdform__dialog{width:100%;max-height:92vh;overflow-y:auto;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-6) var(--sp-4) var(--sp-8);box-shadow:var(--shadow-lg)}@media (min-width: 768px){.sdform__backdrop{align-items:center}.sdform__dialog{max-width:480px;border-radius:var(--r-lg)}}.sdform__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.sdform__heading{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text)}.sdform__close{min-width:44px;min-height:44px;border:none;background:transparent;color:var(--text);font-size:18px;cursor:pointer;border-radius:var(--r-pill)}.sdform{display:flex;flex-direction:column;gap:var(--sp-4);margin:0}.sdform__field{display:flex;flex-direction:column;gap:var(--sp-1)}.sdform__label{font-size:13px;font-weight:600;color:var(--text)}.sdform__input{width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:16px}.sdform__input[aria-invalid=true]{border-color:var(--error)}.sdform__field-error,.sdform__error{color:var(--error);font-size:13px;margin:0}.sdform__toggle{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;font-size:16px;color:var(--text);cursor:pointer}.sdform__types{border:none;padding:0;margin:0}.sdform__types legend{font-size:13px;font-weight:600;color:var(--text);padding:0 0 var(--sp-2)}.sdform__type-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.sdform__type{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:14px;cursor:pointer}.sdform__type--on{border-color:var(--primary-strong);background:var(--surface-alt)}.sdform__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2);flex-wrap:wrap}.tsform__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#4a3b4752}.tsform__box{width:100%;max-width:360px;background:var(--surface);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow-lg)}.tsform__heading{margin:0 0 var(--sp-4);font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text);text-align:center}.tsform__form{display:flex;flex-direction:column;gap:var(--sp-2)}.tsform__label{font-size:13px;font-weight:600;color:var(--text)}.tsform__input{width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:16px}.tsform__error{color:var(--error);font-size:13px}.tsform__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.countdown{display:flex;flex-direction:column;gap:var(--sp-6)}.countdown__list-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.countdown__heading{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text)}.countdown__add{min-height:44px;padding:var(--sp-2) var(--sp-4);border:1px solid var(--primary-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--primary-strong);font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer}.countdown__list{display:flex;flex-direction:column;gap:var(--sp-2)}@media (min-width: 768px){.countdown__list{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}}.notebubble{display:flex;flex-direction:column;max-width:78%;margin-bottom:var(--sp-3)}.notebubble--own{align-self:flex-end;align-items:flex-end}.notebubble--other{align-self:flex-start;align-items:flex-start}.notebubble__row{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:2px}.notebubble__from{font-size:13px;font-weight:600}.notebubble__row--top .notebubble__from{color:var(--top-strong)}.notebubble__row--yok .notebubble__from{color:var(--yok-strong)}.notebubble__delete{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:none;background:none;color:var(--text-muted);font-size:15px;cursor:pointer;border-radius:var(--r-sm)}.notebubble__delete:hover,.notebubble__delete:focus-visible{color:var(--error)}.notebubble__bubble{margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:16px;color:var(--text);white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-sm)}.notebubble__bubble--top{background:var(--top);border-bottom-right-radius:var(--r-sm)}.notebubble__bubble--yok{background:var(--yok);border-bottom-left-radius:var(--r-sm)}.notebubble__time{font-size:13px;color:var(--text-muted);margin-top:2px}.notecomposer{position:sticky;bottom:0;background:var(--bg);padding-top:var(--sp-2);border-top:1px solid var(--border)}.notecomposer__row{display:flex;align-items:flex-end;gap:var(--sp-2)}.notecomposer__input{flex:1 1 auto;resize:none;min-height:44px;max-height:120px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-lg);font-family:var(--font-body);font-size:16px;color:var(--text);background:var(--surface)}.notecomposer__input:disabled{opacity:.6}.notecomposer__send{position:relative;flex:0 0 auto;width:44px;height:44px;border-radius:var(--r-pill);border:none;background:var(--primary-strong);color:#fff;font-size:18px;cursor:pointer}.notecomposer__send:disabled{opacity:.6;cursor:default}.notecomposer__pop{position:absolute;top:-4px;left:50%;transform:translate(-50%);color:var(--primary-strong);font-size:16px;pointer-events:none;animation:ty-note-heart-pop .7s var(--ease) forwards}@keyframes ty-note-heart-pop{0%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-28px) scale(1.3)}}.notecomposer__meta{display:flex;align-items:center;min-height:18px;margin-top:2px;font-size:13px}.notecomposer__error{color:var(--error)}.notecomposer__count{color:var(--text-muted);margin-left:auto}.notes-screen{display:flex;flex-direction:column;height:100%;min-height:0}.notes-screen__list{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;padding:var(--sp-2) var(--sp-1)}.notes-screen__send-error{color:var(--error);font-size:13px;margin:0 0 var(--sp-1)}.badge{position:relative}.badge__avatar{width:44px;height:44px;border-radius:var(--r-pill);border:2px solid var(--border);color:var(--text);font-family:var(--font-display);font-size:18px;cursor:pointer}.badge__avatar--top{background:var(--top);border-color:var(--top-strong)}.badge__avatar--yok{background:var(--yok);border-color:var(--yok-strong)}.badge__menu{position:absolute;top:52px;right:0;z-index:50;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);overflow:hidden}.badge__item{display:block;width:100%;min-height:44px;padding:var(--sp-3) var(--sp-4);border:none;background:transparent;color:var(--text);font-family:var(--font-body);font-size:16px;text-align:left;cursor:pointer}.badge__item:hover:not(:disabled){background:var(--surface-alt)}.apptform__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#4a3b4752}.apptform__dialog{width:100%;max-height:92vh;overflow-y:auto;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-6) var(--sp-4) var(--sp-8);box-shadow:var(--shadow-lg)}@media (min-width: 768px){.apptform__backdrop{align-items:center}.apptform__dialog{max-width:480px;border-radius:var(--r-lg)}}.apptform__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.apptform__heading{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text)}.apptform__close{min-width:44px;min-height:44px;border:none;background:transparent;color:var(--text);font-size:18px;cursor:pointer;border-radius:var(--r-pill)}.apptform,.apptform__view{display:flex;flex-direction:column;gap:var(--sp-4);margin:0}.apptform__field{display:flex;flex-direction:column;gap:var(--sp-1)}.apptform__label{font-size:13px;font-weight:600;color:var(--text)}.apptform__input{width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:16px}.apptform__input[aria-invalid=true]{border-color:var(--error)}.apptform__textarea{resize:vertical;min-height:72px}.apptform__toggle{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;font-size:16px;color:var(--text);cursor:pointer}.apptform__field-error,.apptform__error{color:var(--error);font-size:13px;margin:0}.apptform__cats{border:none;padding:0;margin:0}.apptform__cats legend{font-size:13px;font-weight:600;color:var(--text);padding:0 0 var(--sp-2)}.apptform__cat-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.apptform__cat{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:14px;cursor:pointer}.apptform__cat--on{border-color:var(--primary-strong);background:var(--surface-alt)}.apptform__cat-dot{width:12px;height:12px;border-radius:var(--r-pill);display:inline-block}.apptform__row{display:flex;gap:var(--sp-3)}.apptform__row dt{flex:0 0 84px;font-size:13px;font-weight:600;color:var(--text)}.apptform__row dd{flex:1 1 auto;margin:0;font-size:16px;color:var(--text);display:flex;align-items:center;gap:var(--sp-2)}.apptform__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin:0;font-size:13px;color:var(--text)}.apptform__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.btn{min-height:44px;padding:var(--sp-3) var(--sp-6);border:none;border-radius:var(--r-pill);font-family:var(--font-body);font-size:16px;cursor:pointer;transition:transform var(--dur-fast) var(--ease)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--primary-strong);color:#fff;flex:1 1 auto}.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn--danger{background:transparent;border:1px solid var(--error);color:var(--error)}.shell{min-height:100%;display:flex;flex-direction:column;max-width:640px;margin:0 auto;padding-bottom:96px}.shell__header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg)}.shell__greet{margin:0;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text)}.shell--top .shell__greet{color:var(--top-strong)}.shell--yok .shell__greet{color:var(--yok-strong)}.shell__main{flex:1 1 auto;padding:0 var(--sp-4) var(--sp-6)}.shell__fab{position:fixed;right:max(var(--sp-4),calc((100vw - 640px) / 2 + var(--sp-4)));bottom:84px;z-index:30;width:56px;height:56px;border:none;border-radius:var(--r-pill);background:var(--primary-strong);color:#fff;font-size:28px;line-height:1;cursor:pointer;box-shadow:var(--shadow-md);transition:transform var(--dur-fast) var(--ease)}.shell__fab:active{transform:scale(.94)}.shell__tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;max-width:640px;margin:0 auto;background:var(--surface);border-top:1px solid var(--border)}.shell__tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:var(--sp-2) 0;border:none;background:transparent;color:var(--text);font-family:var(--font-body);font-size:12px;cursor:pointer}.shell__tab--on{color:var(--primary-strong);font-weight:700}@media (min-width: 1024px){.shell,.shell__tabs{max-width:720px}}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-thai-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-thai-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-sans-thai-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-sans-thai-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-thai-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-thai-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Mali;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/mali-thai-400.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/mali-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/mali-thai-600.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/mali-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Mali;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/mali-thai-700.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/mali-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}:root{--bg: #fff7f3;--surface: #ffffff;--surface-alt: #fdeef0;--primary: #ff9db0;--primary-strong: #c9385c;--secondary: #c9b6e4;--secondary-strong: #6e51a6;--top: #8fc7ee;--top-strong: #2f6fa3;--yok: #8fd9c4;--yok-strong: #1b7d68;--text: #4a3b47;--text-muted: #8a7b84;--border: #f0dadf;--success: #2e9e7a;--warning: #b9791c;--error: #c43d3d;--error-bg: #fbe3e1;--focus-ring: #6e51a6;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--sp-12: 48px;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-pill: 999px;--shadow-sm: 0 2px 8px rgba(201, 56, 92, .06);--shadow-md: 0 6px 20px rgba(74, 59, 71, .08);--shadow-lg: 0 12px 32px rgba(74, 59, 71, .12);--ease: cubic-bezier(.22, .61, .36, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--font-body: "Noto Sans Thai", -apple-system, "Segoe UI", sans-serif;--font-display: "Mali", "Noto Sans Thai", cursive}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.boot{min-height:100%;display:flex;align-items:center;justify-content:center}@keyframes ty-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes ty-heart-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
