@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-font-weight:initial;--tw-tracking:initial;--tw-leading:initial}}}@layer utilities{.theme-page-shell{background-color:hsl(var(--app))}.theme-panel{background-color:hsl(var(--panel));border-color:hsl(var(--line));border-style:solid;border-width:1px}.theme-card{background-color:hsl(var(--surface));border-color:hsl(var(--line-soft));border-radius:var(--radius-md);border-style:solid;border-width:1px}.theme-card-muted{background-color:hsl(var(--panel));border-color:hsl(var(--line-soft));border-radius:var(--radius-md);border-style:solid;border-width:1px}.theme-sidebar-card{background-color:hsl(var(--panel-2));border-color:hsl(var(--line-soft));border-radius:var(--radius-md);border-style:solid;border-width:1px}.theme-input,.theme-select{background-color:hsl(var(--surface));border-color:hsl(var(--line));color:hsl(var(--fg))}.theme-tab{color:hsl(var(--fg-muted))}.theme-tab-active{color:hsl(var(--fg));border-color:hsl(var(--accent))}.theme-badge-info{background-color:hsl(var(--info-soft));color:hsl(var(--info-strong));border-color:#0000}.theme-badge-success{background-color:hsl(var(--success-soft));color:hsl(var(--success-strong));border-color:#0000}.theme-badge-warning{background-color:hsl(var(--warning-soft));color:hsl(var(--warning-strong));border-color:#0000}.theme-badge-critical{background-color:hsl(var(--danger-soft));color:hsl(var(--danger-strong));border-color:#0000}.theme-callout-info{background-color:hsl(var(--info-soft));border-color:hsl(var(--info-strong));color:hsl(var(--info-strong))}.theme-callout-success{background-color:hsl(var(--success-soft));border-color:hsl(var(--success));color:hsl(var(--success-strong))}.theme-callout-warning{background-color:hsl(var(--warning-soft));border-color:hsl(var(--warning));color:hsl(var(--warning-strong))}.theme-callout-error{background-color:hsl(var(--danger-soft));border-color:hsl(var(--critical));color:hsl(var(--danger-strong))}.theme-focus-ring:focus-visible{outline:2px solid hsl(var(--accent));outline-offset:2px}.page-card{background-color:hsl(var(--surface));border:1px solid hsl(var(--line-soft));border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:1.5rem;transition:box-shadow .15s,border-color .15s}.page-card:hover{box-shadow:var(--shadow-low);border-color:hsl(var(--line))}.page-card-elevated{background-color:hsl(var(--surface));border:1px solid hsl(var(--line-soft));border-left-width:4px;border-left-color:hsl(var(--accent));border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:1.5rem;transition:box-shadow .15s,border-color .15s}.page-card-elevated:hover{box-shadow:var(--shadow-low);border-color:hsl(var(--line))}.page-card-empty{background-color:hsl(var(--surface));border:1px dashed hsl(var(--line));border-radius:var(--radius-md);box-shadow:var(--shadow-low);padding:1.5rem}.page-card-stat{background-color:hsl(var(--panel));border:1px solid hsl(var(--line-soft));border-radius:var(--radius-md);box-shadow:var(--shadow-card);transition:box-shadow .15s,border-color .15s}.command-strip-tile{background-color:hsl(var(--panel));border:1px solid hsl(var(--line-soft));border-radius:var(--radius-sm)}.action-dock{border-top:1px solid hsl(var(--line-soft));padding-top:.5rem}.stock-fill-track{background-color:hsl(var(--muted));border-radius:9999px;width:100%;height:.5rem;overflow:hidden}.stock-fill-meter{border-radius:9999px;height:100%;transition:width .2s}.stock-fill-safe{background-color:hsl(var(--success))}.stock-fill-warning{background-color:hsl(var(--warning))}.stock-fill-danger{background-color:hsl(var(--danger))}.protocol-action-dock{border-top:1px solid hsl(var(--line-soft));padding-top:.75rem}.muted-panel{background-color:hsl(var(--panel));border:1px solid hsl(var(--line));border-radius:var(--radius-md);padding:.75rem}.interactive-row{border-radius:var(--radius-sm);padding:.5rem;transition:background-color .15s}.interactive-row:hover,.interactive-row:focus-within{background-color:hsl(var(--panel))}.sidebar-shell{background-color:hsl(var(--surface));border:1px solid hsl(var(--line-soft));border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.sidebar-header{border-bottom:1px solid hsl(var(--line-soft));padding:1rem}.sidebar-section{padding:1.5rem}.page-title{letter-spacing:-.03em;color:hsl(var(--fg));font-size:1.5rem;font-weight:600;line-height:1.25}.page-subtitle{color:hsl(var(--fg-muted));margin-top:.25rem;font-size:.875rem;line-height:1.5}.section-heading{color:hsl(var(--fg));font-size:1rem;font-weight:600}.subsection-heading{color:hsl(var(--fg));font-size:.875rem;font-weight:600}.helper-text{color:hsl(var(--fg-muted));font-size:.75rem}.badge-pill{border-radius:.375rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500}.badge-section{border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.badge-status{border-radius:9999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.filter-control{border:1px solid hsl(var(--line-soft));background-color:hsl(var(--surface));height:2.25rem;color:hsl(var(--fg));border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.quick-action-btn{background-color:hsl(var(--panel));border:1px solid hsl(var(--line-soft));border-radius:var(--radius-sm);padding:.75rem;transition:background-color .15s,border-color .15s}.quick-action-btn:hover{background-color:hsl(var(--panel-2))}:where(.stack-sm>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.stack-md>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.stack-lg>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.section-gap>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.card-stack>:not(:last-child)),:where(.form-group>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.field-stack>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 3) * calc(1 - var(--tw-space-y-reverse)))}.chip-group-tight{gap:calc(var(--spacing,.25rem) * 1);flex-wrap:wrap;display:flex}.chip-group{gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.filter-bar-row{align-items:center;gap:calc(var(--spacing,.25rem) * 3);flex-wrap:wrap;display:flex}.filter-bar-row-dense{align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.type-page-title{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);--tw-tracking:var(--tracking-tight,-.025em);letter-spacing:var(--tracking-tight,-.025em);color:hsl(var(--fg) / 1)}.type-section-title{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:hsl(var(--fg) / 1)}.type-card-title{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:hsl(var(--fg) / 1)}.type-body{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height,calc(1.5 / 1)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:hsl(var(--fg) / 1)}.type-body-secondary{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:hsl(var(--muted-foreground) / 1)}.type-caption{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:hsl(var(--muted-foreground) / 1)}.type-label{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:hsl(var(--fg) / 1)}.type-table{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.type-dense{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.type-metric{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:hsl(var(--fg) / 1)}.bg-dot-grid{background-image:radial-gradient(circle at 1px 1px, var(--dot-grid-color) 1px, transparent 0);background-size:var(--dot-grid-size) var(--dot-grid-size)}.gradient-hero-shell{background:var(--gradient-hero)}.surface-inverse{background:var(--gradient-cta-inverse);color:hsl(var(--fg-on-inverse))}.surface-interactive{transition:all .15s}.surface-interactive-hover:hover{box-shadow:0 10px 24px hsl(var(--fg) / .08);transform:translateY(-1px)}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}
@layer utilities;
@layer utilities{.touch-target{min-width:44px;min-height:44px}.keyboard-aware{padding-bottom:var(--keyboard-height)}.mobile-safe-area{padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.mobile-interaction{transform-origin:50%;transition:all .2s cubic-bezier(.4,0,.2,1)}.mobile-interaction:active{transform:scale(.95)}.touch-feedback{transform-origin:50%;transition:all .15s cubic-bezier(.4,0,.2,1)}.touch-feedback:active{transform:scale(.95)}.safe-area-pt{padding-top:env(safe-area-inset-top)}.safe-area-pb{padding-bottom:env(safe-area-inset-bottom)}.safe-area-pl{padding-left:env(safe-area-inset-left)}.safe-area-pr{padding-right:env(safe-area-inset-right)}.nav-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-transition-enter{opacity:0;transform:translate(100%)}.nav-transition-enter-active,.nav-transition-exit{opacity:1;transform:translate(0)}.nav-transition-exit-active{opacity:0;transform:translate(-100%)}.segmented-control{background-color:hsl(var(--muted));border-radius:.5rem;padding:.25rem;display:flex}.segmented-control button{border-radius:.375rem;flex:1;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:all .15s ease-out}.segmented-control button[aria-selected=true]{background-color:hsl(var(--background));color:hsl(var(--foreground));box-shadow:0 1px 2px #0000000d}.segmented-control button[aria-selected=false]{color:hsl(var(--muted-foreground))}.segmented-control button[aria-selected=false]:hover{color:hsl(var(--foreground))}.pull-indicator{position:relative;overflow:hidden}.pull-indicator:before{content:"";background:hsl(var(--primary) / .1);border-radius:50%;width:0;height:0;transition:width .3s ease-out,height .3s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pull-indicator:active:before{width:200px;height:200px}}
@layer utilities{.dose-card-taken{color:#15803d;background-color:#22c55e1a;border:1px solid #22c55e4d}.dose-card-pending{color:#c2410c;background-color:#f973161a;border:1px solid #f973164d}.syringe-visual{background:linear-gradient(90deg,#f97316 0%,#ea580c 100%);border-radius:8px;box-shadow:0 4px 12px #f973164d}@keyframes bounce-once{0%{transform:rotate(-10deg)}50%{transform:rotate(20deg)}to{transform:rotate(0)}}.animate-bounce-once{animation:1.2s ease-out forwards bounce-once}.spring-item{transition:transform .6s cubic-bezier(.34,1.56,.64,1),opacity .6s cubic-bezier(.34,1.56,.64,1)}}