.nav-bar{position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px);color:#fff;background:linear-gradient(100deg,var(--color-brand-strong, #2f6fc4) 0%,var(--color-brand-deep, #1f4f96) 100%);box-shadow:0 1px #ffffff24 inset,0 8px 20px -12px #142d548c}.nav-bar__inner{max-width:1200px;margin:0 auto;height:52px;padding:0 clamp(14px,4vw,28px);display:flex;align-items:center;justify-content:space-between;gap:12px}.nav-bar__brand{display:inline-flex;align-items:center;gap:9px;color:inherit;text-decoration:none;border-radius:8px;padding:4px 6px;margin-left:-6px}.nav-bar__logo{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fff;box-shadow:0 1px 3px #0a1e3c4d}.nav-bar__title{font-family:var(--font-display, inherit);font-size:.95rem;font-weight:620;letter-spacing:.005em;white-space:nowrap}.nav-bar__meta{display:flex;align-items:center;gap:10px;min-width:0}.nav-bar__user{display:flex;align-items:center;gap:8px;min-width:0;padding:3px 12px 3px 3px;border-radius:999px;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff29}.nav-bar__avatar{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.68rem;font-weight:700;letter-spacing:.02em;color:#5a3d05;background:var(--color-accent, #f2b23a)}.nav-bar__identity{display:flex;align-items:baseline;gap:7px;min-width:0;line-height:1}.nav-bar__name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.nav-bar__role{font-size:.7rem;color:#cfe2fb;white-space:nowrap}.nav-bar__logout{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;font:inherit;font-size:.8rem;font-weight:550;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:999px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.nav-bar__logout:hover:not(:disabled){background:#ffffff29;border-color:#ffffff8c}.nav-bar__logout:disabled{opacity:.6;cursor:progress}.nav-bar__brand:focus-visible,.nav-bar__logout:focus-visible{outline:2px solid #fff;outline-offset:2px}@media (max-width: 640px){.nav-bar__user{padding:3px}.nav-bar__identity{display:none}.nav-bar__logout{width:30px;padding:0;justify-content:center}.nav-bar__logout-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media (max-width: 380px){.nav-bar__title{display:none}}@media (prefers-reduced-motion: reduce){.nav-bar__logout{transition:none}}.badge{--badge-c: #5b6573;display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;font-size:.8125rem;font-weight:600;line-height:1.4;text-transform:capitalize;white-space:nowrap;color:color-mix(in srgb,var(--badge-c) 75%,currentColor);background:color-mix(in srgb,var(--badge-c) 14%,transparent)}.badge__dot{width:6px;height:6px;border-radius:50%;background:var(--badge-c)}.badge--approved{--badge-c: #2f7a55}.badge--pending{--badge-c: #8a6508}.badge--rejected{--badge-c: #b3372f}.progress-track{height:10px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,currentColor 10%,transparent)}.progress-fill{height:100%;border-radius:inherit;background:var(--accent, #2563b0);transition:width .6s cubic-bezier(.2,.8,.2,1)}.progress-track--done .progress-fill{background:#2f7a55}.photo-capture{display:grid;gap:10px}.photo-capture__input{display:none}.photo-capture__tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:132px;padding:16px;font:inherit;font-weight:500;color:inherit;background:transparent;border:1.5px dashed color-mix(in srgb,currentColor 30%,transparent);border-radius:12px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.photo-capture__tile small{font-size:.8125rem;font-weight:400;opacity:.6}.photo-capture__tile:hover{border-color:var(--accent, #2563b0);background:color-mix(in srgb,var(--accent, #2563b0) 6%,transparent)}.photo-capture__preview{border-radius:12px;overflow:hidden;background:color-mix(in srgb,currentColor 8%,transparent)}.photo-capture__preview img{display:block;width:100%;max-height:280px;object-fit:cover}.photo-capture__bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.photo-capture__status{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:#2f7a55}.photo-capture__actions{display:inline-flex;gap:8px}.photo-capture__action{height:32px;padding:0 12px;font:inherit;font-size:.8125rem;font-weight:500;color:inherit;background:transparent;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:8px;cursor:pointer}.photo-capture__action:hover{background:color-mix(in srgb,currentColor 7%,transparent)}.photo-capture__tile:focus-visible,.photo-capture__action:focus-visible{outline:2px solid var(--accent, #2563b0);outline-offset:2px}.review-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:16px;background:#0a0f198c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ui-fade .15s ease both}.review{width:min(720px,100%);max-height:min(92dvh,900px);display:flex;flex-direction:column;border-radius:16px;color:var(--text, CanvasText);background:var(--surface, Canvas);box-shadow:0 24px 60px #00000059;outline:none;animation:ui-pop .18s cubic-bezier(.2,.8,.2,1) both}.review__header{display:flex;align-items:flex-start;gap:12px;padding:20px 24px 16px;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.review__heading{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.review__heading h2{margin:0;font-size:1.125rem;font-weight:650;letter-spacing:-.01em}.review__close{flex:none;width:36px;height:36px;display:grid;place-items:center;margin:-4px -8px 0 0;color:inherit;background:transparent;border:0;border-radius:8px;cursor:pointer;opacity:.7}.review__close:hover:not(:disabled){opacity:1;background:color-mix(in srgb,currentColor 8%,transparent)}.review__close:focus-visible{outline:2px solid var(--accent, #2563b0);outline-offset:2px}.review__body{overflow:auto;padding:20px 24px;display:grid;gap:20px}.review__photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.review__panel{display:grid;gap:8px;align-content:start}.review__panel-title{margin:0;font-size:.875rem;font-weight:600;opacity:.7}.review__photo{aspect-ratio:4 / 3;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:color-mix(in srgb,currentColor 8%,transparent)}.review__photo img{width:100%;height:100%;object-fit:cover}.review__photo-msg{margin:0;padding:0 16px;text-align:center;font-size:.875rem;opacity:.65}.review__skeleton{width:100%;height:100%;background:color-mix(in srgb,currentColor 10%,transparent);animation:ui-pulse 1.2s ease-in-out infinite}.review__time{font-size:.875rem;font-variant-numeric:tabular-nums}.review__summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px}.review__hours{margin:0}.review__hours strong{font-size:1.5rem;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.review__task{margin:0;max-width:70ch;padding:12px 14px;font-size:.9375rem;line-height:1.5;white-space:pre-wrap;border-left:3px solid var(--accent, #2563b0);border-radius:0 8px 8px 0;background:color-mix(in srgb,currentColor 6%,transparent)}.review__reject{display:grid;gap:6px}.review__reject label{font-size:.875rem;font-weight:600}.review__reject textarea{width:100%;min-height:96px;padding:10px 12px;font:inherit;color:inherit;background:transparent;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:8px;resize:vertical}.review__reject textarea:focus-visible{outline:2px solid var(--accent, #2563b0);outline-offset:1px}.review__hint{margin:0;font-size:.8125rem;opacity:.65}.review__error{margin:0;font-size:.875rem;font-weight:500;color:var(--danger, #b3372f)}.review__footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}@media (max-width: 520px){.review-backdrop{padding:0;align-items:end}.review{max-height:94dvh;border-radius:16px 16px 0 0}.review__header,.review__body,.review__footer{padding-left:16px;padding-right:16px}.review__footer .btn{flex:1;justify-content:center}}.route-loading{min-height:40vh;display:grid;place-content:center;justify-items:center;gap:12px;opacity:0;animation:ui-fade .2s ease .3s forwards}.route-loading__spinner{width:28px;height:28px;border-radius:50%;border:3px solid color-mix(in srgb,currentColor 15%,transparent);border-top-color:var(--accent, #2563b0);animation:ui-spin .8s linear infinite}.route-loading__text{font-size:.875rem;opacity:.65}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes ui-pulse{50%{opacity:.5}}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.review-backdrop,.review,.review__skeleton{animation:none}.progress-fill,.photo-capture__tile{transition:none}.route-loading__spinner{animation-duration:2.4s}}:root{--color-brand: #4290ed;--color-brand-strong: #2f78d6;--color-brand-deep: #1f4f8f;--color-sky: #8ccbfa;--color-ice: #dceefd;--color-coral: #e7605b;--color-mist: #d3dde8;--color-slate: #6b7c8f;--color-ink: #1c2733;--color-paper: #f5f8fc;--color-surface: #ffffff;--color-success: #2f7a55;--color-danger: #b63c36;--color-accent: #f4a825;--font-display: "Fraunces", "Georgia", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 4px;--radius-md: 10px;--radius-lg: 22px;--shadow-card: 0 1px 2px rgba(28, 39, 51, .08), 0 8px 24px -12px rgba(28, 39, 51, .18)}*{box-sizing:border-box}html,body{min-height:100%}#root{min-height:100vh;min-height:100dvh}body{margin:0;font-family:var(--font-body);color:var(--color-ink);background:var(--color-paper);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;margin:0}p{margin:0;line-height:1.55}a{color:var(--color-brand)}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}:root{--color-warning: #d9831f;--color-brand-soft: #e4f0fd;--color-success-soft: #e3f6ea;--color-danger-soft: #fbe5e2;--color-warning-soft: #fdf1dc;--border: var(--color-mist);--surface: var(--color-surface);--primary: var(--color-brand);--accent: var(--color-brand-strong);--text: var(--color-ink);--danger: var(--color-danger);--ease-out: cubic-bezier(.22, 1, .36, 1);--duration-fast: .15s;--duration-base: .25s;--shadow-pop: 0 1px 2px rgba(28, 39, 51, .08), 0 22px 44px -16px rgba(20, 45, 84, .45);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--container: 1200px;--z-nav: 50;--z-menu: 60;--z-modal: 1000;--z-toast: 1100}.btn--success{background:var(--color-success);color:#fff}.btn--success:hover:not(:disabled){background:#276646;color:#fff}.btn--block,.btn--full{width:100%}.stat-card--accent{--stat-accent: var(--color-accent);--stat-icon-bg: #fdf1dc;--stat-icon-fg: #b8860f}@keyframes skeleton-shimmer{to{background-position:-200% 0}}.page{padding:var(--space-5) 0 var(--space-6);animation:fade-up .4s ease backwards}div.page{animation-fill-mode:backwards}.page>:not(.modal-backdrop):not(.x-toasts){animation:fade-up .55s var(--ease-out) var(--d, 0s) backwards}.page>:nth-child(2){--d: .05s}.page>:nth-child(3){--d: .1s}.page>:nth-child(4){--d: .15s}.page>:nth-child(5){--d: .2s}.page>:nth-child(6){--d: .25s}.page>:nth-child(7){--d: .3s}.page .page__header-icon{position:relative}.page .page__header-icon:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;border:1px solid rgba(255,255,255,.4);pointer-events:none;animation:icon-ring 3.2s ease-out infinite}.page .card{border:1px solid rgba(211,221,232,.55);transition:box-shadow .3s ease,transform .3s ease}.page .card:hover{box-shadow:0 1px 2px #1c27330f,0 20px 40px -20px #142d544d}.page .x-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.page .x-stat{position:relative;overflow:hidden;gap:6px;padding:18px 20px;border-color:#d3dde8b3;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card)}.page .x-stat:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--color-brand),var(--color-sky));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}.page .x-stat:hover:before{transform:scaleX(1)}.page .x-stat--accent{background:linear-gradient(160deg,var(--color-brand-soft) 0%,var(--color-surface) 75%);border-color:#4290ed66}.page .x-stat--accent:before{transform:scaleX(1)}.page .x-stat:nth-child(5){animation-delay:.2s}.page .x-stat:nth-child(6){animation-delay:.25s}.page .x-stat__icon{top:16px;right:16px;width:34px;height:34px;border-radius:11px;transition:transform .3s var(--ease-out),background-color .2s ease}.page .x-stat:hover .x-stat__icon{transform:rotate(-6deg) scale(1.08)}.page .x-stat__value{font-size:30px;letter-spacing:-.01em}.page .x-stat__label{font-size:12.5px;font-weight:500;color:var(--color-slate);opacity:1}.page .progress-track{height:12px;background:var(--color-ice)}.page .progress-fill{position:relative;overflow:hidden;background:linear-gradient(90deg,var(--color-brand) 0%,var(--color-brand-strong) 60%,var(--color-brand-deep) 100%)}.page .progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translate(-100%);animation:progress-sheen 2.8s ease-in-out 1s infinite}.page .progress-track--done .progress-fill{background:linear-gradient(90deg,#3fb37f,var(--color-success))}.page .x-milestones{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.page .x-milestone{justify-content:center;padding:7px 0;font-weight:600;border-color:var(--color-mist);background:var(--color-paper);opacity:1;color:var(--color-slate);transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .3s ease}.page .x-milestone--done{background:var(--color-success-soft);border-color:#2f7a5573;color:var(--color-success)}.page .x-insight{border-radius:var(--radius-md);border-left:3px solid var(--color-brand);line-height:1.55}.page .x-timer{font-size:46px;letter-spacing:.01em;background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-deep) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.page .photo-capture__tile{border-radius:14px;background:var(--color-paper);border-color:var(--color-mist)}.page .photo-capture__tile:hover{transform:translateY(-2px);border-color:var(--color-brand);background:var(--color-brand-soft)}.page .photo-capture__tile svg{box-sizing:content-box;width:24px;height:24px;padding:10px;border-radius:50%;background:#4290ed24;color:var(--color-brand-strong);transition:transform .3s var(--ease-out)}.page .photo-capture__tile:hover svg{transform:scale(1.08)}.page .photo-capture__preview{animation:fade-up .35s var(--ease-out) backwards;border-radius:14px}.page .btn--primary{background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-strong) 100%);box-shadow:0 10px 20px -12px #2f78d6b3}.page .btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-brand-strong) 0%,var(--color-brand-deep) 100%);transform:translateY(-1px);box-shadow:0 14px 24px -12px #2f78d6bf}.page .btn--primary:active:not(:disabled){transform:translateY(1px)}.page .btn--primary svg{transition:transform .3s var(--ease-out)}.page .btn--primary:hover:not(:disabled) svg{transform:rotate(-12deg)}.page .x-tabs{display:inline-flex;padding:4px;gap:2px;background:var(--color-paper);border-radius:999px}.page .x-tab{border-color:transparent;color:var(--color-slate);font-weight:500}.page .x-tab--active{background:var(--color-surface);color:var(--color-brand-deep);border-color:transparent;box-shadow:0 1px 2px #1c27331f}.page .x-tab:hover:not(.x-tab--active){border-color:transparent;color:var(--color-brand-deep)}.page .table tbody tr{transition:background-color .2s ease}.page .table tbody tr:hover{background:#4290ed0d}.page .table td,.page .table th{font-variant-numeric:tabular-nums}.page .x-heat__cell{border-radius:4px}.page .x-heat__cell:not(.x-heat__cell--future):hover{transform:scale(1.3);box-shadow:0 0 0 2px #4290ed59}.page .x-chart__total{color:var(--color-brand-deep)}.page .x-chart .x-bar__fill{background:linear-gradient(180deg,color-mix(in srgb,var(--x-accent) 55%,transparent),color-mix(in srgb,var(--x-accent) 35%,transparent))}.page .x-chart .x-bar--goal .x-bar__fill,.page .x-chart .x-bar--today .x-bar__fill,.page .x-chart .x-bar:hover:not(.x-bar--empty) .x-bar__fill{background:linear-gradient(180deg,var(--color-brand),var(--color-brand-strong))}.page .x-chart .x-bar--empty .x-bar__fill{background:color-mix(in srgb,currentColor 14%,transparent)}.x-skeleton-list{display:grid;gap:10px;padding:8px 0}.x-skeleton{background:linear-gradient(90deg,var(--color-paper) 25%,#e9f0f8 50%,var(--color-paper) 75%);background-size:200% 100%}.x-toasts .x-toast{display:flex;align-items:center;gap:10px;min-width:240px;padding:12px 18px;border-radius:12px;border-left:4px solid var(--color-success);background:var(--color-ink);color:#fff;font-weight:500;box-shadow:0 18px 36px -14px #142d548c;animation:toast-slide .35s var(--ease-out) both}.x-toasts .x-toast--err{border-left-color:var(--color-coral);background:var(--color-ink)}.modal .field textarea{width:100%;min-height:110px;padding:10px 12px;border:1px solid var(--color-mist);border-radius:var(--radius-md);background:var(--color-paper);font:inherit;resize:vertical;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.modal .field textarea:focus{outline:none;background:var(--color-surface);border-color:var(--color-brand-strong);box-shadow:0 0 0 3px #4290ed33}@keyframes icon-ring{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}@keyframes progress-sheen{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}@keyframes toast-slide{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@media (max-width: 640px){.page .x-stat__value{font-size:24px}.page .x-timer{font-size:38px}.page .x-tabs{display:flex;overflow-x:auto;max-width:100%}}.field-underline__row{position:relative;display:flex;align-items:center}.field-underline__row input{padding-right:52px}.field-underline__toggle{position:absolute;right:0;bottom:8px;border:none;background:transparent;color:var(--color-brand-strong);font-size:.8rem;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px}.field-underline__hint{display:block;margin-top:6px;font-size:.78rem;color:var(--color-slate)}.auth-shell{flex:1;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:radial-gradient(720px 480px at 12% -10%,#e4f0fd 0%,transparent 60%),radial-gradient(640px 420px at 100% 110%,#eef6ff 0%,transparent 55%),var(--color-paper)}.auth-layout{width:100%;max-width:920px;display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 2px #1c27330f,0 30px 60px -24px #142d5459;animation:auth-layout-in .6s cubic-bezier(.22,1,.36,1) both}.auth-panel--brand{position:relative;color:#eef5ff;padding:44px 40px 32px;background:linear-gradient(165deg,#5aa2f2 0%,var(--color-brand-strong) 48%,var(--color-brand-deep) 100%);display:flex;flex-direction:column;overflow:hidden}.auth-seam{position:absolute;top:0;right:-1px;height:100%;width:46px;z-index:1}.auth-panel__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.86rem;color:#eef5ff}.auth-panel__eyebrow strong{font-family:var(--font-display);font-size:1.02rem;font-weight:600;letter-spacing:.01em}.auth-panel__headline{font-family:var(--font-display);font-weight:680;font-size:clamp(1.7rem,2.1vw + 1rem,2.15rem);line-height:1.12;margin-top:30px;max-width:15ch;animation:fade-up .6s .1s ease both}.auth-panel__copy{margin-top:14px;max-width:34ch;font-size:.94rem;line-height:1.6;color:#dce9fb;animation:fade-up .6s .18s ease both}.auth-ring{margin-top:auto;padding-top:32px;display:flex;align-items:center;gap:16px;animation:fade-up .6s .34s ease both}.auth-ring__figure{position:relative;width:76px;height:76px;flex-shrink:0}.auth-ring__figure svg{width:100%;height:100%;transform:rotate(-90deg)}.auth-ring__track{fill:none;stroke:#ffffff38;stroke-width:7}.auth-ring__value{fill:none;stroke:var(--color-accent);stroke-width:7;stroke-linecap:round;stroke-dasharray:188.5;stroke-dashoffset:188.5;animation:auth-ring-fill 1.1s .2s cubic-bezier(.22,1,.36,1) forwards}@keyframes auth-ring-fill{to{stroke-dashoffset:52.8}}.auth-ring__label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1rem}.auth-ring__caption{font-size:.82rem;color:#dce9fb;line-height:1.5}.auth-ring__caption strong{display:block;color:#fff;font-family:var(--font-body);font-weight:600;font-size:.88rem}.auth-panel--brand:before,.auth-panel--brand:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.auth-panel--brand:before{width:280px;height:280px;top:-110px;right:-90px;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 70%);animation:auth-drift 9s ease-in-out infinite alternate}.auth-panel--brand:after{width:220px;height:220px;bottom:-80px;left:-70px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);animation:auth-drift 11s ease-in-out infinite alternate-reverse}.auth-panel--brand>:not(.auth-seam){position:relative;z-index:1}.auth-panel--form{padding:44px 40px 36px;display:flex;flex-direction:column}.auth-form-header{animation:fade-up .5s .12s ease both}.auth-form-header h1{font-size:1.5rem;color:var(--color-ink)}.auth-form-header p{margin-top:6px;color:var(--color-slate);font-size:.9rem}.auth-switch{position:relative;display:inline-flex;align-self:flex-start;padding:4px;background:var(--color-paper);border-radius:999px;margin-top:22px;gap:4px;animation:fade-up .5s .2s ease both}.auth-switch button{position:relative;z-index:1;border:none;background:transparent;padding:9px 18px;border-radius:999px;font-size:.86rem;font-weight:500;color:var(--color-slate);cursor:pointer;transition:background .2s ease,color .2s ease}.auth-switch button:hover:not(.is-active){color:var(--color-brand-deep)}.auth-switch button.is-active{background:var(--color-surface);color:var(--color-brand-deep);box-shadow:0 1px 2px #1c27331a}.auth-switch button:focus-visible,.field-underline__toggle:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.auth-form{margin-top:26px;display:flex;flex-direction:column}.auth-form .field-underline{animation:fade-up .45s ease both}.auth-form .field-underline:nth-child(1){animation-delay:.05s}.auth-form .field-underline:nth-child(2){animation-delay:.1s}.auth-form .field-underline:nth-child(3){animation-delay:.15s}.auth-form .field-underline:nth-child(4){animation-delay:.2s}.field-underline{position:relative;margin-bottom:22px}.field-underline label{display:block;font-size:.8rem;font-weight:500;color:var(--color-slate);margin-bottom:6px;transition:color .2s ease}.field-underline:focus-within label{color:var(--color-brand-strong)}.field-underline input,.field-underline select{width:100%;border:none;border-bottom:1.5px solid var(--color-mist);border-radius:0;background:transparent;padding:8px 2px 10px;font-size:.98rem;font-family:inherit;color:var(--color-ink);transition:border-color .2s ease}.field-underline select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7c8f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:18px}.field-underline input:hover,.field-underline select:hover{border-bottom-color:var(--color-slate)}.field-underline input:focus,.field-underline select:focus{outline:none;border-bottom-color:var(--color-brand-strong);border-bottom-width:2px;padding-bottom:9px}.field-underline input:invalid:not(:placeholder-shown):not(:focus){border-bottom-color:#c0392b}.field-underline input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px var(--color-surface) inset;-webkit-text-fill-color:var(--color-ink)}.auth-form .btn--primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-strong) 100%);margin-top:6px;transition:transform .2s ease,box-shadow .25s ease,background .25s ease}.auth-form .btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-brand-strong) 0%,var(--color-brand-deep) 100%);box-shadow:0 10px 22px -8px #2a6fc08c;transform:translateY(-1px)}.auth-form .btn--primary:disabled{opacity:.65;cursor:progress}.auth-footnote{margin-top:18px;font-size:.82rem;color:var(--color-slate);text-align:center;animation:fade-up .5s .35s ease both}.auth-footnote a{color:var(--color-brand-strong);font-weight:600;text-decoration:none}.auth-footnote a:hover{text-decoration:underline}.auth-panel--form .error-banner{margin-top:18px}@keyframes auth-layout-in{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes auth-drift{0%{transform:translate(0)}to{transform:translate(24px,18px)}}@media (max-width: 820px){.auth-layout{grid-template-columns:1fr;max-width:440px}.auth-seam{display:none}.auth-panel--brand{padding:30px 28px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.auth-panel--brand:before,.auth-panel--brand:after{opacity:.6}.auth-panel__headline{margin-top:18px;max-width:none}.auth-panel__copy{max-width:none}.auth-ring{padding-top:24px}.auth-panel--form{padding:30px 28px 32px}}@media (max-width: 480px){.auth-shell{padding:0}.auth-layout{max-width:none;min-height:100dvh;border-radius:0}.auth-panel--brand{border-radius:0;padding-top:max(30px,env(safe-area-inset-top))}.auth-panel--form{padding-bottom:max(32px,env(safe-area-inset-bottom))}.auth-ring__figure{width:64px;height:64px}}@media (prefers-reduced-motion: reduce){.auth-ring__value{animation:none;stroke-dashoffset:52.8}}.field-underline input:focus,.field-underline select:focus{border-bottom-color:var(--color-brand-strong)}.field-underline input:valid:not(:placeholder-shown):not(:focus){border-bottom-color:#1e7a45}.field-underline__toggle:hover{background:#5aa2f21f}.field-underline__error{display:block;margin-top:6px;font-size:.78rem;color:#c0392b;animation:fade-up .25s ease both}.strength-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.strength-meter__bar{height:4px;border-radius:999px;background:var(--color-mist);transition:background-color .3s ease}.strength-meter[data-level="1"] .strength-meter__bar:nth-child(-n+1){background:#c0392b}.strength-meter[data-level="2"] .strength-meter__bar:nth-child(-n+2){background:#e08a1e}.strength-meter[data-level="3"] .strength-meter__bar:nth-child(-n+3){background:#5aa2f2}.strength-meter[data-level="4"] .strength-meter__bar:nth-child(-n+4){background:#1e7a45}.strength-meter__label{display:block;margin-top:6px;font-size:.75rem;color:var(--color-slate)}.btn--loading{position:relative;color:transparent;pointer-events:none}.btn--loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:18px;height:18px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.auth-form .btn--primary:not(:disabled):hover{transform:translateY(-1px)}.auth-form .btn--primary:not(:disabled):active{transform:translateY(0)}.stat-card{transition:transform .25s ease,box-shadow .25s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #14284614}.stat-card__value{font-variant-numeric:tabular-nums}.table-search{transition:border-color .2s ease,box-shadow .2s ease}.table-search:hover{border-color:var(--color-slate)}.table-search::placeholder{color:var(--color-slate);opacity:.6}.data-table th[data-sortable]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color .2s ease}.data-table th[data-sortable]:hover{color:var(--color-brand-strong)}.data-table th[data-sortable] i{margin-left:6px;font-size:.75rem;opacity:.45;transition:opacity .2s ease,transform .2s ease}.data-table th[aria-sort=ascending] i,.data-table th[aria-sort=descending] i{opacity:1;color:var(--color-brand-strong)}.data-table th[aria-sort=descending] i{transform:rotate(180deg)}.data-table tbody tr{transition:background-color .2s ease}.data-table tbody tr:hover{background:#5aa2f20f}.data-table tbody tr.row-enter{animation:fade-up .35s ease both}.status-pill--pending{background:#fdf1dc;color:#b8860f}.status-pill--active{background:#e4f0fd;color:#2a6fc0}.status-pill--overdue{background:#fbe5e2;color:#c0392b}.status-pill--draft{background:var(--color-paper);color:var(--color-slate)}.empty-state{display:grid;justify-items:center;gap:8px;padding:48px 16px;text-align:center;color:var(--color-slate);animation:fade-up .4s ease both}.empty-state i{font-size:2.2rem;color:var(--color-brand-strong);opacity:.7}.empty-state__title{margin:0;font-size:1rem;font-weight:600}.empty-state__text{margin:0;max-width:320px;font-size:.86rem}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:16px}.pagination button{min-width:36px;height:36px;border:1px solid var(--color-mist);border-radius:10px;background:var(--color-surface);color:var(--color-slate);font:inherit;font-size:.85rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,background-color .2s ease}.pagination button:hover:not(:disabled){border-color:var(--color-brand-strong);color:var(--color-brand-strong)}.pagination button[aria-current=page]{background:var(--color-brand-strong);border-color:var(--color-brand-strong);color:#fff}.pagination button:disabled{opacity:.45;cursor:not-allowed}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:1100;display:grid;gap:10px;max-width:calc(100vw - 40px)}.toast{display:flex;align-items:center;gap:10px;min-width:260px;padding:12px 16px;border-radius:12px;border-left:4px solid var(--color-brand-strong);background:var(--color-surface);box-shadow:0 14px 32px #14284624;font-size:.88rem;animation:toast-in .3s ease both}.toast--success{border-left-color:#1e7a45}.toast--success i{color:#1e7a45}.toast--error{border-left-color:#c0392b}.toast--error i{color:#c0392b}.toast--leaving{animation:toast-out .25s ease forwards}.modal{animation:modal-pop .28s cubic-bezier(.2,.8,.3,1) both}.modal-backdrop{animation:fade-in .25s ease both}.skeleton-row--short{width:60%}.skeleton-card{height:110px;border-radius:16px;background:linear-gradient(90deg,var(--color-paper) 25%,#eef3f9 50%,var(--color-paper) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.3s linear infinite}.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}.reveal.is-visible{opacity:1;transform:none}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{to{opacity:0;transform:translate(24px)}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 640px){.table-toolbar{flex-direction:column;align-items:stretch}.table-search{max-width:none}.pagination{justify-content:center}.toast-stack{right:12px;left:12px;bottom:12px}}@media (prefers-reduced-motion: reduce){.stat-card,.toast,.toast--leaving,.modal,.modal-backdrop,.empty-state,.field-underline__error,.data-table tbody tr.row-enter,.skeleton-card,.btn--loading:after{animation:none}.reveal{opacity:1;transform:none;transition:none}}.x-toast{display:flex;align-items:center;gap:10px;min-width:240px;max-width:360px;border-left:4px solid rgba(255,255,255,.55);pointer-events:auto}.x-toast i{flex-shrink:0;font-size:1rem}.x-toast--info{background:var(--primary, #4290ed)}.x-toast--warn{background:#e08a1e}.x-toast--leaving{animation:x-toast-out .22s ease-in forwards}.x-toast__close{margin-left:auto;border:0;background:transparent;color:inherit;opacity:.75;cursor:pointer;padding:2px;line-height:1;transition:opacity .2s ease}.x-toast__close:hover{opacity:1}.x-toast__progress{position:absolute;left:0;bottom:0;height:3px;width:100%;border-radius:0 0 10px 10px;background:#ffffff80;transform-origin:left;animation:x-toast-timer var(--x-toast-duration, 3s) linear forwards}.x-toast{position:relative;overflow:hidden}.x-bars{padding-top:8px}.x-bar{position:relative;cursor:default}.x-bar__fill{transition:height .5s cubic-bezier(.22,1,.36,1),opacity .2s ease}.x-bar:hover .x-bar__fill{opacity:.85}.x-bar--today .x-bar__label{font-weight:600;opacity:1;color:var(--primary, #4290ed)}.x-bar--today .x-bar__value{font-weight:600;opacity:1}.x-bar__fill--grow{animation:x-bar-grow .6s cubic-bezier(.22,1,.36,1) both;transform-origin:bottom}.x-bar__tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);padding:4px 8px;border-radius:6px;background:#141e2deb;color:#fff;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.x-bar:hover .x-bar__tip{opacity:1;transform:translate(-50%) translateY(0)}.x-heat{scrollbar-width:thin}.x-heat__cell{transition:transform .15s ease,box-shadow .15s ease}.x-heat__cell:not(.x-heat__cell--future):hover{transform:scale(1.35);box-shadow:0 0 0 2px #4290ed59}.x-heat__cell--today{box-shadow:0 0 0 1.5px var(--primary, #4290ed)}.x-heat__months{display:grid;grid-auto-flow:column;grid-auto-columns:14px;gap:4px;margin-bottom:6px;font-size:11px;opacity:.65}.x-legend .x-heat__cell{transition:none}.x-legend span:first-child{margin-right:4px}.x-legend span:last-child{margin-left:4px}.x-milestone{display:inline-flex;align-items:center;gap:6px;transition:opacity .2s ease,transform .2s ease}.x-milestone i{font-size:.8rem}.x-milestone--done{animation:x-rise .4s ease both}.x-milestone--next{opacity:.9;border-style:dashed;border-color:var(--primary, #4290ed);color:var(--primary, #4290ed)}.x-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7c8f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.x-select:hover{border-color:#8080808c}.x-select:focus{outline:none;border-color:var(--primary, #4290ed);box-shadow:0 0 0 3px #4290ed33}.x-select:focus-visible,.x-chip button:focus-visible,.x-toast__close:focus-visible,.x-roster__item--button:focus-visible{outline:2px solid var(--primary, #4290ed);outline-offset:2px}.x-roster__item--button:hover{border-color:var(--primary, #4290ed);transform:translateY(-2px);box-shadow:0 8px 20px #14284612}.x-roster__item--button:active{transform:translateY(0)}.x-roster__item--active .x-roster__name{color:var(--primary, #4290ed)}.x-chip{transition:background-color .2s ease;animation:x-rise .25s ease both}.x-chip button{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;transition:background-color .2s ease}.x-chip button:hover{background:#4290ed40}.x-chip--muted{background:#80808026;color:inherit}.x-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.x-two>*{min-width:0}.x-two--wide-left{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.x-panel{border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:14px;padding:18px;background:var(--surface, transparent);animation:x-rise .4s ease both}.x-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.x-panel__title{margin:0;font-size:15px;font-weight:600}.x-panel__sub{font-size:12px;opacity:.65}.x-bars--skeleton .x-bar__fill{background:linear-gradient(90deg,#8080801a 25%,#80808033,#8080801a 75%);background-size:200% 100%;animation:x-shimmer 1.3s linear infinite;opacity:1}@keyframes x-toast-out{to{opacity:0;transform:translate(20px)}}@keyframes x-toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes x-bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (max-width: 820px){.x-two--wide-left{grid-template-columns:1fr}}@media (max-width: 640px){.x-toasts{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}.x-toast{min-width:0;max-width:none}.x-bars{gap:6px;height:150px}.x-bar__tip{display:none}.x-two{grid-template-columns:1fr;gap:16px}.x-panel{padding:14px}}@media (prefers-reduced-motion: reduce){.x-toast,.x-toast--leaving,.x-toast__progress,.x-bar__fill--grow,.x-milestone--done,.x-chip,.x-panel,.x-bars--skeleton .x-bar__fill{animation:none}.x-bar__fill,.x-bar__tip,.x-heat__cell,.x-milestone{transition:none}.x-heat__cell:not(.x-heat__cell--future):hover,.x-roster__item--button:hover{transform:none}}.x-chart{--x-accent: var(--accent, #2c7a6b);--x-label-h: 28px;margin:0;display:flex;flex-direction:column;gap:20px}.x-chart__summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}.x-chart__total{font-size:1.75rem;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.x-chart__meta{font-size:.875rem;opacity:.65}.x-chart__legend{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;opacity:.65}.x-chart__swatch{width:16px;border-top:2px dashed var(--x-accent)}.x-chart__body{display:grid;grid-template-columns:2.25rem 1fr;gap:8px;height:220px}.x-chart__axis{position:relative;margin-bottom:var(--x-label-h)}.x-chart__axis span{position:absolute;right:0;transform:translateY(50%);font-size:.75rem;font-variant-numeric:tabular-nums;opacity:.55}.x-chart__plot{position:relative}.x-chart__grid{position:absolute;inset:0 0 var(--x-label-h) 0;pointer-events:none}.x-chart__line{position:absolute;left:0;right:0;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}.x-chart__line--goal{border-top:1.5px dashed var(--x-accent);opacity:.8}.x-bars{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(6px,2vw,16px)}.x-bar{display:flex;flex-direction:column;min-width:0;border-radius:8px;cursor:default}.x-bar:focus-visible{outline:2px solid var(--x-accent);outline-offset:2px}.x-bar__track{position:relative;flex:1;display:flex;align-items:flex-end;justify-content:center}.x-bar__fill{width:min(100%,36px);border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--x-accent) 45%,transparent);transform-origin:bottom;transition:background-color .15s ease;animation:x-grow .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i, 0) * 40ms)}.x-bar--goal .x-bar__fill,.x-bar--today .x-bar__fill{background:var(--x-accent)}.x-bar--empty .x-bar__fill{background:color-mix(in srgb,currentColor 14%,transparent);border-radius:2px}.x-bar:hover:not(.x-bar--empty) .x-bar__fill,.x-bar:focus-visible:not(.x-bar--empty) .x-bar__fill{background:var(--x-accent)}.x-bar__value{position:absolute;left:0;right:0;text-align:center;font-size:.75rem;font-weight:500;font-variant-numeric:tabular-nums;animation:x-fade .3s ease both;animation-delay:calc(var(--i, 0) * 40ms + .25s)}.x-bar__label{height:var(--x-label-h);display:flex;align-items:center;justify-content:center;font-size:.8125rem;opacity:.6}.x-bar--today .x-bar__label{opacity:1;font-weight:600}@keyframes x-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes x-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.x-bar__fill,.x-bar__value{animation:none}}@media (max-width: 480px){.x-chart__legend{margin-left:0}.x-chart__body{height:200px}.x-bar__value{font-size:.6875rem}}.x-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:24px}.x-stat{border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:14px;padding:16px 18px;background:var(--surface, transparent);display:flex;flex-direction:column;gap:4px}.x-stat__value{font-family:Fraunces,serif;font-size:28px;font-weight:600;line-height:1.1}.x-stat__label{font-size:13px;opacity:.7}.x-stat--accent{border-color:var(--primary, #4290ed)}.x-stat--accent .x-stat__value{color:var(--primary, #4290ed)}.x-timer{font-family:Fraunces,serif;font-size:40px;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;margin:4px 0 12px}.x-pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:#1f9d55;margin-right:8px;animation:x-pulse 1.6s ease-in-out infinite}@keyframes x-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.x-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.x-tab{border:1px solid var(--border, rgba(128, 128, 128, .25));background:transparent;color:inherit;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}.x-tab--active{background:var(--primary, #4290ed);border-color:var(--primary, #4290ed);color:#fff}.x-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.x-toolbar__spacer{flex:1}.x-input{border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:10px;padding:8px 12px;font:inherit;background:transparent;color:inherit;min-width:200px}.x-insight{margin-top:12px;padding:10px 14px;border-radius:10px;background:#4290ed1a;font-size:13px}.x-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.x-roster__item{display:flex;align-items:center;gap:12px;border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:12px;padding:12px 14px}.x-roster__meta{display:flex;flex-direction:column;min-width:0}.x-roster__name{font-weight:600}.x-roster__sub{font-size:12px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-age{font-size:12px;padding:2px 8px;border-radius:999px;background:#80808026}.x-age--late{background:#dc354526;color:#dc3545}.x-count{font-size:13px;opacity:.7}.x-check{width:16px;height:16px;cursor:pointer}.x-toasts{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:1000;max-width:calc(100vw - 32px)}.x-toast{padding:10px 16px;border-radius:10px;font-size:14px;color:#fff;background:#1f9d55;box-shadow:0 6px 20px #0000002e;animation:x-toast-in .2s ease-out}.x-toast--err{background:#dc3545}@keyframes x-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.x-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;height:170px}.x-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}.x-bar__value{font-size:12px;opacity:.75;font-variant-numeric:tabular-nums}.x-bar__track{flex:1;width:100%;display:flex;align-items:flex-end}.x-bar__fill{width:100%;min-height:3px;border-radius:8px 8px 3px 3px;background:var(--primary, #4290ed);opacity:.55;transition:height .3s ease}.x-bar--today .x-bar__fill{opacity:1}.x-bar__label{font-size:12px;opacity:.7}.x-heat{display:grid;grid-template-rows:repeat(7,14px);grid-auto-flow:column;grid-auto-columns:14px;gap:4px;overflow-x:auto;padding-bottom:4px}.x-heat__cell{border-radius:3px;background:#80808029}.x-heat__cell--future{background:transparent}.x-heat__cell--1{background:#4290ed4d}.x-heat__cell--2{background:#4290ed80}.x-heat__cell--3{background:#4290edbf}.x-heat__cell--4{background:#4290ed}.x-legend{display:flex;align-items:center;gap:4px;margin-top:10px;font-size:12px;opacity:.75}.x-legend .x-heat__cell{width:12px;height:12px}.x-milestones{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.x-milestone{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--border, rgba(128, 128, 128, .25));opacity:.6}.x-milestone--done{opacity:1;background:#1f9d5524;border-color:#1f9d5580;color:#1f9d55}.x-select{border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:10px;padding:8px 12px;font:inherit;background:transparent;color:inherit}.x-roster__item--button{width:100%;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.x-roster__item--active{border-color:var(--primary, #4290ed);background:#4290ed14}.x-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:999px;background:#4290ed24;color:var(--primary, #4290ed)}.x-chip button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:0}.x-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-top:24px}.avatar-badge{position:relative;width:40px;height:40px;font-size:.9rem;background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-strong) 100%);transition:transform .2s ease,box-shadow .2s ease}.avatar-badge img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.avatar-badge i{font-size:1.1em}.avatar-badge--xs{width:24px;height:24px;font-size:.62rem}.avatar-badge--sm{width:32px;height:32px;font-size:.74rem}.avatar-badge--lg{width:52px;height:52px;font-size:1.1rem}.avatar-badge--xl{width:72px;height:72px;font-size:1.5rem}.avatar-badge[data-tone="1"]{background:linear-gradient(135deg,#5aa2f2,#2a6fc0)}.avatar-badge[data-tone="2"]{background:linear-gradient(135deg,#3fb37f,#1e7a45)}.avatar-badge[data-tone="3"]{background:linear-gradient(135deg,#f0b64a,#b8860f)}.avatar-badge[data-tone="4"]{background:linear-gradient(135deg,#e5766a,#c0392b)}.avatar-badge[data-tone="5"]{background:linear-gradient(135deg,#8a7bd8,#5b4bb0)}.avatar-badge[data-tone="6"]{background:linear-gradient(135deg,#5c7a99,#34495e)}.avatar-badge--soft{background:#e4f0fd;color:var(--color-brand-deep);box-shadow:inset 0 0 0 1px #2a6fc02e}.avatar-badge--outline{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:inset 0 0 0 1.5px var(--color-brand-strong)}.avatar-badge--interactive{cursor:pointer;border:none;padding:0}.avatar-badge--interactive:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #00000024,0 8px 18px -6px #142d5466}.avatar-badge--interactive:active{transform:translateY(0)}.avatar-badge--interactive:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:3px}.avatar-badge[data-status]:after{content:"";position:absolute;right:0;bottom:0;width:28%;height:28%;min-width:8px;min-height:8px;border-radius:50%;background:var(--color-slate);border:2px solid var(--color-surface);box-sizing:content-box;transform:translate(15%,15%)}.avatar-badge[data-status=online]:after{background:#1e7a45}.avatar-badge[data-status=away]:after{background:#e08a1e}.avatar-badge[data-status=busy]:after{background:#c0392b}.avatar-badge[data-status=offline]:after{background:var(--color-mist)}.avatar-badge[data-status=online]:before{content:"";position:absolute;right:0;bottom:0;width:28%;height:28%;min-width:8px;min-height:8px;border-radius:50%;background:#1e7a45;transform:translate(15%,15%);animation:avatar-pulse 2s ease-out infinite}.avatar-badge--ring{box-shadow:inset 0 0 0 1px #00000024,0 0 0 2px var(--color-surface),0 0 0 4px var(--color-brand-strong)}.avatar-badge--skeleton{color:transparent;background:linear-gradient(90deg,var(--color-paper) 25%,#eef3f9 50%,var(--color-paper) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.3s linear infinite;box-shadow:none}.avatar-badge--count{background:var(--color-paper);color:var(--color-slate);font-size:.78rem}.avatar-group{display:inline-flex;align-items:center;padding-left:10px}.avatar-group .avatar-badge{margin-left:-10px;box-shadow:inset 0 0 0 1px #00000024,0 0 0 2px var(--color-surface);transition:transform .25s cubic-bezier(.22,1,.36,1)}.avatar-group .avatar-badge:hover{transform:translateY(-4px);z-index:2}.avatar-identity{display:flex;align-items:center;gap:12px;min-width:0}.avatar-identity__text{display:grid;min-width:0}.avatar-identity__name{font-size:.92rem;font-weight:600;color:var(--color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-identity__meta{font-size:.78rem;color:var(--color-slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-table .avatar-identity .avatar-badge{width:34px;height:34px;font-size:.78rem}@keyframes avatar-pulse{0%{box-shadow:0 0 #1e7a4573}to{box-shadow:0 0 0 8px #1e7a4500}}@media (prefers-reduced-motion: reduce){.avatar-badge,.avatar-group .avatar-badge{transition:none}.avatar-badge[data-status=online]:before,.avatar-badge--skeleton{animation:none}.avatar-badge--interactive:hover,.avatar-group .avatar-badge:hover{transform:none}}:root{--color-warning: #d9831f;--color-brand-soft: #e4f0fd;--color-success-soft: #e3f6ea;--color-danger-soft: #fbe5e2;--color-warning-soft: #fdf1dc;--border: var(--color-mist);--surface: var(--color-surface);--primary: var(--color-brand);--ease-out: cubic-bezier(.22, 1, .36, 1);--duration-fast: .15s;--duration-base: .25s;--shadow-pop: 0 1px 2px rgba(28, 39, 51, .08), 0 22px 44px -16px rgba(20, 45, 84, .45);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--container: 1200px;--z-nav: 50;--z-menu: 60;--z-modal: 1000;--z-toast: 1100}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{line-height:1.5;text-rendering:optimizeLegibility}h1{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem)}h2{font-size:clamp(1.25rem,1.05rem + .8vw,1.6rem)}h3{font-size:1.1rem}img,svg,video{max-width:100%}img{display:block}input,select,textarea,button{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{transition:color var(--duration-fast) ease}a:hover{color:var(--color-brand-deep)}:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}::selection{background:var(--color-ice);color:var(--color-brand-deep)}*{scrollbar-width:thin;scrollbar-color:var(--color-mist) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-mist);border-radius:999px;border:2px solid var(--color-paper)}::-webkit-scrollbar-thumb:hover{background:var(--color-slate)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 clamp(14px,4vw,28px)}.page{padding:var(--space-5) 0 var(--space-6);animation:fade-up .4s ease both}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.page-header p{margin-top:6px;color:var(--color-slate);font-size:.92rem}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 20px;border:1px solid transparent;border-radius:999px;font-size:.92rem;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;transition:background-color var(--duration-base) ease,border-color var(--duration-base) ease,color var(--duration-base) ease,transform var(--duration-fast) ease,box-shadow var(--duration-base) ease}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6}.btn--primary{background:var(--color-brand-strong);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-brand-deep);color:#fff}.btn--secondary{background:var(--color-ice);color:var(--color-brand-deep)}.btn--secondary:hover:not(:disabled){background:var(--color-sky);color:var(--color-brand-deep)}.btn--ghost{background:transparent;border-color:var(--color-mist);color:var(--color-ink)}.btn--ghost:hover:not(:disabled){border-color:var(--color-brand-strong);color:var(--color-brand-strong)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){background:#9a2f2a;color:#fff}.btn--sm{min-height:34px;padding:0 14px;font-size:.82rem}.btn--block{width:100%}.btn--icon{width:42px;padding:0}.btn--icon.btn--sm{width:34px}.error-banner{padding:12px 16px;border-radius:var(--radius-md);border-left:4px solid var(--color-danger);background:var(--color-danger-soft);color:#8f2b25;font-size:.88rem;animation:fade-up .3s ease both}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.stat-card{--stat-accent: var(--color-brand-strong);--stat-icon-bg: var(--color-brand-soft);--stat-icon-fg: var(--color-brand-deep);position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);border-top:3px solid var(--stat-accent);box-shadow:var(--shadow-card)}.stat-card__icon{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--stat-icon-bg);color:var(--stat-icon-fg);font-size:1.15rem}.stat-card__value{font-family:var(--font-display);font-size:1.9rem;font-weight:600;line-height:1.1}.stat-card__label{font-size:.82rem;color:var(--color-slate)}.stat-card--success{--stat-accent: var(--color-success);--stat-icon-bg: var(--color-success-soft);--stat-icon-fg: var(--color-success)}.stat-card--danger{--stat-accent: var(--color-danger);--stat-icon-bg: var(--color-danger-soft);--stat-icon-fg: var(--color-danger)}.table-wrap{overflow-x:auto;border:1px solid var(--color-mist);border-radius:var(--radius-lg);background:var(--color-surface)}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th{padding:12px 16px;text-align:left;font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-slate);background:var(--color-paper);border-bottom:1px solid var(--color-mist)}.data-table td{padding:14px 16px;border-bottom:1px solid var(--color-mist);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table__actions{display:flex;justify-content:flex-end;gap:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-4);background:#14264080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow-y:auto}.modal{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.modal__close{display:grid;place-items:center;width:34px;height:34px;border:none;border-radius:50%;background:transparent;color:var(--color-slate);font-size:1.1rem;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.modal__close:hover{background:var(--color-paper);color:var(--color-ink)}.modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}@media (max-width: 640px){.page{padding:var(--space-4) 0 var(--space-5)}.card{padding:var(--space-4);border-radius:var(--radius-md)}.stat-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.stat-card{padding:var(--space-3) var(--space-4)}.stat-card__value{font-size:1.5rem}.stat-card__icon{width:36px;height:36px}.data-table th,.data-table td{padding:10px 12px}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:90dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:max(var(--space-5),env(safe-area-inset-bottom))}.modal__footer{flex-direction:column-reverse}.modal__footer .btn{width:100%}}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.nav-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;background:var(--color-brand);color:var(--color-paper)}.nav-bar__brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.15rem;letter-spacing:.01em}.nav-bar__meta{display:flex;align-items:center;gap:18px;font-size:.9rem}.nav-bar__role{background:#faf8f629;padding:4px 10px;border-radius:999px;font-size:.78rem;text-transform:capitalize}.icon-button{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid rgba(250,248,246,.4);color:inherit;padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem}.icon-button:hover{background:#faf8f61f}.page{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:40px 32px 64px}.page__header{position:relative;display:flex;align-items:flex-start;gap:18px;margin:-40px -32px 32px;padding:34px 32px 40px;color:#eef5ff;background:linear-gradient(155deg,#5aa2f2 0%,var(--color-brand-strong) 55%,var(--color-brand-deep) 100%);overflow:hidden}.page__header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.16) 1.4px,transparent 1.4px);background-size:16px 16px;-webkit-mask-image:linear-gradient(160deg,black,transparent 70%);mask-image:linear-gradient(160deg,black,transparent 70%);pointer-events:none}.page__header:after{content:"";position:absolute;top:-60px;right:-40px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);pointer-events:none}.page__header-icon{position:relative;z-index:1;width:46px;height:46px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.page__header>div{position:relative;z-index:1}.page__header h1{font-size:1.85rem;color:#fff}.page__header p{color:#dce9fb;margin-top:6px}.grid{display:grid;gap:24px}.grid--two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:24px;transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:0 1px 2px #1c273314,0 14px 28px -12px #1c273338;transform:translateY(-1px)}.card h2{font-size:1.15rem;margin-bottom:14px;color:var(--color-brand-deep)}.card-heading{display:flex;align-items:center;gap:9px}.card-heading__icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;color:var(--color-brand-strong);background:var(--color-ice);flex-shrink:0}.stat-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:-26px 0 24px}.stat-card{position:relative;display:flex;align-items:flex-start;gap:16px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:22px 22px 20px;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--stat-accent, var(--color-brand))}.stat-card__icon{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--stat-icon-fg, var(--color-brand-strong));background:var(--stat-icon-bg, var(--color-ice))}.stat-card__value{font-family:var(--font-display);font-size:2.1rem;line-height:1;color:var(--color-ink)}.stat-card__label{color:var(--color-slate);font-size:.85rem;margin-top:5px}.stat{display:flex;flex-direction:column;gap:4px}.stat__value{font-family:var(--font-display);font-size:2.4rem;color:var(--color-brand)}.stat__label{color:var(--color-slate);font-size:.85rem}.progress-track{width:100%;height:10px;border-radius:999px;background:var(--color-mist);overflow:hidden;margin:12px 0}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-sky),var(--color-brand));border-radius:999px;transition:width .4s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:var(--radius-sm);border:none;font-size:.92rem;font-weight:500;cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-strong) 100%);color:var(--color-paper);box-shadow:0 8px 16px -8px #2f78d68c;transition:box-shadow .2s ease,transform .15s ease,background .2s ease}.btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-brand-strong) 0%,var(--color-brand-deep) 100%);box-shadow:0 10px 20px -8px #1f4f8f99;transform:translateY(-1px)}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--secondary{background:var(--color-mist);color:var(--color-ink)}.btn--danger{background:var(--color-danger);color:var(--color-paper)}.btn--ghost{background:transparent;color:var(--color-brand-strong);border:1px solid var(--color-mist)}.btn--full{width:100%}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:.85rem;color:var(--color-ink);font-weight:500}.field input,.field select,.field textarea{padding:10px 12px;border:1px solid var(--color-mist);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:var(--color-surface)}.field textarea{resize:vertical;min-height:72px}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;padding:10px 12px;color:var(--color-slate);font-weight:500;border-bottom:1px solid var(--color-mist)}.table td{padding:12px;border-bottom:1px solid #edf1f6;vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .15s ease}.table tbody tr:hover{background:#f5f9fe}.table-person{display:flex;align-items:center;gap:10px}.table-person__name{font-weight:500;color:var(--color-ink)}.avatar-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:600;font-family:var(--font-body);flex-shrink:0}.mini-progress{display:flex;flex-direction:column;gap:5px;min-width:120px}.mini-progress__track{width:100%;height:6px;border-radius:999px;background:var(--color-mist);overflow:hidden}.mini-progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--color-sky),var(--color-brand))}.mini-progress__caption{font-size:.74rem;color:var(--color-slate)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:.76rem;font-weight:500;text-transform:capitalize}.badge--open{background:var(--color-mist);color:var(--color-ink)}.badge--pending{background:var(--color-ice);color:var(--color-brand-deep)}.badge--approved{background:#d6eee2;color:var(--color-success)}.badge--rejected{background:#fbe0de;color:var(--color-danger)}.empty-state{padding:48px 24px;text-align:center;color:var(--color-slate);display:flex;flex-direction:column;align-items:center;gap:10px}.empty-state__icon{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-brand-strong);background:var(--color-ice);margin-bottom:4px}.empty-state strong{font-family:var(--font-display);font-weight:600;color:var(--color-ink);font-size:1rem}.empty-state span{font-size:.86rem;max-width:32ch}.error-banner{background:#fbe0de;color:var(--color-danger);padding:10px 14px;border-radius:var(--radius-sm);font-size:.86rem;margin-bottom:16px}.photo-capture{border:1px dashed var(--color-mist);border-radius:var(--radius-md);padding:18px;text-align:center}.photo-capture img{max-width:100%;max-height:220px;border-radius:var(--radius-sm);margin-top:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c27338c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:40}.modal{background:var(--color-surface);border-radius:var(--radius-md);max-width:480px;width:100%;padding:28px;max-height:90vh;overflow-y:auto}.modal h2{margin-bottom:16px;color:var(--color-brand-deep)}.modal img{width:100%;border-radius:var(--radius-sm);margin-bottom:12px}.modal-actions{display:flex;gap:10px;margin-top:20px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.subtle-text{color:var(--color-slate);font-size:.85rem}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll .table{min-width:560px}.section-title{flex-wrap:wrap;gap:12px}.modal-actions{flex-wrap:wrap}.btn{min-height:44px}.nav-bar{padding-top:max(18px,env(safe-area-inset-top))}@media (max-width: 720px){.nav-bar{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));gap:10px}.nav-bar__brand{font-size:1rem}.nav-bar__meta{gap:8px}.nav-bar__meta>span:first-child{display:none}.icon-button{padding:8px 10px}.page{padding:24px 16px 48px}.page__header{margin:-24px -16px 20px;padding:26px 16px 32px;gap:12px}.page__header-icon{width:38px;height:38px;border-radius:11px}.page__header h1{font-size:1.5rem}.stat-grid{gap:14px;margin-top:-20px}.stat-card{padding:18px}.grid{gap:16px}.card{padding:18px}.stat__value{font-size:2rem}.field input,.field select,.field textarea{font-size:16px;min-height:44px}.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));max-height:92vh}.modal-actions .btn{flex:1 1 100%}.section-title .tag-row{width:100%}.section-title .tag-row .btn{flex:1 1 auto}.photo-capture .btn{width:100%}}
