:root{font-family:Plus Jakarta Sans,Segoe UI,sans-serif;color:#10213d;background:radial-gradient(circle at top left,rgba(58,115,201,.24),transparent 34%),linear-gradient(180deg,#edf4ff,#dce8fb);color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand-primary: #002a6c;--brand-secondary: #0f4eb3;--brand-accent: #c7dcff;--surface: rgba(255, 255, 255, .78);--surface-strong: #ffffff;--text-main: #10213d;--text-muted: #5b6b84;--border-soft: rgba(0, 42, 108, .12);--shadow-xl: 0 32px 80px rgba(0, 42, 108, .18);--safe-area-top: max(16px, env(safe-area-inset-top));--safe-area-bottom: max(16px, env(safe-area-inset-bottom))}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}button,input{font:inherit}a{color:var(--brand-secondary)}.app-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:calc(24px + var(--safe-area-top)) 24px 24px;background:linear-gradient(180deg,#002a6c59,#002a6c1f),radial-gradient(circle at top left,rgba(255,255,255,.18),transparent 32%),linear-gradient(135deg,#002a6cf0,#0c4499db)}.home-shell{min-height:100vh;padding:0;display:flex;justify-content:center;background:#f8fafc}.home-card{width:100%;max-width:440px;min-height:100vh;padding:calc(20px + var(--safe-area-top)) 16px calc(104px + var(--safe-area-bottom));background:#f8fafc;position:relative}.home-card--centered{display:grid;place-items:center;text-align:center;gap:12px}.home-card--centered h1{margin:0;color:var(--brand-primary)}.home-greeting{margin:0 0 20px;font-size:1.75rem;font-weight:800;color:var(--brand-primary)!important}.home-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.home-header .home-greeting{margin:0}.home-calendar-button{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;border-radius:18px;background:#fff;color:#002a6c;box-shadow:0 4px 20px -2px #0f172a14;cursor:pointer}.home-calendar-button__icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.profile-page{display:grid;gap:16px}.profile-page__title{margin:0 0 4px;font-size:1.75rem;color:#002a6c}.profile-card{display:grid;gap:12px;padding:20px;border-radius:28px;background:#fff;border:1px solid rgba(226,232,240,.95);box-shadow:0 4px 20px -2px #0f172a0f}.profile-card__label{margin:0;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.profile-card__value{margin:0;font-size:1.25rem;font-weight:800;color:#0f172a}.profile-card__options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-card__option{border:1px solid rgba(0,42,108,.12);border-radius:18px;padding:.85rem 1rem;background:#f8fafc;color:#002a6c;font-weight:800;cursor:pointer}.profile-card__option--active{background:#002a6c;color:#fff}.allowances-grid{display:grid;gap:18px;padding-bottom:24px}.allowance-loading{display:grid;justify-items:center;gap:14px;padding:36px 24px;border-radius:28px;background:#fff;border:1px solid rgba(226,232,240,.95);box-shadow:0 4px 20px -2px #0f172a0f}.allowance-loading__spinner{width:42px;height:42px;border-radius:999px;border:4px solid rgba(0,42,108,.12);border-top-color:#002a6c;animation:allowanceSpin .7s linear infinite}.allowance-loading__text{margin:0;font-weight:700;color:#002a6c}.allowance-card{border-radius:32px;background:#fff;border:1px solid rgba(226,232,240,.95);box-shadow:0 4px 20px -2px #0f172a0f;position:relative}.allowance-card__hero-frame{position:sticky;top:12px;z-index:3;padding-top:12px;margin-top:-12px;background:#fff}.allowance-card__hero{min-height:220px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;background-position:center;background-size:cover;background-repeat:no-repeat;background-color:#fff;position:relative;overflow:hidden;border-radius:32px 32px 0 0;isolation:isolate;transition:min-height .28s ease,padding .28s ease,border-radius .28s ease,box-shadow .28s ease}.allowance-card__hero--rotating{transition:background-image .5s ease-in-out}.allowance-card__hero:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,#0f172a0f,#0f172aad);z-index:-1}.allowance-card__hero:after{display:none}.allowance-card__countdown,.allowance-card__hero-copy,.allowance-card__hero-total{position:relative;z-index:1}.allowance-card__countdown{align-self:flex-end;padding:.6rem .9rem;border-radius:999px;background:#ffffff2e;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fff;font-size:.9rem;font-weight:800}.allowance-card__hero-copy{color:#fff}.allowance-card__hero-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.allowance-card__hero-total{margin:0;font-size:1.2rem;font-weight:800;color:#86efac;white-space:nowrap}.allowance-card__port-meta{margin:0 0 8px;display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;font-size:.85rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#bfdbfe}.allowance-card__port-name{margin:0;font-size:1.9rem;font-weight:800;line-height:1.05;color:#fff}.allowance-card__meta-dot{opacity:.8}.allowance-card__pattern-number{color:#bfdbfe}.allowance-card__hero--compact .allowance-card__port-meta{margin-bottom:4px;font-size:.75rem}.allowance-card__hero--compact .allowance-card__port-name{font-size:1.35rem}.allowance-card__fade-in{animation:allowanceFade .45s ease}.allowance-card__body{position:relative;z-index:1;padding:18px 20px 22px}.allowance-card__paydate-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:.9rem 1rem;border-radius:18px;background:#dcfce7;border:1px solid #86efac}.allowance-card__paydate-label{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#166534}.allowance-card__paydate-value{font-size:1rem;font-weight:800;color:#166534}.allowance-card__meta{margin:0;font-size:.95rem;font-weight:800;color:var(--brand-primary);word-break:break-word;text-transform:uppercase;letter-spacing:.08em}.allowance-card__segment{margin-top:16px;display:grid;gap:12px}.allowance-card__segment--divided{padding-top:16px}.allowance-card__row{display:flex;align-items:center;gap:10px}.allowance-card__pill-row{display:flex;align-items:center;gap:10px;padding:.7rem .85rem;border-radius:18px;background:#e0ecff}.allowance-card__icon{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 10px;border-radius:14px;background:#f8fafc;color:#002a6c;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.allowance-card__icon--flight{padding:0}.allowance-card__icon-svg{width:18px;height:18px;stroke:currentColor;fill:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.allowance-card__label{font-size:.82rem;font-weight:800;color:#002a6c;text-transform:uppercase;letter-spacing:.05em}.allowance-card__text{font-size:1rem;font-weight:700;color:#0f172a}.allowance-card__pill-row--button{width:100%;border:0;cursor:pointer;text-align:left}.allowance-card__flight-stack{display:grid;gap:8px}.allowance-card__overtime-pill{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.45rem .7rem;border-radius:999px;background:#dcfce7;color:#166534;font-size:.72rem;font-weight:800;white-space:nowrap}.allowance-card__segment-value{display:flex;align-items:center;justify-content:space-between;gap:12px}.allowance-card__segment-value-amount{font-size:1.05rem;font-weight:800;color:#166534}.allowance-card__segment-value .allowance-card__label{color:#166534}.allowance-card__meal-pills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.allowance-card__pill{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;padding:.55rem .8rem;border-radius:18px;background:#eff6ff;color:#002a6c;font-size:.82rem;font-weight:800;text-align:center;border:0;cursor:pointer;appearance:none;box-shadow:none}.allowance-card__pill-label{font-size:.68rem;letter-spacing:.08em}.allowance-card__pill-value{font-size:1rem;line-height:1.1}.allowance-card__actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}.allowance-card__action{border:0;border-radius:18px;padding:.95rem 1rem;font-weight:800;cursor:pointer}.allowance-card__action--primary{background:#002a6c;color:#fff}.allowance-card__action--danger{background:#fef2f2;color:#b91c1c}.allowance-card__action--full{width:100%}.bottom-nav{position:fixed;left:max(20px,calc(50% - 180px));right:max(20px,calc(50% - 180px));bottom:calc(16px + var(--safe-area-bottom));display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;border-radius:20px;background:#fff;border:1px solid rgba(0,42,108,.12);box-shadow:0 18px 30px #002a6c24;z-index:30}.bottom-nav__item{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:16px;padding:.72rem .8rem;font-weight:700;color:var(--brand-primary);background:transparent;cursor:pointer}.bottom-nav__item--active{background:#002a6c14}.bottom-nav__icon{display:inline-flex;align-items:center;justify-content:center}.bottom-nav__icon-svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.bottom-nav__label{margin-left:0;font-size:.92rem}.menu-sheet{position:fixed;right:max(20px,calc(50% - 180px));bottom:calc(84px + var(--safe-area-bottom));min-width:180px;padding:10px;border-radius:20px;background:#fff;border:1px solid rgba(0,42,108,.12);box-shadow:0 18px 30px #002a6c24;z-index:35}.menu-sheet__item{width:100%;border:0;border-radius:14px;padding:.9rem 1rem;text-align:left;font-weight:700;color:var(--brand-primary);background:transparent;cursor:pointer}.menu-sheet__item:hover{background:#002a6c14}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a73;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50}.delete-modal{width:min(100%,360px);border-radius:28px;padding:24px;background:linear-gradient(180deg,#fff,#fff7f7);border:1px solid rgba(248,113,113,.2);box-shadow:0 24px 60px #0f172a33}.delete-modal__eyebrow{margin:0 0 8px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#dc2626}.delete-modal__title{margin:0;font-size:1.75rem;line-height:1;color:#0f172a}.delete-modal__text{margin:12px 0 0;color:#475569;line-height:1.5}.delete-modal__actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.delete-modal__button{border:0;border-radius:18px;padding:.95rem 1rem;font-weight:800;cursor:pointer}.delete-modal__button--secondary{background:#e2e8f0;color:#0f172a}.delete-modal__button--danger{background:#dc2626;color:#fff}.meal-modal{width:min(100%,360px);border-radius:28px;padding:24px;background:linear-gradient(180deg,#fff,#eef6ff);border:1px solid rgba(0,42,108,.12);box-shadow:0 24px 60px #0f172a33}.meal-modal__eyebrow{margin:0 0 12px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#002a6c}.meal-modal__value-row{display:grid;grid-template-columns:56px 1fr 56px;gap:12px;align-items:center}.meal-modal__arrow{border:0;border-radius:18px;height:56px;background:#dbeafe;color:#002a6c;font-size:1.8rem;font-weight:800;cursor:pointer}.meal-modal__value{display:flex;align-items:center;justify-content:center;height:56px;border-radius:18px;background:#fff;border:1px solid rgba(0,42,108,.12);color:#002a6c;font-size:1.5rem;font-weight:800}.meal-modal__flight{margin:0 0 12px;color:#0f172a;font-weight:700}.meal-modal__input{width:100%;height:56px;border:1px solid rgba(0,42,108,.12);border-radius:18px;padding:0 16px;background:#fff;color:#002a6c;font-size:1.25rem;font-weight:800;letter-spacing:.12em;text-align:center}.meal-modal__actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.category-modal__options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.category-modal__option{border:0;border-radius:18px;padding:1rem;background:#002a6c;color:#fff;font-weight:800;cursor:pointer}.calendar-modal{width:min(100%,420px);max-height:min(82vh,760px);overflow:hidden;border-radius:28px;background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid rgba(0,42,108,.12);box-shadow:0 24px 60px #0f172a33}.calendar-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 12px}.calendar-modal__title{margin:0;font-size:1.4rem;color:#002a6c}.calendar-modal__close{border:0;border-radius:14px;padding:.7rem .9rem;background:#e2e8f0;color:#0f172a;font-weight:700;cursor:pointer}.calendar-modal__content{max-height:calc(82vh - 72px);overflow:auto;padding:0 20px 20px;display:grid;gap:18px}.calendar-month{display:grid;gap:10px}.calendar-month__title{margin:0;font-size:1rem;color:#0f172a}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:0;row-gap:6px}.calendar-grid__weekday{text-align:center;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.calendar-grid__day{min-height:68px;padding:6px 0;border-radius:14px;background:#fff;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:4px;overflow:hidden}.calendar-grid__day--empty{background:transparent;border-color:transparent}.calendar-grid__day--pay{background:linear-gradient(180deg,#f0fdf4,#fff 60%);border-color:#86efac}.calendar-grid__day-number{font-size:.72rem;font-weight:800;color:#0f172a;padding:0 8px}.calendar-grid__pattern{display:block;width:calc(100% + 2px);margin-left:-1px;padding:.24rem .4rem;font-size:.5rem;font-weight:800;color:#312e81;background:#c7d2fe;border-top:1px solid #a5b4fc;border-bottom:1px solid #a5b4fc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-grid__pattern--start{border-radius:999px 0 0 999px;border-left:1px solid #a5b4fc;padding-left:.5rem}.calendar-grid__pattern--middle{color:transparent}.calendar-grid__pattern--end{border-radius:0 999px 999px 0;border-right:1px solid #a5b4fc;color:transparent}.calendar-grid__pattern--single{border:1px solid #a5b4fc;border-radius:999px;width:calc(100% - 12px);margin-left:6px;padding-left:.5rem}.calendar-grid__pay{display:inline-flex;align-items:center;justify-content:center;width:calc(100% - 12px);margin-left:6px;padding:.18rem .28rem;border-radius:999px;background:#dcfce7;color:#166534;font-size:.46rem;font-weight:800;text-transform:uppercase}.login-card{position:relative;overflow:hidden;border:1px solid var(--border-soft);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.badge{display:inline-flex;align-items:center;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.login-card p,.helper-text{color:inherit;font-size:1rem;line-height:1.6}.login-panel{display:flex;align-items:center;justify-content:center;width:100%}.login-card{width:min(100%,28rem);border-radius:32px;padding:36px;background:#ffffffe6;display:flex;flex-direction:column;justify-content:center}.login-card__header h2{margin:16px 0 12px;font-size:clamp(2rem,4vw,2.8rem);line-height:1;color:var(--brand-primary)}.login-card__header p,.login-card__footer p,.helper-text{color:var(--text-muted);margin:0}.badge{padding:.45rem .7rem;background:#002a6c14;color:var(--brand-primary)}.login-form{display:grid;gap:14px;margin:28px 0 22px}.login-form label{font-size:.95rem;font-weight:700;color:var(--brand-primary)}.login-form input{width:100%;border:1px solid rgba(0,42,108,.14);border-radius:18px;padding:1rem;background:#f5f8ffeb;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.login-form input:focus{outline:none;border-color:#0f4eb3b3;box-shadow:0 0 0 4px #0f4eb31f;transform:translateY(-1px)}.primary-button,.secondary-button{margin-top:6px;border:0;border-radius:18px;padding:1rem 1.1rem;font-weight:700;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,opacity .18s ease}.primary-button{color:#fff;background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));box-shadow:0 18px 32px #002a6c42}.ghost-button{border:1px solid rgba(0,42,108,.14);border-radius:18px;padding:.85rem 1rem;font-weight:700;color:var(--brand-primary);background:#ffffffa8;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.primary-button:hover,.secondary-button:hover,.ghost-button:hover{transform:translateY(-2px)}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.72;transform:none}.login-card__footer{display:grid;gap:10px}.status-message{padding:.9rem 1rem;border-radius:16px;color:var(--brand-primary)!important;font-weight:600}.status-message--error{background:#ffe0e6d1;color:#8d1730!important}.status-message--success{background:#d7f5e4f2;color:#16603a!important}.status-message--idle,.status-message--loading{background:#c7dcff7a}@media(max-width:960px){.app-shell{padding:18px}.home-shell{padding:0}.home-card{min-height:100vh;padding:20px 14px 92px}.bottom-nav{left:12px;right:12px;bottom:calc(12px + var(--safe-area-bottom));gap:6px;padding:7px;border-radius:18px}.bottom-nav__item{gap:6px;padding:.68rem .55rem;border-radius:14px}.bottom-nav__icon-svg{width:17px;height:17px}.bottom-nav__label{font-size:.84rem}.menu-sheet{right:12px;left:12px;bottom:calc(76px + var(--safe-area-bottom));min-width:0}.login-card{padding:28px}}@media(prefers-reduced-motion:no-preference){.login-card{animation:fadeUp .7s ease both}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes allowanceFade{0%{opacity:0}to{opacity:1}}@keyframes allowanceSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
