:root{--bg: #f5f5f7;--surface: #ffffff;--surface-2: #f2f2f7;--text: #1d1d1f;--text-2: #6e6e73;--text-3: #aeaeb2;--separator: rgba(60, 60, 67, .12);--accent: #0071e3;--accent-soft: rgba(0, 113, 227, .1);--success: #248a3d;--success-soft: rgba(52, 199, 89, .14);--warning: #b25000;--warning-soft: rgba(255, 159, 10, .16);--danger: #d70015;--danger-soft: rgba(255, 59, 48, .12);--wallet-1: #1d1d1f;--wallet-2: #3a3a3c;--wallet-text: #ffffff;--tabbar: rgba(249, 249, 251, .82);--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .06);--radius: 20px;--radius-sm: 12px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", Roboto, sans-serif;--tabbar-h: 64px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #000000;--surface: #1c1c1e;--surface-2: #2c2c2e;--text: #f5f5f7;--text-2: #98989d;--text-3: #636366;--separator: rgba(84, 84, 88, .45);--accent: #2997ff;--accent-soft: rgba(41, 151, 255, .16);--success: #30d158;--success-soft: rgba(48, 209, 88, .16);--warning: #ffb340;--warning-soft: rgba(255, 179, 64, .16);--danger: #ff6961;--danger-soft: rgba(255, 69, 58, .16);--wallet-1: #2c2c2e;--wallet-2: #48484a;--tabbar: rgba(22, 22, 24, .82);--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.shell{max-width:480px;margin:0 auto;min-height:100dvh;position:relative;padding:env(safe-area-inset-top) 0 calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px)}.shell.no-tabs{padding-bottom:calc(env(safe-area-inset-bottom) + 24px)}.page{padding:8px 20px 0;animation:page-in .28s ease}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.large-title{font-size:34px;font-weight:700;letter-spacing:-.02em;margin:12px 0 20px}.page-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.page-top .large-title{margin:12px 0 20px}.nav-bar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:52px;padding:0 12px;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.nav-bar h1{font-size:17px;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-back{justify-self:start;display:inline-flex;align-items:center;gap:2px;background:none;border:0;color:var(--accent);padding:8px 4px;cursor:pointer;font-size:17px}.nav-action{justify-self:end}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--tabbar);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--separator)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-3);font-size:10.5px;font-weight:500}.tab svg{width:26px;height:26px}.tab.active{color:var(--accent)}.card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card+.card,.section+.card{margin-top:24px}.section{margin-top:28px}.page>.section:first-child,.spacer+.section,.section:first-child{margin-top:0}.section-header+*,.section-title+*{margin-top:0}.stack>*+*{margin-top:12px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin:0 4px 8px}.section-header{display:flex;justify-content:space-between;align-items:baseline;margin:0 4px 8px}.section-header .section-title{margin:0}.section-header a{font-size:15px}.list{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.row{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:12px 16px;position:relative;background:none;border:0;text-align:left;color:var(--text);cursor:pointer}.row+.row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--separator)}.row.has-icon+.row.has-icon:before{left:62px}a.row:active,button.row:active{background:var(--surface-2)}.row-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:17px;background:var(--surface-2);flex:none}.row-main{flex:1;min-width:0}.row-title{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{font-size:14px;color:var(--text-2);margin-top:1px}.row-value{color:var(--text-2);font-size:17px;text-align:right;flex:none;font-variant-numeric:tabular-nums}.row-value.strong{color:var(--text);font-weight:600}.chevron{color:var(--text-3);flex:none;width:8px}.wallet{position:relative;overflow:hidden;color:var(--wallet-text);background:linear-gradient(135deg,var(--wallet-1),var(--wallet-2));border-radius:24px;padding:22px 22px 20px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 18px 40px -18px #00000080}.wallet:after{content:"";position:absolute;inset:auto -40% -60% auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(10,132,255,.55),transparent 70%)}.wallet.blue{--wallet-1: #0a63d6;--wallet-2: #5e5ce6}.wallet.blue:after{background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%)}.wallet.green{--wallet-1: #0f7b3d;--wallet-2: #30b360}.wallet.green:after{background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%)}.wallet>*{position:relative;z-index:1}.wallet-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.wallet-amount{font-size:40px;font-weight:700;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}.wallet-meta{font-size:15px;opacity:.8}.wallet-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:18px}.wallet-link{color:inherit;font-size:15px;font-weight:600;opacity:.95}.blur-amount{filter:blur(10px);-webkit-user-select:none;user-select:none}.amount-xl{font-size:40px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.amount-lg{font-size:28px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.small{font-size:14px}.center{text-align:center}.num{font-variant-numeric:tabular-nums}.greet-name{font-size:28px;font-weight:700;letter-spacing:-.01em}.greet-sub{color:var(--text-2);font-size:17px;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:var(--surface);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.stat-value{font-size:28px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-label{font-size:13px;color:var(--text-2)}.stat.accent .stat-value{color:var(--accent)}.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#0a84ff,#5e5ce6);border-radius:inherit;transition:width .6s ease}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick a{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text);font-size:12px;font-weight:500;text-align:center}.quick span.icon{width:56px;height:56px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow);display:grid;place-items:center;font-size:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:14px;border:0;background:var(--accent);color:#fff;font-size:17px;font-weight:600;cursor:pointer;transition:transform .1s ease,opacity .2s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:default}.btn.block{width:100%}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.btn.plain{background:none;color:var(--accent)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.small{min-height:36px;padding:0 14px;font-size:15px;border-radius:10px}.btn-row{display:flex;gap:10px}.btn-row>*{flex:1}.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);box-shadow:var(--shadow);border:0;cursor:pointer;position:relative;color:var(--text)}.icon-btn .dot{position:absolute;top:6px;right:7px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#ff3b30;color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}.form-group{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.field{display:block;padding:10px 16px;position:relative}.field+.field:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--separator)}.field label,.field .label{display:block;font-size:13px;color:var(--text-2);margin-bottom:2px}.field input,.field textarea,.field select{width:100%;border:0;outline:0;background:transparent;font-size:17px;padding:2px 0}.field textarea{resize:vertical;min-height:72px}.field.readonly input{color:var(--text-2)}.field-error{color:var(--danger);font-size:13px;margin-top:4px}.form-note{font-size:13px;color:var(--text-2);margin:8px 16px 0}.input-lg{width:100%;height:54px;border-radius:14px;border:1px solid var(--separator);background:var(--surface);padding:0 16px;font-size:17px;outline:none}.input-lg:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface-2);padding:2px;border-radius:10px;margin-bottom:20px}.segmented button{border:0;background:none;padding:7px 8px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.segmented button.active{background:var(--surface);box-shadow:0 1px 3px #0000001f;font-weight:600}.switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:51px;height:31px;border-radius:99px;background:var(--surface-2);position:relative;cursor:pointer;transition:background .2s;flex:none;border:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;transition:transform .2s}.switch:checked{background:#34c759}.switch:checked:after{transform:translate(20px)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}.badge.pending{background:var(--warning-soft);color:var(--warning)}.badge.approved,.badge.published{background:var(--success-soft);color:var(--success)}.badge.rejected,.badge.cancelled{background:var(--danger-soft);color:var(--danger)}.badge.draft,.badge.neutral{background:var(--surface-2);color:var(--text-2)}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:flex;gap:12px;align-items:center;padding:10px 0;font-size:17px}.timeline .mark{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;flex:none;border:2px solid var(--text-3);color:transparent}.timeline .done .mark{background:var(--success);border-color:var(--success);color:#fff}.timeline .current .mark{border-color:var(--warning);background:var(--warning-soft)}.timeline .todo{color:var(--text-3)}.breakdown{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.breakdown td{padding:7px 0;font-size:16px}.breakdown td:last-child{text-align:right}.breakdown tr.total td{font-weight:700;border-top:.5px solid var(--separator);padding-top:10px}.net-box{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent)}.net-box .amount-lg{color:var(--accent)}.bars{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:8px}.bars .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bars .bar span{width:100%;max-width:28px;border-radius:6px 6px 3px 3px;background:var(--accent);opacity:.35;min-height:4px;transition:height .5s ease}.bars .bar.current span{opacity:1}.bars .bar small{font-size:11px;color:var(--text-2)}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-head h3{font-size:17px;font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 0;text-align:center}.calendar-grid .dow{font-size:12px;color:var(--text-2);font-weight:600;padding-bottom:6px}.day{aspect-ratio:1;display:grid;place-items:center;font-size:16px;position:relative;border:0;background:none;cursor:default;font-variant-numeric:tabular-nums}.day.weekend{color:var(--text-3)}.day.today{color:var(--accent);font-weight:700}.day.holiday:after{content:"";position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:#ff9f0a}.day.vacation{background:var(--accent-soft);color:var(--accent);font-weight:600}.day.vacation.pending{background:var(--warning-soft);color:var(--warning)}.day.leave{background:var(--success-soft);color:var(--success);font-weight:600}.day.range-start{border-top-left-radius:50%;border-bottom-left-radius:50%}.day.range-end{border-top-right-radius:50%;border-bottom-right-radius:50%}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin-top:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.avatar{border-radius:50%;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#0a84ff,#5e5ce6);color:#fff;font-weight:600;flex:none}.avatar img{width:100%;height:100%;object-fit:cover}.profile-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;margin:8px 0 28px}.profile-head h2{font-size:24px;font-weight:700;margin-top:10px}.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:32px 24px;max-width:420px;margin:0 auto}.auth-logo{width:72px;height:72px;border-radius:20px;margin-bottom:24px;box-shadow:0 12px 30px -10px #0a84ff99}.auth h1{font-size:34px;font-weight:700;letter-spacing:-.02em}.auth .lead{color:var(--text-2);margin:6px 0 32px;font-size:17px}.auth form>*+*{margin-top:12px}.auth .error{color:var(--danger);font-size:15px;text-align:center}.auth .hint{background:var(--accent-soft);color:var(--accent);padding:12px 14px;border-radius:12px;font-size:14px}.otp{display:flex;gap:10px;justify-content:center;margin:12px 0 24px}.otp input{width:48px;height:60px;border-radius:14px;border:1px solid var(--separator);background:var(--surface);text-align:center;font-size:26px;font-weight:600;outline:none}.otp input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.faceid{width:96px;height:96px;margin:0 auto 24px;color:var(--accent)}.empty{text-align:center;color:var(--text-2);padding:32px 16px}.empty .emoji{font-size:40px;display:block;margin-bottom:8px}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--surface-2);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:48px auto}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}.alert{padding:12px 14px;border-radius:12px;font-size:15px}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.info{background:var(--accent-soft);color:var(--accent)}.alert.warn{background:var(--warning-soft);color:var(--warning)}.divider{height:.5px;background:var(--separator);margin:16px 0}.spacer{height:24px}.success-check{width:76px;height:76px;border-radius:50%;background:var(--success);color:#fff;display:grid;place-items:center;font-size:40px;margin:32px auto 16px;animation:pop .4s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}.sheet{width:100%;max-width:480px;max-height:92dvh;overflow:auto;background:var(--bg);border-radius:20px 20px 0 0;padding:8px 20px calc(24px + env(safe-area-inset-bottom));animation:slide-up .28s cubic-bezier(.2,.9,.3,1)}.sheet-grabber{width:36px;height:5px;border-radius:3px;background:var(--text-3);margin:0 auto 12px}.sheet h2{font-size:20px;font-weight:700;margin-bottom:16px}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg);display:flex;flex-direction:column}.viewer iframe{flex:1;border:0;width:100%;background:#525659}.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 8px) 12px 8px;border-bottom:.5px solid var(--separator);gap:8px}.viewer-bar strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px);transform:translate(-50%);background:#1d1d1feb;color:#fff;padding:12px 18px;border-radius:14px;font-size:15px;z-index:70;animation:fade .2s;max-width:calc(100% - 40px)}@media(min-width:700px){body{background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent),var(--bg)}}.pdf-pages{flex:1;overflow:auto;background:#3a3a3c;padding:12px;display:flex;flex-direction:column;align-items:center;gap:12px}.pdf-pages canvas{background:#fff;border-radius:4px;box-shadow:0 4px 16px #00000059}
