@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";[data-palette=blue]{--hue: 220;--hue-secondary: 260}[data-palette=green]{--hue: 152;--hue-secondary: 190}[data-palette=purple]{--hue: 270;--hue-secondary: 310}[data-palette=orange]{--hue: 25;--hue-secondary: 45}[data-palette=red]{--hue: 0;--hue-secondary: 340}[data-theme=light]{--bg-gradient-a: hsl(var(--hue), 55%, 92%);--bg-gradient-b: hsl(var(--hue-secondary), 40%, 94%);--bg-gradient-c: hsl(calc(var(--hue) + 60), 30%, 96%);--glass-bg: rgba(255, 255, 255, .62);--glass-bg-heavy: rgba(255, 255, 255, .82);--glass-bg-light: rgba(255, 255, 255, .45);--glass-border: rgba(255, 255, 255, .55);--glass-border-subtle: rgba(255, 255, 255, .35);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .08);--glass-shadow-lg: 0 16px 48px rgba(0, 0, 0, .1);--glass-blur: 20px;--text-primary: hsl(0, 0%, 8%);--text-secondary: hsl(0, 0%, 32%);--text-muted: hsl(0, 0%, 52%);--color-primary: hsl(var(--hue), 65%, 48%);--color-primary-hover: hsl(var(--hue), 70%, 40%);--color-primary-container: hsl(var(--hue), 60%, 92%);--color-on-primary: #fff;--color-on-primary-container: hsl(var(--hue), 65%, 22%);--color-success: hsl(152, 55%, 40%);--color-success-container: hsl(152, 55%, 92%);--color-on-success-container: hsl(152, 60%, 18%);--color-warning: hsl(38, 90%, 50%);--color-warning-container: hsl(38, 80%, 92%);--color-on-warning-container: hsl(38, 80%, 22%);--color-danger: hsl(4, 70%, 50%);--color-danger-container: hsl(4, 70%, 93%);--color-on-danger-container: hsl(4, 70%, 22%);--color-info: hsl(210, 65%, 48%);--color-info-container: hsl(210, 55%, 92%);--color-on-info-container: hsl(210, 60%, 22%);--color-muted: hsl(0, 0%, 55%);--color-muted-container: hsl(0, 0%, 93%);--color-on-muted-container: hsl(0, 0%, 35%);--surface-tint: hsl(var(--hue), 30%, 50%);--input-bg: rgba(255, 255, 255, .7);--input-border: rgba(0, 0, 0, .12);--input-focus-ring: hsla(var(--hue), 65%, 48%, .25);--divider: rgba(0, 0, 0, .07)}[data-theme=dark]{--bg-gradient-a: hsl(var(--hue), 30%, 8%);--bg-gradient-b: hsl(var(--hue-secondary), 20%, 6%);--bg-gradient-c: hsl(calc(var(--hue) + 60), 15%, 10%);--glass-bg: rgba(30, 30, 45, .6);--glass-bg-heavy: rgba(30, 30, 45, .82);--glass-bg-light: rgba(40, 40, 55, .45);--glass-border: rgba(255, 255, 255, .1);--glass-border-subtle: rgba(255, 255, 255, .06);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3);--glass-shadow-lg: 0 16px 48px rgba(0, 0, 0, .4);--glass-blur: 24px;--text-primary: hsl(0, 0%, 93%);--text-secondary: hsl(0, 0%, 72%);--text-muted: hsl(0, 0%, 52%);--color-primary: hsl(var(--hue), 55%, 65%);--color-primary-hover: hsl(var(--hue), 60%, 72%);--color-primary-container: hsl(var(--hue), 30%, 20%);--color-on-primary: hsl(var(--hue), 40%, 12%);--color-on-primary-container: hsl(var(--hue), 55%, 82%);--color-success: hsl(152, 45%, 55%);--color-success-container: hsl(152, 30%, 18%);--color-on-success-container: hsl(152, 50%, 75%);--color-warning: hsl(38, 75%, 55%);--color-warning-container: hsl(38, 40%, 18%);--color-on-warning-container: hsl(38, 70%, 78%);--color-danger: hsl(4, 60%, 62%);--color-danger-container: hsl(4, 40%, 18%);--color-on-danger-container: hsl(4, 60%, 80%);--color-info: hsl(210, 55%, 62%);--color-info-container: hsl(210, 35%, 18%);--color-on-info-container: hsl(210, 55%, 80%);--color-muted: hsl(0, 0%, 55%);--color-muted-container: hsl(0, 0%, 18%);--color-on-muted-container: hsl(0, 0%, 72%);--surface-tint: hsl(var(--hue), 25%, 60%);--input-bg: rgba(255, 255, 255, .06);--input-border: rgba(255, 255, 255, .12);--input-focus-ring: hsla(var(--hue), 55%, 65%, .3);--divider: rgba(255, 255, 255, .07)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);font-size:15px;line-height:1.6}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-hover)}[x-cloak]{display:none}h1,h2,h3,h4,h5,h6{color:var(--text-primary);line-height:1.3;letter-spacing:-.02em}h1{font-size:1.75rem;font-weight:800}h2{font-size:1.3rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}body{background:var(--bg-gradient-a);min-height:100vh;position:relative}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse 80% 60% at 15% 20%,var(--bg-gradient-a),transparent),radial-gradient(ellipse 60% 80% at 85% 75%,var(--bg-gradient-b),transparent),radial-gradient(ellipse 50% 50% at 50% 50%,var(--bg-gradient-c),transparent)}body{display:flex}.app-content{flex:1;min-width:0;display:flex;flex-direction:column;margin-left:260px;transition:margin-left .35s cubic-bezier(.4,0,.2,1)}.app-content--full{flex:1;display:flex;flex-direction:column}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;padding:12px;z-index:100;transition:width .35s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column}.sidebar:before{content:"";position:absolute;inset:12px;border-radius:24px;background:var(--glass-bg-heavy);backdrop-filter:blur(var(--glass-blur)) saturate(1.6);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.6);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg);z-index:-1}.sidebar--collapsed{width:80px}.sidebar--collapsed~.app-content{margin-left:80px}.sidebar__brand{display:flex;align-items:center;gap:12px;padding:20px 16px 28px;color:var(--text-primary);font-weight:800;font-size:1.1rem;white-space:nowrap;letter-spacing:-.02em}.sidebar__logo{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-primary);border-radius:12px;font-size:.8rem;font-weight:800;color:var(--color-on-primary);flex-shrink:0;box-shadow:0 4px 12px hsla(var(--hue),65%,48%,.35)}.sidebar__nav{flex:1;display:flex;flex-direction:column;gap:4px;padding:0 8px;overflow-y:auto}.sidebar__section{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:20px 12px 6px}.sidebar__link{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;color:var(--text-secondary);font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.sidebar__link:hover{background:var(--glass-bg-light);color:var(--text-primary)}.sidebar__link--active{background:var(--color-primary-container);color:var(--color-on-primary-container);font-weight:600}.sidebar__link svg{flex-shrink:0;opacity:.8}.sidebar__link--active svg{opacity:1}.sidebar__toggle{display:flex;align-items:center;justify-content:center;padding:14px;border:none;background:none;color:var(--text-muted);cursor:pointer;transition:color .2s;margin:4px 8px;border-radius:12px}.sidebar__toggle:hover{color:var(--text-primary);background:var(--glass-bg-light)}.sidebar__toggle .rotate-180{transform:rotate(180deg)}.header{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border-bottom:1px solid var(--glass-border-subtle);position:sticky;top:0;z-index:50}.header__inner{display:flex;justify-content:space-between;align-items:center;height:64px;padding:0 28px}.header__brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;color:var(--text-primary);letter-spacing:-.02em}.header__brand:hover{color:var(--text-primary)}.header__logo{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-primary);border-radius:12px;font-size:.8rem;font-weight:800;color:var(--color-on-primary);box-shadow:0 4px 12px hsla(var(--hue),65%,48%,.3)}.header__nav{display:flex;align-items:center;gap:16px}.header__nav a{font-weight:500;color:var(--text-secondary);font-size:.875rem;padding:8px 16px;border-radius:100px;transition:all .2s}.header__nav a:hover{color:var(--text-primary);background:var(--glass-bg-light)}.header__user{display:flex;align-items:center;gap:10px;font-size:.875rem;font-weight:500;color:var(--text-secondary)}.header__logout{background:var(--glass-bg-light);border:1px solid var(--glass-border-subtle);padding:6px 16px;border-radius:100px;font-size:.8rem;font-weight:600;color:var(--text-secondary);cursor:pointer;width:auto;transition:all .2s}.header__logout:hover{background:var(--color-danger-container);color:var(--color-on-danger-container);border-color:transparent}.header__menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:var(--glass-bg-light);border-radius:12px;color:var(--text-primary);cursor:pointer}main{flex:1;padding:28px;max-width:1200px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;flex-wrap:wrap;gap:12px}.page-header h1{margin:0}.card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--glass-shadow);transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}.card__header{padding:18px 24px;border-bottom:1px solid var(--divider);display:flex;justify-content:space-between;align-items:center}.card__title{font-size:.95rem;font-weight:700}.card__body{padding:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);border-radius:20px;padding:24px;box-shadow:var(--glass-shadow);position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s}.stat-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--surface-tint));border-radius:20px 20px 0 0;opacity:.7}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--glass-shadow-lg)}.stat-card__label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.stat-card__value{font-size:2rem;font-weight:800;color:var(--text-primary);line-height:1.1;letter-spacing:-.03em}.table-container{overflow-x:auto;border-radius:20px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);box-shadow:var(--glass-shadow)}table{width:100%;border-collapse:collapse;font-size:.875rem}thead{background:var(--glass-bg-light)}th{text-align:left;padding:12px 18px;font-weight:700;font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-bottom:1px solid var(--divider)}td{padding:14px 18px;border-bottom:1px solid var(--divider);color:var(--text-secondary)}tr:last-child td{border-bottom:none}tbody tr{transition:background .15s}tbody tr:hover{background:var(--glass-bg-light)}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:100px;font-size:.72rem;font-weight:700;white-space:nowrap;letter-spacing:.02em}.badge--primary{background:var(--color-primary-container);color:var(--color-on-primary-container)}.badge--success{background:var(--color-success-container);color:var(--color-on-success-container)}.badge--warning{background:var(--color-warning-container);color:var(--color-on-warning-container)}.badge--danger{background:var(--color-danger-container);color:var(--color-on-danger-container)}.badge--info{background:var(--color-info-container);color:var(--color-on-info-container)}.badge--muted{background:var(--color-muted-container);color:var(--color-on-muted-container)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border-radius:100px;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:all .25s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap;width:auto;position:relative;overflow:hidden}.btn--primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 8px hsla(var(--hue),65%,48%,.3)}.btn--primary:hover{background:var(--color-primary-hover);color:var(--color-on-primary);box-shadow:0 4px 16px hsla(var(--hue),65%,48%,.4);transform:translateY(-1px)}.btn--secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn--secondary:hover{background:var(--glass-bg-heavy)}.btn--danger{background:var(--color-danger);color:#fff;box-shadow:0 2px 8px #d932264d}.btn--danger:hover{opacity:.92;transform:translateY(-1px)}.btn--success{background:var(--color-success);color:#fff;box-shadow:0 2px 8px #2e9e6a4d}.btn--success:hover{opacity:.92;transform:translateY(-1px)}.btn--sm{padding:6px 14px;font-size:.78rem}.btn--icon{padding:8px;border-radius:12px}.form-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:40px 20px}.form-container>div{width:100%;max-width:440px}.form-container>div:first-child{text-align:center;margin-bottom:32px}.form-container>div:last-child{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);border-radius:28px;padding:36px;box-shadow:var(--glass-shadow-lg)}.form-container h1{margin-bottom:4px}.form-container>div:first-child>p{color:var(--text-muted)}form{display:flex;flex-direction:column;gap:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.form-grid--full{grid-column:1 / -1}label{margin-bottom:6px;display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);letter-spacing:.01em}input,textarea,select{width:100%;border-radius:14px;font:inherit;font-size:.9rem;background:var(--input-bg);color:var(--text-primary);border:1.5px solid var(--input-border);transition:border-color .2s,box-shadow .2s,background .2s}input{height:44px;padding:0 16px}textarea{padding:12px 16px;resize:vertical;min-height:88px}select{height:44px;padding:0 36px 0 14px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--input-focus-ring);background:var(--input-bg)}input[data-invalid=true],textarea[data-invalid=true],select[data-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 4px #d932261f}input[data-invalid=true]+div,textarea[data-invalid=true]+div{color:var(--color-danger);font-size:.78rem;font-weight:500;margin-top:4px}button{width:auto;border-radius:100px;font:inherit}button[type=submit]{background:var(--color-primary);color:var(--color-on-primary);border:none;padding:12px 28px;font-weight:600;cursor:pointer;border-radius:100px;box-shadow:0 2px 8px hsla(var(--hue),65%,48%,.3);transition:all .25s cubic-bezier(.4,0,.2,1)}button[type=submit]:hover{background:var(--color-primary-hover);box-shadow:0 4px 16px hsla(var(--hue),65%,48%,.4);transform:translateY(-1px)}.alert{position:relative;padding:14px 20px;font-size:.875rem;font-weight:500;border-radius:16px;animation:alert-slide-in .4s cubic-bezier(.4,0,.2,1) both;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}.alert-destructive{background:var(--color-danger-container);color:var(--color-on-danger-container);border:1px solid var(--color-danger)}.alert-success{background:var(--color-success-container);color:var(--color-on-success-container);border:1px solid var(--color-success)}.flash-container{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:200;min-width:320px;max-width:440px}@keyframes alert-slide-in{0%{opacity:0;transform:translate(24px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}span[class*=avatar],.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:var(--color-primary-container);color:var(--color-on-primary-container);font-size:.75rem;font-weight:700;flex-shrink:0}.empty-state{text-align:center;padding:56px 24px;color:var(--text-muted)}.empty-state svg{margin-bottom:16px;opacity:.35}.empty-state p{margin-top:4px;font-size:.9rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item__label{font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.detail-item__value{font-size:.95rem;color:var(--text-primary);font-weight:500}.filters-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);border-radius:20px;padding:16px 20px;box-shadow:var(--glass-shadow)}.filters-bar select,.filters-bar input{width:auto;min-width:160px;height:40px;font-size:.82rem;border-radius:12px}.filters-bar form{flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px}.actions-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.show-grid{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}@media(max-width:768px){.sidebar{position:fixed;inset:auto 0 0;width:100%!important;height:auto;padding:0;flex-direction:row}.sidebar:before{inset:0;border-radius:20px 20px 0 0;background:var(--glass-bg-heavy)}.sidebar__brand,.sidebar__section,.sidebar__toggle{display:none}.sidebar__nav{flex-direction:row;justify-content:space-around;padding:8px 4px;gap:0;overflow:visible;width:100%}.sidebar__link{flex-direction:column;gap:2px;padding:8px 6px;font-size:.65rem;border-radius:12px;min-width:56px;text-align:center;justify-content:center}.sidebar__link svg{width:22px;height:22px}.sidebar__link span,.sidebar__link .sidebar__link-text{display:block!important;font-size:.6rem;line-height:1;overflow:hidden;text-overflow:ellipsis;max-width:64px}.app-content{margin-left:0!important;padding-bottom:80px}main{padding:20px 16px}.form-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.form-container{padding:24px 16px;min-height:auto}.form-container>div:last-child{padding:28px 20px;border-radius:24px}.header__inner{padding:0 16px}.flash-container{left:16px;right:16px;min-width:auto}.header__menu-btn{display:flex}.show-grid{grid-template-columns:1fr!important}[style*="grid-template-columns: 1fr 320px"]{display:flex!important;flex-direction:column}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.actions-row{flex-wrap:wrap}}.pwa-install-prompt{position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;justify-content:center;padding:16px;animation:pwa-slide-up .4s cubic-bezier(.22,1,.36,1)}.pwa-install-prompt__content{display:flex;align-items:center;gap:16px;padding:16px 20px;max-width:520px;width:100%;background:var(--glass-bg);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1.5px solid var(--glass-border);border-radius:20px;box-shadow:0 8px 32px #0000002e}.pwa-install-prompt__icon{border-radius:12px;flex-shrink:0}.pwa-install-prompt__text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.pwa-install-prompt__text strong{font-size:.95rem;font-weight:700;color:var(--text-primary)}.pwa-install-prompt__text span{font-size:.8rem;color:var(--text-muted)}.pwa-install-prompt__actions{display:flex;gap:8px;flex-shrink:0}@keyframes pwa-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.pwa-install-prompt{bottom:72px;padding:12px}.pwa-install-prompt__content{flex-wrap:wrap;gap:12px;padding:14px 16px}.pwa-install-prompt__actions{width:100%;justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:hsla(var(--hue),60%,55%,.25);color:inherit}
