:root{--sp-primary: #1976d2;--sp-primary-light: #42a5f5;--sp-primary-dark: #1565c0;--sp-accent: #ff9800;--sp-accent-light: #ffb74d;--sp-accent-dark: #f57c00;--sp-success: #4caf50;--sp-warning: #ff9800;--sp-error: #f44336;--sp-info: #2196f3;--sp-correction: #9c27b0;--sp-bg-primary: #ffffff;--sp-bg-secondary: #f5f5f5;--sp-bg-tertiary: #eeeeee;--sp-bg-elevated: #ffffff;--sp-text-primary: #212121;--sp-text-secondary: #757575;--sp-text-disabled: #9e9e9e;--sp-text-inverse: #ffffff;--sp-border-color: #e0e0e0;--sp-border-radius-sm: 4px;--sp-border-radius-md: 8px;--sp-border-radius-lg: 12px;--sp-border-radius-xl: 16px;--sp-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--sp-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--sp-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--sp-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--sp-spacing-xs: 4px;--sp-spacing-sm: 8px;--sp-spacing-md: 16px;--sp-spacing-lg: 24px;--sp-spacing-xl: 32px;--sp-spacing-2xl: 48px;--sp-sidebar-width: 260px;--sp-sidebar-collapsed-width: 64px;--sp-navbar-height: 56px;--sp-mobile-nav-height: 56px;--sp-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--sp-font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--sp-font-size-xs: .75rem;--sp-font-size-sm: .875rem;--sp-font-size-md: 1rem;--sp-font-size-lg: 1.125rem;--sp-font-size-xl: 1.25rem;--sp-font-size-2xl: 1.5rem;--sp-font-size-3xl: 2rem;--sp-transition-fast: .15s ease;--sp-transition-normal: .25s ease;--sp-transition-slow: .35s ease;--sp-z-dropdown: 100;--sp-z-sidebar: 200;--sp-z-navbar: 300;--sp-z-modal: 400;--sp-z-toast: 500;--sp-border: var(--sp-border-color);--sp-bg-card: var(--sp-bg-elevated);--sp-bg-hover: var(--sp-bg-secondary);--sp-danger: var(--sp-error);--sp-radius-sm: var(--sp-border-radius-sm);--sp-radius-md: var(--sp-border-radius-md);--sp-radius-lg: var(--sp-border-radius-lg);--sp-radius-xl: var(--sp-border-radius-xl);--sp-radius-full: 999px;--sp-primary-bg: rgba(25, 118, 210, .08);--sp-primary-hover: var(--sp-primary-dark);--sp-bg: var(--sp-bg-primary);--sp-bg-subtle: var(--sp-bg-secondary);--sp-spacing-2xs: 2px;--sp-success-bg: color-mix(in srgb, var(--sp-success) 12%, transparent);--sp-success-text: #1b5e20;--sp-warning-bg: color-mix(in srgb, var(--sp-warning) 14%, transparent);--sp-warning-text: #7a3e00;--sp-error-bg: color-mix(in srgb, var(--sp-error) 10%, transparent);--sp-error-text: #b71c1c;--sp-error-light: var(--sp-error-bg);--sp-info-bg: color-mix(in srgb, var(--sp-info) 10%, transparent);--sp-info-text: #0d47a1;--sp-motion-spring: linear(0, .077, .248, .45, .639, .795, .912, .989, 1.034, 1.054, 1.058, 1.052, 1.042, 1.03, 1.019, 1.01, 1.004, 1, .998, .997, .997, .997, .998, .998, 1);--sp-motion-spring-duration: .46s;--sp-motion-reveal-duration: .5s;--sp-motion-reveal-stagger: .4s;--sp-motion-reveal-ease: cubic-bezier(0, 0, .58, 1);--sp-motion-roll-duration: .9s;--sp-motion-roll-ease: linear(0, .0033 .8%, .0263 2.39%, .0896 4.77%, .4676 15.12%, .5688, .6553, .7274, .7862, .8336 31.04%, .8793, .9132 38.99%, .9421 43.77%, .9642 49.34%, .9796 55.71%, .9893 62.87%, .9952 71.62%, .9983 82.76%, .9996 99.47%);--sp-motion-collapse-duration: .6s;--sp-motion-collapse-ease: cubic-bezier(.22, 1, .36, 1);--sp-focus-ring: 2px solid var(--sp-primary);--sp-focus-offset: 2px}[data-theme=dark]{--sp-primary: #7c9ef5;--sp-primary-light: #a8c1ff;--sp-primary-dark: #5a7ee0;--sp-accent: #ffb74d;--sp-accent-light: #ffcc80;--sp-accent-dark: #ff9800;--sp-bg-primary: #181c27;--sp-bg-secondary: #21263a;--sp-bg-tertiary: #2b3150;--sp-bg-elevated: #252b3d;--sp-text-primary: #e4e8f7;--sp-text-secondary: #8e98b8;--sp-text-disabled: #525a7a;--sp-text-inverse: #181c27;--sp-border-color: #2e3452;--sp-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--sp-shadow-md: 0 4px 6px rgba(0, 0, 0, .5);--sp-shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--sp-shadow-xl: 0 20px 25px rgba(0, 0, 0, .6);--sp-primary-bg: rgba(124, 158, 245, .1);--sp-success-text: #a5d6a7;--sp-warning-text: #ffcc80;--sp-error-text: #ef9a9a;--sp-info-text: #90caf9}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--sp-font-family);font-size:var(--sp-font-size-md);line-height:1.5;color:var(--sp-text-primary);background-color:var(--sp-bg-primary);min-height:100vh;transition:background-color var(--sp-transition-normal),color var(--sp-transition-normal)}a{color:var(--sp-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}:focus-visible{outline:var(--sp-focus-ring);outline-offset:var(--sp-focus-offset)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:767px){.sp-hide-mobile{display:none!important}}@media(min-width:768px){.sp-show-mobile{display:none!important}}.sp-container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--sp-spacing-md)}.sp-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sp-card{background:var(--sp-bg-elevated);border-radius:var(--sp-border-radius-lg);border:1px solid var(--sp-border-color);box-shadow:var(--sp-shadow-sm);padding:var(--sp-spacing-lg)}.sp-page-header{margin-bottom:var(--sp-spacing-xl)}.sp-page-header__title{font-size:var(--sp-font-size-2xl);font-weight:700;letter-spacing:-.01em;color:var(--sp-text-primary);margin:0}.sp-page-header__subtitle{font-size:var(--sp-font-size-sm);color:var(--sp-text-secondary);margin:var(--sp-spacing-xs) 0 0}.sp-text-center{text-align:center}.sp-text-left{text-align:left}.sp-text-right{text-align:right}.sp-text-primary{color:var(--sp-text-primary)}.sp-text-secondary{color:var(--sp-text-secondary)}.sp-text-disabled{color:var(--sp-text-disabled)}.sp-flex{display:flex}.sp-flex-col{flex-direction:column}.sp-flex-wrap{flex-wrap:wrap}.sp-items-center{align-items:center}.sp-items-start{align-items:flex-start}.sp-items-end{align-items:flex-end}.sp-justify-center{justify-content:center}.sp-justify-between{justify-content:space-between}.sp-justify-end{justify-content:flex-end}.sp-gap-xs{gap:var(--sp-spacing-xs)}.sp-gap-sm{gap:var(--sp-spacing-sm)}.sp-gap-md{gap:var(--sp-spacing-md)}.sp-gap-lg{gap:var(--sp-spacing-lg)}.sp-mt-sm{margin-top:var(--sp-spacing-sm)}.sp-mt-md{margin-top:var(--sp-spacing-md)}.sp-mt-lg{margin-top:var(--sp-spacing-lg)}.sp-mb-sm{margin-bottom:var(--sp-spacing-sm)}.sp-mb-md{margin-bottom:var(--sp-spacing-md)}.sp-mb-lg{margin-bottom:var(--sp-spacing-lg)}.sp-p-sm{padding:var(--sp-spacing-sm)}.sp-p-md{padding:var(--sp-spacing-md)}.sp-p-lg{padding:var(--sp-spacing-lg)}.sp-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-spacing-sm);padding:var(--sp-spacing-sm) var(--sp-spacing-md);font-size:var(--sp-font-size-sm);font-weight:500;font-family:inherit;border-radius:var(--sp-border-radius-md);transition:all var(--sp-transition-fast);min-height:40px;border:none;cursor:pointer;text-decoration:none;line-height:1;vertical-align:middle}.sp-button--sm{min-height:32px;padding:4px var(--sp-spacing-sm);font-size:var(--sp-font-size-xs);gap:4px}.sp-button--primary{background:var(--sp-primary);color:var(--sp-text-inverse)}.sp-button--primary:hover:not(:disabled){background:var(--sp-primary-dark)}.sp-button--secondary{background:transparent;color:var(--sp-primary);border:1px solid var(--sp-primary)}.sp-button--secondary:hover:not(:disabled){background:var(--sp-primary);color:var(--sp-text-inverse)}.sp-button--ghost{background:transparent;color:var(--sp-text-primary)}.sp-button--ghost:hover:not(:disabled){background:var(--sp-bg-secondary)}.sp-button--danger{background:var(--sp-error);color:#fff}.sp-button--danger:hover:not(:disabled){background:#c62828}.sp-button--danger-ghost{background:transparent;color:var(--sp-error)}.sp-button--danger-ghost:hover:not(:disabled){background:#f4433614}.sp-button--view{background:color-mix(in srgb,var(--sp-primary) 12%,transparent);color:var(--sp-primary);border:1px solid color-mix(in srgb,var(--sp-primary) 35%,transparent);font-weight:600}.sp-button--view:hover:not(:disabled){background:var(--sp-primary);color:var(--sp-text-inverse);border-color:transparent;box-shadow:0 2px 8px color-mix(in srgb,var(--sp-primary) 40%,transparent)}.sp-button--edit{background:color-mix(in srgb,var(--sp-warning) 12%,transparent);color:color-mix(in srgb,var(--sp-warning) 75%,#000);border:1px solid color-mix(in srgb,var(--sp-warning) 40%,transparent);font-weight:600}.sp-button--edit:hover:not(:disabled){background:var(--sp-warning);color:#fff;border-color:transparent;box-shadow:0 2px 8px color-mix(in srgb,var(--sp-warning) 40%,transparent)}[data-theme=dark] .sp-button--edit{color:color-mix(in srgb,var(--sp-warning) 90%,#fff)}.sp-button:disabled{opacity:.5;cursor:not-allowed}.sp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--sp-border-radius-md);color:var(--sp-text-secondary);transition:all var(--sp-transition-fast);background:transparent;border:none;cursor:pointer}.sp-icon-btn:hover{background:var(--sp-bg-secondary);color:var(--sp-text-primary)}.sp-input{width:100%;padding:var(--sp-spacing-sm) var(--sp-spacing-md);font-size:var(--sp-font-size-md);border:1px solid var(--sp-border-color);border-radius:var(--sp-border-radius-md);background:var(--sp-bg-primary);color:var(--sp-text-primary);transition:border-color var(--sp-transition-fast),box-shadow var(--sp-transition-fast)}.sp-input:focus{outline:none;border-color:var(--sp-primary);box-shadow:0 0 0 3px #1976d21a}.sp-input::placeholder{color:var(--sp-text-disabled)}.sp-input--error{border-color:var(--sp-error)}.sp-input--error:focus{box-shadow:0 0 0 3px #f443361a}.sp-input--with-icon{padding-left:36px}.sp-textarea{resize:vertical;min-height:72px;line-height:1.5}.sp-label{font-size:var(--sp-font-size-sm);font-weight:500;color:var(--sp-text-primary)}.sp-form-error{font-size:var(--sp-font-size-xs);color:var(--sp-error)}.sp-input-wrap{position:relative}.sp-input-wrap .sp-input-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--sp-text-disabled);pointer-events:none}.sp-form-group{display:flex;flex-direction:column;gap:var(--sp-spacing-xs);margin-bottom:var(--sp-spacing-md)}.sp-form-group:last-child{margin-bottom:0}.sp-form-group label{font-size:var(--sp-font-size-sm);font-weight:500;color:var(--sp-text-primary)}.sp-form-group .sp-hint{font-size:var(--sp-font-size-xs);color:var(--sp-text-secondary)}.sp-form-group .sp-error{font-size:var(--sp-font-size-xs);color:var(--sp-error)}.sp-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-spacing-md)}@media(max-width:480px){.sp-form-row{grid-template-columns:1fr}}.sp-table-wrap{overflow-x:auto;border-radius:var(--sp-border-radius-lg);border:1px solid var(--sp-border-color)}.sp-table{width:100%;border-collapse:collapse;font-size:var(--sp-font-size-sm)}.sp-table thead{background:var(--sp-bg-secondary);border-bottom:1px solid var(--sp-border-color)}.sp-table thead th{padding:10px 16px;text-align:left;font-weight:600;font-size:var(--sp-font-size-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--sp-text-secondary);white-space:nowrap}.sp-table thead th.sp-table__th--right{text-align:right}.sp-table thead th.sp-table__th--center{text-align:center}.sp-table tbody tr{border-bottom:1px solid var(--sp-border-color);transition:background var(--sp-transition-fast),box-shadow var(--sp-transition-fast)}.sp-table tbody tr:last-child{border-bottom:none}.sp-table tbody tr:hover{background:var(--sp-bg-secondary);box-shadow:inset 3px 0 0 var(--sp-primary)}.sp-table tbody tr.sp-table__row--clickable{cursor:pointer}.sp-table tbody td{padding:12px 16px;color:var(--sp-text-primary);vertical-align:middle}.sp-table tbody td.sp-table__td--right{text-align:right}.sp-table tbody td.sp-table__td--center{text-align:center}.sp-table tbody td.sp-table__td--mono{font-family:var(--sp-font-mono);font-size:var(--sp-font-size-xs)}.sp-table tbody td.sp-table__td--muted{color:var(--sp-text-secondary)}.sp-table__actions{white-space:nowrap;width:1%;padding-right:var(--sp-spacing-md);vertical-align:middle}.sp-table__action-group{display:flex;align-items:center;gap:var(--sp-spacing-xs);justify-content:flex-end}@media(max-width:767px){.sp-table-wrap--responsive{border:none;border-radius:0;overflow-x:visible;background:transparent}.sp-table-wrap--responsive .sp-table thead{display:none}.sp-table-wrap--responsive .sp-table tbody tr{display:block;background:var(--sp-bg-elevated);border:1px solid var(--sp-border-color);border-radius:var(--sp-border-radius-lg);margin-bottom:var(--sp-spacing-md);box-shadow:var(--sp-shadow-sm)}.sp-table-wrap--responsive .sp-table tbody tr:hover{background:var(--sp-bg-elevated)}.sp-table-wrap--responsive .sp-table tbody tr:last-child{margin-bottom:0}.sp-table-wrap--responsive .sp-table tbody td{display:flex;justify-content:space-between;align-items:flex-start;padding:10px var(--sp-spacing-md);border-bottom:1px solid var(--sp-border-color);gap:var(--sp-spacing-md);width:100%}.sp-table-wrap--responsive .sp-table tbody td:last-child{border-bottom:none}.sp-table-wrap--responsive .sp-table tbody td:before{content:attr(data-label);font-size:var(--sp-font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--sp-text-secondary);text-align:left;flex-shrink:0;padding-top:2px}.sp-table-wrap--responsive .sp-table tbody td[data-label=""]{justify-content:flex-end}.sp-table-wrap--responsive .sp-table tbody td[data-label=""]:before{display:none}}body.sp-panel-open{overflow:hidden}.sp-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:calc(var(--sp-z-modal) - 10);animation:sp-fade-in var(--sp-transition-fast) ease}.sp-slide-over{position:fixed;top:0;right:0;bottom:0;width:min(600px,100vw);background:var(--sp-bg-elevated);border-left:1px solid var(--sp-border-color);box-shadow:var(--sp-shadow-xl);z-index:var(--sp-z-modal);display:flex;flex-direction:column;animation:sp-slide-in var(--sp-transition-normal) cubic-bezier(.16,1,.3,1);overflow:hidden}.sp-slide-over--wide{width:min(780px,100vw)}.sp-slide-over__header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-spacing-md) var(--sp-spacing-lg);border-bottom:1px solid var(--sp-border-color);flex-shrink:0}.sp-slide-over__title{font-size:var(--sp-font-size-lg);font-weight:600;color:var(--sp-text-primary);margin:0}.sp-slide-over__subtitle{font-size:var(--sp-font-size-sm);color:var(--sp-text-secondary);margin:2px 0 0}.sp-slide-over__body{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--sp-spacing-lg);min-width:0}.sp-slide-over__footer{padding:var(--sp-spacing-md) var(--sp-spacing-lg);border-top:1px solid var(--sp-border-color);display:flex;gap:var(--sp-spacing-sm);justify-content:flex-end;flex-shrink:0}.sp-modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--sp-z-modal);display:flex;align-items:center;justify-content:center;padding:var(--sp-spacing-md);animation:sp-fade-in var(--sp-transition-fast) ease}.sp-modal{background:var(--sp-bg-elevated);border-radius:var(--sp-border-radius-xl);border:1px solid var(--sp-border-color);box-shadow:var(--sp-shadow-xl);width:100%;max-width:540px;max-height:90vh;display:flex;flex-direction:column;animation:sp-scale-in var(--sp-transition-normal) cubic-bezier(.16,1,.3,1)}.sp-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-spacing-lg);border-bottom:1px solid var(--sp-border-color);flex-shrink:0}.sp-modal__title{font-size:var(--sp-font-size-xl);font-weight:600;color:var(--sp-text-primary);margin:0}.sp-modal__body{flex:1;overflow-y:auto;padding:var(--sp-spacing-lg)}.sp-modal__footer{display:flex;gap:var(--sp-spacing-sm);justify-content:flex-end;padding:var(--sp-spacing-md) var(--sp-spacing-lg);border-top:1px solid var(--sp-border-color);flex-shrink:0}.sp-modal__text{font-size:var(--sp-font-size-md);color:var(--sp-text-secondary);line-height:1.6;margin-bottom:var(--sp-spacing-sm)}.sp-modal__target{font-size:var(--sp-font-size-md);font-weight:600;color:var(--sp-text-primary)}.sp-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;font-size:var(--sp-font-size-xs);font-weight:600;letter-spacing:.02em;border-radius:999px;white-space:nowrap}.sp-badge--success{background:#4caf501f;color:#2e7d32}.sp-badge--warning{background:#ff98001f;color:#e65100}.sp-badge--danger{background:#f443361f;color:#c62828}.sp-badge--info{background:#2196f31f;color:#1565c0}.sp-badge--neutral{background:var(--sp-bg-tertiary);color:var(--sp-text-secondary)}.sp-badge--purple{background:#9c27b01f;color:#6a1b9a}[data-theme=dark] .sp-badge--success{background:#4caf5033;color:#81c784}[data-theme=dark] .sp-badge--warning{background:#ff980033;color:#ffb74d}[data-theme=dark] .sp-badge--danger{background:#f4433633;color:#ef9a9a}[data-theme=dark] .sp-badge--info{background:#7c9ef533;color:#a8c1ff}[data-theme=dark] .sp-badge--purple{background:#9c27b033;color:#ce93d8}.sp-progress{width:100%;height:6px;background:var(--sp-bg-tertiary);border-radius:999px;overflow:hidden}.sp-progress--lg{height:10px}.sp-progress--sm{height:4px}.sp-progress__fill{height:100%;border-radius:999px;background:var(--sp-primary);transform-origin:left center;animation:sp-grow-x var(--sp-motion-roll-duration) var(--sp-motion-roll-ease) both;transition:width var(--sp-motion-roll-duration) var(--sp-motion-roll-ease)}.sp-progress--info .sp-progress__fill{background:var(--sp-primary)}.sp-progress--warning .sp-progress__fill{background:var(--sp-warning)}.sp-progress--danger .sp-progress__fill{background:var(--sp-error)}.sp-progress--success .sp-progress__fill{background:var(--sp-success)}.sp-timeline{display:flex;flex-direction:column;gap:0}.sp-timeline__item{display:flex;gap:var(--sp-spacing-md);padding-bottom:var(--sp-spacing-md);position:relative}.sp-timeline__item:before{content:"";position:absolute;left:15px;top:28px;bottom:0;width:1px;background:var(--sp-border-color)}.sp-timeline__item:last-child:before{display:none}.sp-timeline__dot{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;z-index:1}.sp-timeline__dot--execution{background:#2196f326;color:#1565c0}.sp-timeline__dot--reversal{background:#ff980026;color:#e65100}.sp-timeline__dot--adjustment{background:#9c27b026;color:#6a1b9a}.sp-timeline__content{flex:1;min-width:0}.sp-timeline__header,.sp-timeline__meta{display:flex;align-items:center;gap:var(--sp-spacing-sm);flex-wrap:wrap;margin-bottom:4px}.sp-timeline__qty{font-size:var(--sp-font-size-md);font-weight:700;color:var(--sp-text-primary)}.sp-timeline__date{font-size:var(--sp-font-size-xs);color:var(--sp-text-disabled);margin-left:auto}.sp-timeline__time{font-size:var(--sp-font-size-xs);color:var(--sp-text-disabled);display:block;margin-top:2px}.sp-timeline__reason,.sp-timeline__note{font-size:var(--sp-font-size-sm);color:var(--sp-text-secondary);line-height:1.4;margin:4px 0}.sp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-spacing-md);padding:var(--sp-spacing-2xl) var(--sp-spacing-xl);text-align:center;color:var(--sp-text-secondary)}.sp-empty svg{opacity:.3}.sp-empty--sm{padding:var(--sp-spacing-xl) var(--sp-spacing-lg);gap:var(--sp-spacing-sm)}.sp-empty__title{font-size:var(--sp-font-size-lg);font-weight:600;color:var(--sp-text-primary)}.sp-empty__text{font-size:var(--sp-font-size-md);font-weight:500;color:var(--sp-text-primary);margin:0}.sp-empty__desc,.sp-empty__sub{font-size:var(--sp-font-size-sm);color:var(--sp-text-secondary);max-width:340px;line-height:1.6;margin:0}@keyframes sp-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sp-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-scale-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes sp-spin{to{transform:rotate(360deg)}}.sp-spinner{width:20px;height:20px;border:2px solid var(--sp-border-color);border-top-color:var(--sp-primary);border-radius:50%;animation:sp-spin .7s linear infinite}.sp-spinner--sm{width:14px;height:14px}.sp-alert{display:flex;align-items:flex-start;gap:var(--sp-spacing-sm);padding:var(--sp-spacing-sm) var(--sp-spacing-md);border-radius:var(--sp-radius-sm);border-left:3px solid currentColor;font-size:var(--sp-font-size-sm);line-height:1.45}.sp-alert--error{color:var(--sp-error-text);background:var(--sp-error-bg)}.sp-alert--warning{color:var(--sp-warning-text);background:var(--sp-warning-bg)}.sp-alert--success{color:var(--sp-success-text);background:var(--sp-success-bg)}.sp-alert--info{color:var(--sp-info-text);background:var(--sp-info-bg)}.sp-alert__body{flex:1}.sp-alert__action{flex-shrink:0;font-weight:600;color:inherit;text-decoration:underline}.sp-stat{border-radius:var(--sp-radius-md);padding:var(--sp-spacing-md) var(--sp-spacing-lg);display:flex;flex-direction:column;gap:var(--sp-spacing-xs);border:1px solid var(--sp-border-color);background:var(--sp-bg-elevated);color:var(--sp-text-primary)}.sp-stat--success,.sp-stat--warning,.sp-stat--danger{border-left-width:3px}.sp-stat--success{border-left-color:var(--sp-success)}.sp-stat--warning{border-left-color:var(--sp-warning)}.sp-stat--danger{border-left-color:var(--sp-error)}.sp-stat__label{font-size:var(--sp-font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sp-text-secondary)}.sp-stat__value{font-size:var(--sp-font-size-3xl);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--sp-text-primary)}.sp-stat__sub{font-size:var(--sp-font-size-xs);color:var(--sp-text-secondary)}.sp-reveal{opacity:0;transform:translateY(-20px);filter:blur(10px);transition:opacity var(--sp-motion-reveal-duration) var(--sp-motion-reveal-ease),transform var(--sp-motion-reveal-duration) var(--sp-motion-reveal-ease),filter var(--sp-motion-reveal-duration) var(--sp-motion-reveal-ease);transition-delay:calc(var(--sp-reveal-index, 0) * var(--sp-motion-reveal-stagger))}.sp-reveal--in{opacity:1;transform:none;filter:none}@keyframes sp-grow-x{0%{transform:scaleX(0)}}@property --sp-donut-sweep{syntax: "<angle>"; inherits: false; initial-value: 360deg;}@keyframes sp-donut-sweep{0%{--sp-donut-sweep: 0deg}to{--sp-donut-sweep: 360deg}}.sp-slider-host{position:relative}.sp-slider-indicator{position:absolute;left:0;pointer-events:none}.sp-slider-indicator--ready{transition:transform var(--sp-motion-spring-duration) var(--sp-motion-spring),width var(--sp-motion-spring-duration) var(--sp-motion-spring),opacity var(--sp-transition-fast)}.sp-slider-indicator--underline{bottom:0;height:2px;border-radius:1px;background:var(--sp-primary)}.sp-slider-indicator--pill{background:var(--sp-bg-elevated);box-shadow:var(--sp-shadow-sm)}.sp-slider-host--pill>:not(.sp-slider-indicator){position:relative;z-index:1}.detail__tabs{display:flex;gap:var(--sp-spacing-xs);border-bottom:2px solid var(--sp-border-color);margin-bottom:var(--sp-spacing-xl)}.detail__tab{display:flex;align-items:center;gap:var(--sp-spacing-xs);padding:var(--sp-spacing-sm) var(--sp-spacing-md);font-size:var(--sp-font-size-sm);font-weight:500;color:var(--sp-text-secondary);border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;background:none;transition:color var(--sp-transition-fast),border-color var(--sp-transition-fast)}.detail__tab:hover{color:var(--sp-text-primary)}.detail__tab--active{color:var(--sp-primary);border-bottom-color:transparent}.detail__budget-wrap{margin-top:var(--sp-spacing-lg)}.detail__no-budget-banner{display:flex;align-items:center;gap:var(--sp-spacing-sm);padding:var(--sp-spacing-sm) var(--sp-spacing-md);margin-top:var(--sp-spacing-md);background:var(--sp-warning-bg, #fffbeb);border:1px solid var(--sp-warning-border, #fcd34d);border-radius:var(--sp-radius-md);color:var(--sp-warning-text, #92400e);font-size:var(--sp-font-size-sm)}.detail__no-budget-banner svg{flex-shrink:0;color:var(--sp-warning-icon, #d97706)}.detail__no-budget-banner span{flex:1}.detail__photo-upload{display:inline-flex;align-items:center;gap:var(--sp-spacing-xs);padding:var(--sp-spacing-xs) var(--sp-spacing-md);border:1px dashed var(--sp-border-color);border-radius:var(--sp-border-radius-md);color:var(--sp-text-secondary);font-size:var(--sp-font-size-sm);cursor:pointer;transition:border-color var(--sp-transition-fast),color var(--sp-transition-fast)}.detail__photo-upload:hover{border-color:var(--sp-primary);color:var(--sp-primary)}.detail__photo-input{display:none}.detail__photo-previews{display:flex;flex-wrap:wrap;gap:var(--sp-spacing-sm);margin-top:var(--sp-spacing-sm)}.detail__photo-thumb{position:relative;width:72px;height:72px;border-radius:var(--sp-border-radius-sm);overflow:hidden;border:1px solid var(--sp-border-color)}.detail__photo-thumb img{width:100%;height:100%;object-fit:cover}.detail__photo-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:#0009;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;padding:0}.detail__log-photos{display:flex;flex-wrap:wrap;gap:var(--sp-spacing-xs);margin-top:var(--sp-spacing-xs)}.detail__log-photo-link{display:block}.detail__log-photo-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--sp-border-radius-sm);border:1px solid var(--sp-border-color);transition:opacity var(--sp-transition-fast)}.detail__log-photo-thumb:hover{opacity:.85}
