.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:#0000001a}.numInputWrapper span:active{background:#0003}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:#0000000d}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:#0000000d}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:#0000000d}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}:root{--primary: #4f46e5;--primary-dark: #3730a3;--primary-light: #818cf8;--primary-bg: #eef2ff;--success: #059669;--success-bg: #d1fae5;--warning: #d97706;--warning-bg: #fef3c7;--danger: #dc2626;--danger-bg: #fee2e2;--info: #0284c7;--info-bg: #e0f2fe;--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--border-light: #f1f5f9;--text-primary: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--text-on-primary:#ffffff;--shadow-sm: 0 1px 2px rgba(0,0,0,.06);--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px rgba(0,0,0,.08), 0 4px 6px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px rgba(0,0,0,.1), 0 10px 10px rgba(0,0,0,.04);--radius-sm: 8px;--radius: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full:9999px;--header-h: 56px;--bottom-nav-h: 68px;--sidebar-w: 260px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, monospace;--transition: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg: #0f172a;--surface: #1e293b;--surface-2: #1e293b;--border: #334155;--border-light: #1e293b;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--primary-bg: #1e1b4b;--success-bg: #052e16;--warning-bg: #1c1007;--danger-bg: #1c0606;--info-bg: #0c1a29;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow: 0 1px 3px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 4px 6px rgba(0,0,0,.5), 0 2px 4px rgba(0,0,0,.4);--shadow-lg: 0 10px 15px rgba(0,0,0,.6), 0 4px 6px rgba(0,0,0,.4);--shadow-xl: 0 20px 25px rgba(0,0,0,.7), 0 10px 10px rgba(0,0,0,.5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font);font-size:.9375rem;line-height:1.5;color:var(--text-primary);background:var(--bg);overscroll-behavior:none;-webkit-font-smoothing:antialiased}.app-header{position:fixed;top:0;left:0;right:0;height:calc(var(--header-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding-left:1rem;padding-right:1rem;gap:.75rem;z-index:200;box-shadow:var(--shadow-sm)}.app-header .brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1rem;color:var(--primary);text-decoration:none;flex:1}.app-header .brand-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--primary),#7c3aed);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:.5rem}.theme-switch{border:none;background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;-webkit-tap-highlight-color:transparent}.switch-track{width:48px;height:26px;background:var(--border);border-radius:var(--radius-full);padding:3px;transition:background var(--transition);display:flex;align-items:center}[data-theme=dark] .switch-track{background:var(--primary)}.switch-thumb{width:20px;height:20px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.625rem;color:#f59e0b;box-shadow:var(--shadow);transition:transform var(--transition),color var(--transition);flex-shrink:0}[data-theme=dark] .switch-thumb{transform:translate(22px);color:#c7d2fe}.icon-btn{width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;font-size:1.125rem;transition:background var(--transition),color var(--transition);position:relative}.icon-btn:hover,.icon-btn:focus-visible{background:var(--primary-bg);color:var(--primary);outline:none}.notif-badge{position:absolute;top:6px;right:6px;min-width:16px;height:16px;background:var(--danger);color:#fff;font-size:.625rem;font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 3px;border:2px solid var(--surface);transition:transform var(--transition)}.notif-badge.bump{animation:badge-bump .3s cubic-bezier(.36,.07,.19,.97)}@keyframes badge-bump{0%,to{transform:scale(1)}30%{transform:scale(1.4)}60%{transform:scale(.9)}}.notif-wrapper{position:relative}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:1000;overflow:hidden;animation:dropdown-in .15s ease}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.875rem;color:var(--text-primary)}.notif-item{display:block;padding:.75rem 1rem;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;transition:background var(--transition)}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--bg)}.notif-item-title{font-size:.875rem;font-weight:500;color:var(--text-primary)}.notif-item-meta{font-size:.75rem;color:var(--text-muted);margin-top:.125rem}.notif-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;color:var(--text-muted);font-size:.875rem}.notif-empty i{font-size:1.5rem}.notif-loading{padding:1rem;text-align:center;color:var(--text-muted);font-size:.875rem}.sidebar{display:none;position:fixed;top:calc(var(--header-h) + env(safe-area-inset-top));left:0;width:var(--sidebar-w);height:calc(100vh - var(--header-h) - env(safe-area-inset-top));background:var(--surface);border-right:1px solid var(--border);padding:1rem .75rem;overflow-y:auto;z-index:100}.sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:.25rem}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.6875rem 1rem;border-radius:var(--radius);color:var(--text-secondary);text-decoration:none;font-size:.9375rem;font-weight:500;transition:all var(--transition);position:relative}.sidebar-nav a i{font-size:1.125rem;width:20px;flex-shrink:0}.sidebar-nav a:hover{background:var(--bg);color:var(--text-primary)}.sidebar-nav a.active{background:var(--primary-bg);color:var(--primary);font-weight:600}.sidebar-nav a .nav-badge{margin-left:auto;background:var(--danger);color:#fff;font-size:.6875rem;font-weight:700;border-radius:var(--radius-full);padding:.125rem .4rem;min-width:20px;text-align:center}.sidebar-divider{height:1px;background:var(--border);margin:.75rem 0}.sidebar-label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:.5rem 1rem .25rem}.app-main{padding-top:calc(var(--header-h) + env(safe-area-inset-top));padding-bottom:calc(var(--bottom-nav-h) + 1rem);min-height:100vh}.content-area{max-width:768px;margin:0 auto;padding:1rem}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:var(--surface);border-top:1px solid var(--border);display:flex;z-index:200;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 20px #0000000f}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--text-muted);font-size:.6875rem;font-weight:500;padding:.5rem .25rem;border:none;background:transparent;cursor:pointer;position:relative;transition:color var(--transition);-webkit-tap-highlight-color:transparent}.bottom-nav-item i{font-size:1.375rem;transition:transform var(--transition)}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item.active i{transform:translateY(-2px)}.bottom-nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:var(--primary);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.bottom-nav-item .tab-badge{position:absolute;top:8px;right:calc(50% - 18px);min-width:16px;height:16px;background:var(--danger);color:#fff;font-size:.625rem;font-weight:700;border-radius:var(--radius-full);display:none;align-items:center;justify-content:center;padding:0 3px;border:2px solid var(--surface)}.bottom-nav-item .tab-badge.show{display:flex}@media (min-width: 900px){.sidebar{display:flex;flex-direction:column}.bottom-nav{display:none}.app-main{padding-left:var(--sidebar-w);padding-bottom:2rem}.content-area{max-width:1100px;padding:1.5rem 2rem}.app-header .brand span{display:block}}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.card-body{padding:1.25rem}.card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.card-title{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media (min-width: 640px){.metric-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 900px){.metric-grid{grid-template-columns:repeat(4,1fr)}}.metric-card{background:var(--surface);border-radius:var(--radius-lg);padding:1rem 1.125rem;box-shadow:var(--shadow);display:flex;flex-direction:row;align-items:center;gap:.875rem;position:relative;overflow:hidden;transition:transform var(--transition),box-shadow var(--transition)}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.metric-card:before{content:"";position:absolute;top:0;right:0;width:72px;height:72px;border-radius:50%;opacity:.08;transform:translate(20px,-20px)}.metric-card.pending:before{background:var(--warning)}.metric-card.approved:before{background:var(--success)}.metric-card.rejected:before{background:var(--danger)}.metric-card.total:before{background:var(--primary)}.metric-icon{width:48px;height:48px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.375rem;flex-shrink:0}.metric-card.pending .metric-icon{background:var(--warning-bg);color:var(--warning)}.metric-card.approved .metric-icon{background:var(--success-bg);color:var(--success)}.metric-card.rejected .metric-icon{background:var(--danger-bg);color:var(--danger)}.metric-card.total .metric-icon{background:var(--primary-bg);color:var(--primary)}.metric-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.metric-value{font-size:1.75rem;font-weight:700;line-height:1;color:var(--text-primary)}.metric-label{font-size:.75rem;color:var(--text-secondary);font-weight:500;line-height:1.3}.status-badge{display:inline-flex;align-items:center;gap:.3125rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.01em}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-P{background:var(--warning-bg);color:var(--warning)}.status-P:before{background:var(--warning);animation:pulse-dot 1.5s ease-in-out infinite}.status-A{background:var(--success-bg);color:var(--success)}.status-A:before{background:var(--success)}.status-R{background:var(--danger-bg);color:var(--danger)}.status-R:before{background:var(--danger)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.approval-list{display:flex;flex-direction:column;gap:.625rem}.approval-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1rem;display:flex;flex-direction:column;gap:.625rem;text-decoration:none;color:inherit;border:1.5px solid transparent;transition:all var(--transition);cursor:pointer;-webkit-tap-highlight-color:transparent}.approval-card:hover,.approval-card:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px);outline:none}.approval-card.pending{border-left:3px solid var(--warning)}.approval-card.approved{border-left:3px solid var(--success)}.approval-card.rejected{border-left:3px solid var(--danger)}@keyframes newCardPulse{0%{background:color-mix(in srgb,var(--warning) 18%,var(--surface))}to{background:var(--surface)}}.approval-card.new-card-highlight{animation:newCardPulse 2s ease-out forwards}.approval-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.approval-card-id{font-size:.75rem;font-weight:600;color:var(--text-muted);font-family:var(--mono)}.approval-card-type{font-size:.9375rem;font-weight:600;color:var(--text-primary);line-height:1.3}.approval-card-meta{display:flex;flex-wrap:wrap;gap:.375rem}.meta-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--bg);color:var(--text-secondary);padding:.1875rem .5rem;border-radius:var(--radius-full);font-size:.75rem}.meta-chip i{font-size:.75rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.form-control,.form-select{height:48px;padding:0 .875rem;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font-size:.9375rem;font-family:var(--font);outline:none;transition:border-color var(--transition),box-shadow var(--transition);width:100%;appearance:none;-webkit-appearance:none}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.form-control.is-invalid,.form-select.is-invalid{border-color:var(--danger)}textarea.form-control{height:auto;padding:.75rem .875rem;resize:none;line-height:1.5}.form-hint{font-size:.8125rem;color:var(--text-secondary)}.field-error{font-size:.8125rem;color:var(--danger)}.select-wrapper{position:relative}.select-wrapper:after{content:"\f282";font-family:bootstrap-icons;position:absolute;right:.875rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6875rem 1.25rem;border-radius:var(--radius);font-size:.9375rem;font-weight:600;font-family:var(--font);cursor:pointer;border:1.5px solid transparent;transition:all var(--transition);text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover{background:#047857}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#b91c1c}.btn-outline{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-outline:hover{background:var(--bg);color:var(--text-primary)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg);color:var(--text-primary)}.btn-sm{padding:.4375rem .875rem;font-size:.875rem;border-radius:var(--radius-sm)}.btn-lg{padding:.875rem 1.5rem;font-size:1rem;border-radius:var(--radius-lg)}.btn-full{width:100%}.btn-loading{opacity:.7;pointer-events:none}.btn-loading .btn-text:after{content:"";width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;display:inline-block;margin-left:.5rem;animation:spin .6s linear infinite;vertical-align:middle}.filter-bar{background:var(--surface);border-radius:var(--radius-lg);padding:.875rem;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:.625rem;align-items:flex-end}.filter-bar .form-control,.filter-bar .form-select{height:40px;font-size:.875rem}.status-tabs{display:flex;background:var(--bg);border-radius:var(--radius-lg);padding:.25rem;gap:.25rem}.status-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.5rem .25rem;border-radius:var(--radius);font-size:.8rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:all var(--transition);white-space:nowrap;cursor:pointer}.status-tab:hover:not(.active){color:var(--text-secondary);background:var(--border)}.status-tab.active{background:var(--surface);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow)}.status-tab.pending.active{color:var(--warning)}.status-tab.approved.active{color:var(--success)}.status-tab.rejected.active{color:var(--danger)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;gap:.875rem}.empty-icon{width:72px;height:72px;background:var(--bg);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:1.875rem;color:var(--text-muted)}.empty-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.empty-desc{font-size:.875rem;color:var(--text-secondary);max-width:280px}.detail-header{background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);color:#fff;padding:1.5rem 1.25rem;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.detail-header .request-id{font-size:.75rem;font-weight:600;opacity:.7;font-family:var(--mono)}.detail-header .request-type{font-size:1.25rem;font-weight:700;margin-top:.25rem}.detail-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem 0;border-bottom:1px solid var(--border-light);gap:1rem}.detail-row:last-child{border-bottom:none}.detail-label{font-size:.8125rem;color:var(--text-secondary);font-weight:500;white-space:nowrap}.detail-value{font-size:.9375rem;color:var(--text-primary);font-weight:500;text-align:right}.action-panel{position:sticky;bottom:calc(var(--bottom-nav-h) + .75rem);background:var(--surface);border-radius:var(--radius-xl);padding:1rem;box-shadow:var(--shadow-xl);border:1px solid var(--border);display:flex;gap:.625rem}@media (min-width: 900px){.action-panel{position:static;box-shadow:none;border-radius:var(--radius-lg)}}.modal-overlay{position:fixed;inset:0;background:#00000073;z-index:500;display:flex;align-items:flex-end;opacity:0;visibility:hidden;transition:opacity var(--transition-slow),visibility var(--transition-slow);overscroll-behavior:contain;touch-action:none}.modal-overlay .modal-sheet{touch-action:auto}.modal-overlay.open{opacity:1;visibility:visible}@media (min-width: 600px){.modal-overlay{align-items:center;justify-content:center}}.modal-sheet{background:var(--surface);width:100%;max-width:480px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:1.25rem;padding-bottom:env(safe-area-inset-bottom,.5rem);transform:translateY(100%);transition:transform var(--transition-slow);max-height:60dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-overlay.open .modal-sheet{transform:translateY(0)}@media (min-width: 600px){.modal-sheet{border-radius:var(--radius-xl);transform:translateY(20px) scale(.96);max-height:90vh}.modal-overlay.open .modal-sheet{transform:translateY(0) scale(1)}}.modal-handle{width:36px;height:4px;background:var(--border);border-radius:var(--radius-full);margin:0 auto .75rem}@media (min-width: 600px){.modal-handle{display:none}}.modal-title{font-size:1.0625rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}#toast-container{position:fixed;top:calc(var(--header-h) + .75rem);right:.75rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1.5px solid var(--border);max-width:320px;min-width:240px;pointer-events:all;transform:translate(calc(100% + 1rem));opacity:0;transition:all var(--transition-slow)}.toast.show{transform:translate(0);opacity:1}.toast-icon{width:32px;height:32px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}.toast.success .toast-icon{background:var(--success-bg);color:var(--success)}.toast.error .toast-icon{background:var(--danger-bg);color:var(--danger)}.toast.info .toast-icon{background:var(--primary-bg);color:var(--primary)}.toast.warning .toast-icon{background:var(--warning-bg);color:var(--warning)}.toast-body{flex:1;min-width:0}.toast-title{font-size:.875rem;font-weight:600}.toast-msg{font-size:.8125rem;color:var(--text-secondary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1b4b,#312e81 40%,#4c1d95);padding:1.5rem}.login-card{width:100%;max-width:400px;background:#fffffff7;backdrop-filter:blur(20px);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 32px 64px #00000059}.login-card-top{background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);padding:2rem 1.5rem 1.5rem;text-align:center;color:#fff}.login-logo{width:64px;height:64px;background:#fff3;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin:0 auto .75rem;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.login-title{font-size:1.25rem;font-weight:700}.login-sub{font-size:.875rem;opacity:.8;margin-top:.25rem}.login-form{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.input-wrapper{position:relative}.input-wrapper i{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:1rem;pointer-events:none}.input-wrapper .form-control{padding-left:2.75rem}.input-wrapper .toggle-password{position:absolute;right:.875rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1rem;padding:0;display:flex;align-items:center}.login-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.5rem}.chart-container{position:relative;height:220px}.pagination{display:flex;align-items:center;justify-content:center;gap:.375rem;flex-wrap:wrap;padding:.75rem 0}.page-btn{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition)}.page-btn:hover{background:var(--bg);color:var(--text-primary)}.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.page-btn:disabled{opacity:.4;pointer-events:none}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-2)}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border-light);font-size:.9375rem;color:var(--text-primary);vertical-align:middle}.data-table tr:hover td{background:var(--bg)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg)}.skeleton{background:linear-gradient(90deg,var(--bg) 25%,var(--border) 50%,var(--bg) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{background:var(--surface);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.625rem}.activity-feed{display:flex;flex-direction:column}.activity-item{display:flex;align-items:flex-start;gap:.875rem;padding:.875rem 0;border-bottom:1px solid var(--border-light)}.activity-item:last-child{border-bottom:none}.activity-dot{width:32px;height:32px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.875rem}.activity-A{background:var(--success-bg);color:var(--success)}.activity-R{background:var(--danger-bg);color:var(--danger)}.activity-P{background:var(--warning-bg);color:var(--warning)}.activity-content{flex:1;min-width:0}.activity-title{font-size:.875rem;font-weight:500;line-height:1.4}.activity-time{font-size:.75rem;color:var(--text-muted);margin-top:.125rem}.outlet-tags{display:flex;flex-wrap:wrap;gap:.375rem}.outlet-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;background:var(--primary-bg);color:var(--primary);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.stack{display:flex;flex-direction:column;gap:.75rem}.stack-sm{display:flex;flex-direction:column;gap:.5rem}.stack-lg{display:flex;flex-direction:column;gap:1.25rem}.row{display:flex;gap:.75rem;align-items:center}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.row-wrap{display:flex;flex-wrap:wrap;gap:.625rem;align-items:center}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-secondary)}.text-primary-color{color:var(--primary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.fw-600{font-weight:600}.fw-700{font-weight:700}.page-title{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.section-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.divider{height:1px;background:var(--border)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.install-banner{background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);color:#fff;padding:.875rem 1rem;display:flex;align-items:center;gap:.75rem;position:fixed;top:.75rem;left:.75rem;right:.75rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:300;transform:translateY(-120%);transition:transform var(--transition-slow)}.install-banner.show{transform:translateY(0)}.install-banner .install-text{flex:1;font-size:.875rem;font-weight:500}.install-banner .install-title{font-weight:700}.page-enter{animation:page-in .25s cubic-bezier(.4,0,.2,1) forwards}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tap-highlight:active{background:var(--bg)!important}@media (max-width: 599px){.content-area{padding:.75rem}.row-between{flex-wrap:wrap;gap:.5rem}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .form-group{min-width:0!important}.filter-bar .btn{width:100%}.status-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.status-tabs::-webkit-scrollbar{display:none}.status-tab{min-width:0;padding:.5rem;font-size:.75rem}.status-tab i{font-size:.75rem}.metric-card{padding:.75rem;gap:.625rem}.metric-icon{width:40px;height:40px;font-size:1.125rem}.metric-value{font-size:1.375rem}.metric-label{font-size:.6875rem}.detail-row{flex-direction:column;align-items:flex-start;gap:.25rem}.detail-value{text-align:left}.notif-dropdown{width:calc(100vw - 1.5rem);right:-.5rem}.card-body .chart-container{height:180px}#toast-container{left:.75rem;right:.75rem}.toast{max-width:none;min-width:0;width:100%}.page-title{font-size:1rem}.action-panel{padding:.75rem;border-radius:var(--radius-lg)}.card-body .row-between{flex-wrap:wrap}}
