.app{display:flex;flex-direction:column;min-height:100vh;background:radial-gradient(at 0% 0%,rgba(255,107,53,.04) 0%,transparent 50%),radial-gradient(at 100% 0%,rgba(45,74,82,.03) 0%,transparent 50%),var(--color-bg, #faf8f4)}.app-header{height:52px;padding:0 24px;background:var(--color-surface, #ffffff);border-bottom:1px solid var(--color-border, #ebe7df);display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header__brand{display:flex;align-items:center;gap:12px}.app-header__logo{width:32px;height:32px;border-radius:10px;box-shadow:var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, .04));transition:transform .12s cubic-bezier(.16,1,.3,1)}.app-header__brand{display:flex;align-items:center;gap:12px;color:var(--color-text, #1a1a1a);text-decoration:none}.app-header__brand:hover .app-header__brand__logo{transform:scale(1.05)}.app-header__titles{display:flex;flex-direction:column;line-height:1.25}.app-header__title{font-size:20px;font-weight:700;color:var(--color-text, #1a1a1a);letter-spacing:-.01em}.app-header__actions{display:flex;align-items:center;gap:8px}.app-main{flex:1;padding-bottom:64px}.app-tabbar{position:fixed;left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom);height:calc(64px + env(safe-area-inset-bottom));background:var(--color-surface, #ffffff);border-top:1px solid var(--color-border, #ebe7df);display:grid;grid-template-columns:repeat(4,1fr);z-index:100}.app-tabbar:focus{outline:none}.app-tabbar:focus-visible{outline:3px solid rgba(255,107,53,.55);outline-offset:2px}@media (min-width: 768px){.app-tabbar{border-top:1px solid var(--color-border, #ebe7df)}.app-tabbar:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:1200px;max-width:100%;height:1px;background:transparent}}@media (max-width: 640px){.app-tabbar{height:calc(56px + env(safe-area-inset-bottom))}}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-secondary, #5c5854);font-size:11px;font-weight:500;transition:all .12s cubic-bezier(.16,1,.3,1);position:relative;min-height:48px}.tab:focus{outline:none}.tab:focus-visible{outline:3px solid rgba(255,107,53,.55);outline-offset:2px}.tab:hover{color:var(--color-primary-light, #ff8c5a);background-color:var(--color-surface-hover, #fafaf7)}.tab__icon{font-size:22px;line-height:1;transition:transform .12s cubic-bezier(.16,1,.3,1)}.tab--active{color:var(--color-primary, #ff6b35);background-color:var(--color-primary-bg, #fff8f3)}.tab--active .tab__icon{transform:scale(1.1)}.tab--active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:3px;background:var(--color-primary, #ff6b35);border-radius:0 0 4px 4px}@media (max-width: 640px){.tab{font-size:11px}.tab .tab__icon{font-size:20px}}.page-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:240px}.page-loading__bar{width:120px;height:3px;background:var(--color-bg-soft, #f5f3ed);border-radius:9999px;overflow:hidden;position:relative}.page-loading__bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,var(--color-primary, #ff6b35) 50%,transparent 100%);animation:page-loading-shimmer 1.2s cubic-bezier(.16,1,.3,1) infinite}.page-loading__spinner{width:28px;height:28px;border-radius:9999px;border:2px solid var(--color-border, #ebe7df);border-top-color:var(--color-primary, #ff6b35);animation:page-loading-spin .8s linear infinite}@keyframes page-loading-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes page-loading-spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:min(420px,100vw - 24px * 2)}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #ebe7df);border-radius:10px;box-shadow:var(--shadow-md, 0 4px 16px rgba(0, 0, 0, .08));font-size:13px;color:var(--color-text, #1a1a1a);animation:toast-slide-in .2s cubic-bezier(.16,1,.3,1)}.toast--success{border-color:var(--color-success, #6b8e4e)}.toast--success .toast__icon{color:var(--color-success, #6b8e4e)}.toast--warning{border-color:var(--color-warning, #f4a261)}.toast--warning .toast__icon{color:var(--color-warning, #f4a261)}.toast--danger{border-color:var(--color-danger, #e63946)}.toast--danger .toast__icon{color:var(--color-danger, #e63946)}.toast--danger{animation:toast-slide-in .2s cubic-bezier(.16,1,.3,1),toast-shake .12s cubic-bezier(.16,1,.3,1) .1s}.toast--info{border-color:var(--color-info, #4a90a4)}.toast--info .toast__icon{color:var(--color-info, #4a90a4)}.toast__icon{flex-shrink:0;display:flex;align-items:center}.toast__message{flex:1;line-height:1.25;word-break:break-word}.toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--color-text-muted, #9b978f);cursor:pointer;border-radius:4px;transition:background .12s,color .12s}.toast__close:hover{background:var(--color-bg-soft, #f5f3ed);color:var(--color-text, #1a1a1a)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.top-progress{position:fixed;top:0;left:0;right:0;height:1px;background:transparent;z-index:2100;pointer-events:none}.top-progress__bar{height:100%;width:30%;background:var(--color-primary, #ff6b35);box-shadow:0 0 4px rgba(var(--color-primary, #ff6b35),.5);animation:top-progress-indeterminate 1.2s ease-in-out infinite}@keyframes top-progress-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(180%)}to{transform:translate(380%)}}:root{--color-bg: #faf8f4;--color-bg-soft: #f5f3ed;--color-surface: #ffffff;--color-surface-hover: #fafaf7;--color-surface-active: #f5f3ed;--color-surface-selected: #fff0e6;--color-border: #ebe7df;--color-border-strong: #d4cfc3;--color-border-disabled: #e8e4dc;--color-bg-disabled: #f5f3ed;--color-text: #1a1a1a;--color-text-secondary: #5c5854;--color-text-muted: #9b978f;--color-text-disabled: #c4c0b8;--color-text-inverse: #ffffff;--color-primary: #ff6b35;--color-primary-light: #ff8c5a;--color-primary-dark: #e54e1a;--color-primary-soft: #fff0e6;--color-primary-hover: #ff7a47;--color-primary-bg: #fff8f3;--color-secondary: #2d4a52;--color-secondary-light: #3d6b75;--color-secondary-soft: #e8eff1;--color-secondary-hover: #3a5d66;--color-secondary-bg: #f0f5f6;--color-success: #6b8e4e;--color-success-soft: #e8f0e0;--color-success-bg: #f3f7ee;--color-warning: #f4a261;--color-warning-soft: #fdecd4;--color-warning-bg: #fef6e8;--color-warning-text: #b87233;--color-danger: #e63946;--color-danger-soft: #fde2e4;--color-danger-hover: #d62b39;--color-danger-bg: #fef0f1;--color-info: #4a90a4;--color-info-soft: #e0eef1;--color-info-bg: #eef6f8;--color-fuel-gasoline: #e63946;--color-fuel-diesel: #8b5a2b;--color-fuel-electric: #2a9d8f;--color-fuel-hybrid-start: #ff6b35;--color-fuel-hybrid-end: #2d4a52;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-primary: 0 6px 20px rgba(255, 107, 53, .28)}.theme-dark,:root.theme-dark{--color-bg: #1a1612;--color-bg-soft: #221d18;--color-surface: #2a2520;--color-surface-hover: #312c26;--color-surface-active: #221d18;--color-surface-selected: #3a2e22;--color-border: #3a342d;--color-border-strong: #4a443c;--color-border-disabled: #2a2520;--color-bg-disabled: #221d18;--color-text: #f0ece4;--color-text-secondary: #b8b2a8;--color-text-muted: #847e76;--color-text-disabled: #5a544e;--color-text-inverse: #1a1612;--color-primary: #ff8c5a;--color-primary-light: #ffa578;--color-primary-dark: #ff6b35;--color-primary-soft: #3a2e22;--color-primary-hover: #ffa578;--color-primary-bg: #2a2218;--color-secondary: #4a90a4;--color-secondary-light: #6ab0c4;--color-secondary-soft: #1e2a30;--color-secondary-hover: #5a9cb0;--color-secondary-bg: #1a242a;--color-success: #8eb872;--color-success-soft: #2a3322;--color-success-bg: #1e2818;--color-warning: #ffc580;--color-warning-soft: #3a2e1e;--color-warning-bg: #2a2018;--color-warning-text: #ffd4a0;--color-danger: #ff6b75;--color-danger-soft: #3a2226;--color-danger-hover: #ff8590;--color-danger-bg: #2a1818;--color-info: #6ab0c4;--color-info-soft: #1e2a30;--color-info-bg: #1a242a;--color-fuel-gasoline: #ff6b75;--color-fuel-diesel: #b8825a;--color-fuel-electric: #4ec0a8;--color-fuel-hybrid-start: #ff8c5a;--color-fuel-hybrid-end: #4a90a4;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .7);--shadow-primary: 0 6px 20px rgba(255, 140, 90, .4)}@media (prefers-color-scheme: dark){:root:not(.theme-light):not(.theme-dark){--color-bg: #1a1612;--color-bg-soft: #221d18;--color-surface: #2a2520;--color-surface-hover: #312c26;--color-surface-active: #221d18;--color-surface-selected: #3a2e22;--color-border: #3a342d;--color-border-strong: #4a443c;--color-border-disabled: #2a2520;--color-bg-disabled: #221d18;--color-text: #f0ece4;--color-text-secondary: #b8b2a8;--color-text-muted: #847e76;--color-text-disabled: #5a544e;--color-text-inverse: #1a1612;--color-primary: #ff8c5a;--color-primary-light: #ffa578;--color-primary-dark: #ff6b35;--color-primary-soft: #3a2e22;--color-primary-hover: #ffa578;--color-primary-bg: #2a2218;--color-secondary: #4a90a4;--color-secondary-light: #6ab0c4;--color-secondary-soft: #1e2a30;--color-secondary-hover: #5a9cb0;--color-secondary-bg: #1a242a;--color-success: #8eb872;--color-success-soft: #2a3322;--color-success-bg: #1e2818;--color-warning: #ffc580;--color-warning-soft: #3a2e1e;--color-warning-bg: #2a2018;--color-warning-text: #ffd4a0;--color-danger: #ff6b75;--color-danger-soft: #3a2226;--color-danger-hover: #ff8590;--color-danger-bg: #2a1818;--color-info: #6ab0c4;--color-info-soft: #1e2a30;--color-info-bg: #1a242a;--color-fuel-gasoline: #ff6b75;--color-fuel-diesel: #b8825a;--color-fuel-electric: #4ec0a8;--color-fuel-hybrid-start: #ff8c5a;--color-fuel-hybrid-end: #4a90a4;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .7);--shadow-primary: 0 6px 20px rgba(255, 140, 90, .4)}}*,*:before,*:after{box-sizing:border-box}*{-webkit-tap-highlight-color:rgba(255,107,53,.15);touch-action:manipulation}html,body,#root{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.6;color:var(--color-text, #1a1a1a);background:var(--color-bg, #faf8f4);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;line-height:1.25;color:var(--color-text, #1a1a1a)}p{margin:0}a{color:var(--color-primary, #ff6b35);text-decoration:none;transition:color .12s cubic-bezier(.16,1,.3,1)}a:hover{color:var(--color-primary-dark, #e54e1a)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit}img,svg{display:block;max-width:100%}input,textarea,select{font-family:inherit;font-size:inherit}.text-xs{font-size:11px}.text-sm{font-size:13px}.text-base{font-size:15px}.text-md{font-size:17px}.text-lg{font-size:20px}.text-xl{font-size:26px}.text-2xl{font-size:32px}.text-3xl{font-size:44px}.text-display{font-size:56px}.text-muted{color:var(--color-text-muted, #9b978f)}.text-secondary{color:var(--color-text-secondary, #5c5854)}.text-primary{color:var(--color-primary, #ff6b35)}.text-success{color:var(--color-success, #6b8e4e)}.text-warning{color:var(--color-warning, #f4a261)}.text-danger{color:var(--color-danger, #e63946)}.text-info{color:var(--color-info, #4a90a4)}.text-bold{font-weight:700}.text-semibold{font-weight:600}.text-medium{font-weight:500}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.inline-flex{display:inline-flex}.grid{display:grid}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.flex-1{flex:1;min-width:0}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:12px}.gap-lg{gap:16px}.gap-xl{gap:24px}.gap-2xl{gap:32px}.mt-xs{margin-top:4px}.mt-sm{margin-top:8px}.mt-md{margin-top:12px}.mt-lg{margin-top:16px}.mt-xl{margin-top:24px}.mt-2xl{margin-top:32px}.mb-xs{margin-bottom:4px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:12px}.mb-lg{margin-bottom:16px}.mb-xl{margin-bottom:24px}.mb-2xl{margin-bottom:32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;background:var(--color-surface, #ffffff);color:var(--color-text, #1a1a1a);font-size:13px;font-weight:500;border:1px solid var(--color-border, #ebe7df);transition:all .2s cubic-bezier(.16,1,.3,1);white-space:nowrap}.btn:hover{background:var(--color-surface-hover, #fafaf7);border-color:var(--color-border-strong, #d4cfc3)}.btn:active{transform:scale(.97)}.btn:disabled{transform:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--color-primary, #ff6b35);color:var(--color-text-inverse, #ffffff);border-color:var(--color-primary, #ff6b35);box-shadow:var(--shadow-sm, 0 2px 6px rgba(0, 0, 0, .06))}.btn.primary:hover{background:var(--color-primary-dark, #e54e1a);border-color:var(--color-primary-dark, #e54e1a);box-shadow:var(--shadow-primary, 0 6px 20px rgba(255, 107, 53, .28))}.btn.secondary{background:var(--color-secondary, #2d4a52);color:var(--color-text-inverse, #ffffff);border-color:var(--color-secondary, #2d4a52)}.btn.secondary:hover{background:var(--color-secondary-light, #3d6b75)}.btn.danger{background:var(--color-danger, #e63946);color:var(--color-text-inverse, #ffffff);border-color:var(--color-danger, #e63946)}.btn.danger:hover{background:var(--color-danger-hover, #d62b39)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--color-bg-soft, #f5f3ed)}.btn.outline{background:transparent;color:var(--color-primary, #ff6b35);border-color:var(--color-primary, #ff6b35)}.btn.outline:hover{background:var(--color-primary-soft, #fff0e6)}.btn.sm{padding:6px 12px;font-size:11px}.btn.lg{padding:14px 24px;font-size:17px;border-radius:14px}.btn.block{width:100%}.card{background:var(--color-surface, #ffffff);border-radius:20px;padding:16px;box-shadow:var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, .04));border:1px solid var(--color-border, #ebe7df);transition:box-shadow .2s cubic-bezier(.16,1,.3,1)}.card.elevated{box-shadow:var(--shadow-md, 0 4px 16px rgba(0, 0, 0, .08));border-color:transparent}.card.flat{box-shadow:none}.card.p-sm{padding:12px}.card.p-lg{padding:24px}.card.hoverable:hover{box-shadow:var(--shadow-md, 0 4px 16px rgba(0, 0, 0, .08));transform:translateY(-2px)}@media (min-width: 768px){.card{padding:24px}.card.p-lg{padding:32px}}.input,.textarea,.select{width:100%;padding:10px 14px;border:1px solid var(--color-border, #ebe7df);border-radius:10px;background:var(--color-surface, #ffffff);font-size:15px;color:var(--color-text, #1a1a1a);transition:border-color .12s cubic-bezier(.16,1,.3,1),box-shadow .12s cubic-bezier(.16,1,.3,1)}.input::placeholder,.textarea::placeholder,.select::placeholder{color:var(--color-text-muted, #9b978f)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--color-primary, #ff6b35);box-shadow:0 0 0 3px #ff6b3526}.textarea{min-height:96px;resize:vertical;font-family:inherit}.label{display:block;font-size:13px;color:var(--color-text-secondary, #5c5854);margin-bottom:4px;font-weight:500}.page{padding:16px 12px 24px;max-width:1200px;margin:0 auto}@media (min-width: 768px){.page{padding:32px 24px 48px}}@media (max-width: 360px){.page{padding:12px 8px 16px}}.page-header{margin-bottom:24px}.page-title{font-size:32px;font-weight:700;letter-spacing:-.02em}@media (min-width: 768px){.page-title{font-size:44px}}.page-subtitle{font-size:13px;color:var(--color-text-secondary, #5c5854);margin-top:4px}.page-section{margin-bottom:32px}.page-section__title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;margin-bottom:12px}.page-section__title-icon{font-size:26px}.page-section__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.empty{padding:64px 24px;text-align:center;color:var(--color-text-muted, #9b978f)}.empty__icon{font-size:64px;margin-bottom:12px;opacity:.6}.empty__title{font-size:17px;font-weight:500;color:var(--color-text-secondary, #5c5854);margin-bottom:8px}.empty__desc{font-size:13px;margin-bottom:24px}.stat{display:flex;flex-direction:column;gap:2px}.stat__label{font-size:13px;color:var(--color-text-secondary, #5c5854);font-weight:500}.stat__value{font-size:32px;font-weight:700;color:var(--color-text, #1a1a1a);line-height:1.25;font-variant-numeric:tabular-nums}@media (min-width: 768px){.stat__value{font-size:44px}}@media (max-width: 360px){.stat__value{font-size:26px}}.stat__unit{font-size:13px;color:var(--color-text-muted, #9b978f);margin-left:4px;font-weight:400}.stat.accent-primary .stat__value{color:var(--color-primary, #ff6b35)}.stat.accent-primary-light .stat__value{color:var(--color-primary-light, #ff8c5a)}.stat.accent-success .stat__value{color:var(--color-success, #6b8e4e)}.stat.accent-secondary .stat__value{color:var(--color-secondary, #2d4a52)}.list-item{display:flex;align-items:center;gap:12px;padding:16px;background:var(--color-surface, #ffffff);border-radius:14px;border:1px solid var(--color-border, #ebe7df);transition:all .2s cubic-bezier(.16,1,.3,1)}.list-item:hover{border-color:var(--color-border-strong, #d4cfc3);box-shadow:var(--shadow-sm, 0 2px 6px rgba(0, 0, 0, .06))}.list-item__icon{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-soft, #fff0e6);color:var(--color-primary, #ff6b35);border-radius:10px;font-size:22px}.list-item__main{flex:1;min-width:0}.list-item__title{font-weight:600;margin-bottom:2px;color:var(--color-text, #1a1a1a)}.list-item__sub{font-size:13px;color:var(--color-text-secondary, #5c5854)}.list-item__extra{color:var(--color-text-secondary, #5c5854);font-size:13px;text-align:right;flex-shrink:0}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:9999px;font-size:11px;font-weight:500;background:var(--color-bg-soft, #f5f3ed);color:var(--color-text-secondary, #5c5854)}.badge.primary{background:var(--color-primary-soft, #fff0e6);color:var(--color-primary, #ff6b35)}.badge.success{background:var(--color-success-soft, #e8f0e0);color:var(--color-success, #6b8e4e)}.badge.warning{background:var(--color-warning-soft, #fdecd4);color:var(--color-warning-text, #b87233)}.badge.danger{background:var(--color-danger-soft, #fde2e4);color:var(--color-danger, #e63946)}.badge.info{background:var(--color-info-soft, #e0eef1);color:var(--color-info, #4a90a4)}.grid-cols-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grid-cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid-cols-4{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width: 768px){.grid-cols-4{grid-template-columns:repeat(4,1fr);gap:16px}}.skeleton{display:block;background:linear-gradient(90deg,var(--color-bg-soft, #f5f3ed) 0%,var(--color-border, #ebe7df) 50%,var(--color-bg-soft, #f5f3ed) 100%);background-size:200% 100%;border-radius:6px;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton.text{height:14px;margin:4px 0}.skeleton.title{height:22px;margin:8px 0}.skeleton.avatar{width:40px;height:40px;border-radius:50%}.skeleton.button{width:80px;height:32px;border-radius:10px}.skeleton.card{height:100px;border-radius:10px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.text-xs-sm{font-size:11px;font-weight:600}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}*:focus{outline:none}*:focus-visible{outline:3px solid rgba(255,107,53,.55);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html{padding-top:env(safe-area-inset-top,0px)}.app-main{min-height:calc(100vh - 108px);min-height:calc(100dvh - 108px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.auth-layout{display:grid;grid-template-columns:minmax(0,540px) minmax(0,1fr);min-height:100vh;background:var(--color-bg, #faf8f4)}.auth-layout__brand-panel{position:relative;background:radial-gradient(at 0% 0%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(at 100% 100%,rgba(0,0,0,.15) 0%,transparent 50%),linear-gradient(135deg,var(--color-primary, #ff6b35) 0%,var(--color-secondary, #2d4a52) 100%);color:#fff;padding:32px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;overflow:hidden;min-height:100vh}.auth-layout__brand-header{display:flex;align-items:center;gap:12px;font-weight:600;font-size:18px;z-index:1}.auth-layout__brand-logo{width:40px;height:40px;border-radius:10px;background:#ffffff26;padding:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-layout__brand-body{z-index:1}.auth-layout__slogan{font-size:32px;font-weight:700;line-height:1.25;margin:0 0 12px;color:#fff;letter-spacing:-.5px}.auth-layout__sub-slogan{font-size:15px;line-height:1.6;color:#ffffffd9;margin:0}.auth-layout__features{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-direction:column;gap:12px}.auth-layout__features li{display:flex;align-items:center;gap:12px;font-size:14px;color:#fffffff2}.auth-layout__features li:before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:#ffffffe6}.auth-layout__brand-footer{font-size:12px;color:#fff9;z-index:1}.auth-layout__form-panel{display:flex;align-items:center;justify-content:center;padding:32px 12px;min-height:100vh}@media (max-width: 720px){.auth-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:200px 1fr}.auth-layout__brand-panel{min-height:200px;padding:12px 16px;flex-direction:row;align-items:center;gap:12px}.auth-layout__brand-body{flex:1}.auth-layout__slogan{font-size:20px}.auth-layout__sub-slogan,.auth-layout__features,.auth-layout__brand-footer{display:none}.auth-layout__form-panel{min-height:auto;padding:24px 12px}}.auth-card{position:relative;width:100%;max-width:420px;background:var(--color-surface, #ffffff);border-radius:14px;box-shadow:var(--shadow-md, 0 4px 16px rgba(0, 0, 0, .08));padding:32px;border:1px solid var(--color-border, #ebe7df)}.auth-card__topright{position:absolute;top:12px;right:12px}.auth-card__header{margin-bottom:24px}.auth-card__title{font-size:24px;font-weight:600;color:var(--color-text, #1a1a1a);margin:0;letter-spacing:-.3px}.auth-card__subtitle{font-size:14px;color:var(--color-text-secondary, #5c5854);margin:4px 0 0;line-height:1.5}.auth-card__body{display:flex;flex-direction:column;gap:12px}.auth-card__links{display:flex;justify-content:space-between;margin-top:12px;font-size:14px;gap:12px}.auth-card__links a{color:var(--color-primary, #ff6b35);text-decoration:none;transition:color .15s ease}.auth-card__links a:hover{color:var(--color-primary-dark, #e54e1a);text-decoration:underline}.auth-card__links a:focus-visible{outline:2px solid var(--color-primary, #ff6b35);outline-offset:2px;border-radius:6px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form__submit{margin-top:8px;width:100%;padding:12px;font-size:16px;font-weight:500;border-radius:10px;border:none;background:var(--color-primary, #ff6b35);color:#fff;cursor:pointer;transition:background .15s ease,transform .15s ease}.auth-form__submit:hover:not(:disabled){background:var(--color-primary-dark, #e54e1a)}.auth-form__submit:active:not(:disabled){transform:scale(.98)}.auth-form__submit:disabled{opacity:.6;cursor:not-allowed}.auth-form__submit:focus-visible{outline:3px solid rgba(255,107,53,.45);outline-offset:2px}.form-field{display:flex;flex-direction:column;gap:4px}.form-field__label{font-size:14px;font-weight:500;color:var(--color-text, #1a1a1a)}.form-field__input,.form-field__textarea{padding:12px;font-size:15px;border:1px solid var(--color-border, #ebe7df);border-radius:10px;background:var(--color-bg, #faf8f4);color:var(--color-text, #1a1a1a);transition:border-color .15s ease,box-shadow .15s ease;font-family:inherit}.form-field__input:focus,.form-field__textarea:focus{outline:none;border-color:var(--color-primary, #ff6b35);box-shadow:0 0 0 3px #ff6b3526}.form-field__input:disabled,.form-field__textarea:disabled{opacity:.6;cursor:not-allowed}.form-field__input::placeholder,.form-field__textarea::placeholder{color:var(--color-text-secondary, #5c5854);opacity:.6}.form-field__input-group{position:relative;display:flex}.form-field__input-group .form-field__input{flex:1;padding-right:44px}.form-field__toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;background:transparent;cursor:pointer;font-size:16px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.form-field__toggle:hover{background:var(--color-bg-soft, #f5f3ed)}.form-field__toggle:focus-visible{outline:2px solid var(--color-primary, #ff6b35);outline-offset:2px}.form-field__hint{font-size:12px;color:var(--color-text-secondary, #5c5854);line-height:1.4}.form-field--invalid .form-field__input,.form-field--invalid .form-field__textarea{border-color:var(--color-danger, #e63946)}.form-field--invalid .form-field__input:focus,.form-field--invalid .form-field__textarea:focus{border-color:var(--color-danger, #e63946);box-shadow:0 0 0 3px #e6394626}.form-field__error{color:var(--color-danger, #e63946);font-size:12px;margin-top:2px;display:flex;align-items:center;gap:4px;line-height:1.4;font-weight:500}.auth-error{padding:12px;background:var(--color-danger-soft, #fde2e4);color:var(--color-danger, #e63946);border-radius:10px;font-size:14px;border:1px solid var(--color-danger, #e63946);display:flex;align-items:center;gap:8px}.auth-info{padding:12px;background:var(--color-info-soft, #e0eef1);color:var(--color-info, #4a90a4);border-radius:10px;font-size:14px;border:1px solid var(--color-info, #4a90a4)}.auth-instructions{font-size:14px;line-height:1.7;color:var(--color-text, #1a1a1a)}.auth-instructions p{margin:0 0 12px}.auth-instructions__contact{margin-top:12px;padding:12px;background:var(--color-bg-soft, #f5f3ed);border-radius:10px;border:1px solid var(--color-border, #ebe7df);display:flex;flex-direction:column;gap:4px}.auth-instructions__contact a{color:var(--color-primary, #ff6b35);font-weight:500;font-size:15px;text-decoration:none;transition:color .15s ease}.auth-instructions__contact a:hover{color:var(--color-primary-dark, #e54e1a);text-decoration:underline}.auth-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite;vertical-align:middle;margin-right:4px}@keyframes auth-spin{to{transform:rotate(360deg)}}a:focus-visible,button:focus-visible{outline:3px solid rgba(255,107,53,.45);outline-offset:2px}@media (max-width: 480px){.auth-card{padding:16px}.auth-card__title{font-size:20px}}@media (prefers-reduced-motion: reduce){.form-field__input,.form-field__textarea,.auth-form__submit,.form-field__toggle,.auth-card__links a{transition:none}.auth-spinner{animation:none}.auth-form__submit:active:not(:disabled){transform:none}}.user-menu{position:relative}.user-menu__trigger{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid transparent;background:transparent;border-radius:10px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-menu__trigger:hover{background:var(--color-bg-soft, #f5f3ed)}.user-menu__trigger:focus-visible{outline:3px solid rgba(255,107,53,.45);outline-offset:2px;border-color:var(--color-primary, #ff6b35)}.user-menu__avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary, #ff6b35) 0%,var(--color-secondary, #2d4a52) 100%);color:#fff;font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-menu__name{font-size:14px;font-weight:500;color:var(--color-text, #1a1a1a);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 480px){.user-menu__name{display:none}}.user-menu__caret{font-size:10px;color:var(--color-text-secondary, #5c5854);transition:transform .15s ease}.user-menu__caret.is-open{transform:rotate(180deg)}@media (max-width: 480px){.user-menu__caret{display:none}}.user-menu__panel{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #ebe7df);border-radius:10px;box-shadow:var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .1));padding:4px;z-index:201;animation:user-menu-pop .12s ease-out;transform-origin:top right}.user-menu__info{padding:8px 12px;border-bottom:1px solid var(--color-border, #ebe7df);margin-bottom:4px}.user-menu__name-large{font-size:15px;font-weight:600;color:var(--color-text, #1a1a1a)}.user-menu__role{display:inline-block;font-size:11px;font-weight:500;color:var(--color-primary-dark, #e54e1a);background:var(--color-primary-soft, #fff0e6);padding:2px 8px;border-radius:999px;margin-top:4px}.user-menu__email{font-size:12px;color:var(--color-text-secondary, #5c5854);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__action{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;transition:background .15s ease;text-align:left;text-decoration:none;color:var(--color-text, #1a1a1a)}.user-menu__action:hover{background:var(--color-bg-soft, #f5f3ed)}.user-menu__action:focus-visible{outline:2px solid var(--color-primary, #ff6b35);outline-offset:-2px}.user-menu__action--danger{color:var(--color-danger, #e63946)}.user-menu__action--danger:hover{background:var(--color-danger-soft, #fde2e4)}.user-menu__divider{height:1px;margin:4px 0;background:var(--color-border, #ebe7df)}.user-menu__theme-icon{font-size:14px;line-height:1}@keyframes user-menu-pop{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (prefers-reduced-motion: reduce){.user-menu__panel{animation:none}.user-menu__caret,.user-menu__trigger{transition:none}}
