@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap);:root{--accent:#6366f1;--accent-hover:#4f46e5;--accent-soft:#eef2ff;--accent-ring:#6366f159;--bg:#fff;--bg-elev:#fafafa;--bg-hover:#f4f4f5;--bg-active:#e4e4e7;--border:#e4e4e7;--border-strong:#d4d4d8;--fg:#18181b;--fg-muted:#52525b;--fg-subtle:#71717a;--fg-faint:#a1a1aa;--success:#10b981;--success-soft:#ecfdf5;--warning:#f59e0b;--warning-soft:#fef3c7;--danger:#ef4444;--danger-soft:#fef2f2;--info:#0ea5e9;--info-soft:#f0f9ff;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 4px 12px #1018280f,0 1px 2px #1018280a;--shadow-lg:0 12px 32px #10182814,0 2px 6px #1018280d;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px}*{box-sizing:border-box}#q-app,body,html{-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--fg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important;font-size:13px;line-height:1.5}.mono{font-family:JetBrains Mono,ui-monospace,Menlo,monospace!important;font-size:12px}.app-layout{background:var(--bg);display:flex;min-height:100vh}.app-main{display:flex;flex:1;flex-direction:column;min-width:0}.app-content{flex:1;overflow:hidden;padding:20px 24px 40px}.druid-topbar{background:var(--bg);border-bottom:1px solid var(--border);gap:12px;height:52px;padding:0 24px;position:sticky;top:0;z-index:10}.druid-topbar,.topbar-crumb{align-items:center;display:flex}.topbar-crumb{font-size:13px;gap:6px}.topbar-crumb,.topbar-crumb .crumb-root{color:var(--fg-subtle)}.topbar-crumb .crumb-sep{color:var(--fg-faint)}.topbar-crumb .crumb-page{color:var(--fg);font-weight:500}.topbar-spacer{flex:1}.topbar-search{position:relative;width:220px}.topbar-search .search-icon{color:var(--fg-faint);font-size:16px!important;left:9px;position:absolute;top:50%;transform:translateY(-50%)}.topbar-search input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);font-family:inherit;font-size:13px;height:30px;outline:none;padding:0 32px;width:100%}.topbar-search input::placeholder{color:var(--fg-faint)}.topbar-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.druid-sidebar{background:var(--bg-elev);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;height:100vh;padding:14px 10px;position:sticky;top:0;width:228px}.sidebar-brand{align-items:center;color:var(--fg);display:flex;font-size:14px;font-weight:600;gap:10px;letter-spacing:-.01em;padding:4px 8px 16px}.sidebar-brand-mark{background:linear-gradient(135deg,var(--accent),#8b5cf6);border-radius:6px;color:#fff;display:grid;flex-shrink:0;font-size:11px;font-weight:700;height:24px;place-items:center;width:24px}.sidebar-section-label{color:var(--fg-faint);font-size:10px;font-weight:600;letter-spacing:.08em;padding:14px 10px 6px;text-transform:uppercase}.sidebar-nav{display:flex;flex-direction:column;gap:1px}.sidebar-item{align-items:center;border-radius:var(--radius-sm);color:var(--fg-muted)!important;cursor:pointer;display:flex;font-size:13px;gap:10px;padding:7px 10px;text-decoration:none;transition:background .1s,color .1s}.sidebar-item .material-icons,.sidebar-item .q-icon{color:var(--fg-subtle);flex-shrink:0;font-size:16px!important}.sidebar-item:hover{background:var(--bg-hover);color:var(--fg)!important}.sidebar-item.is-active,.sidebar-item.router-link-exact-active{background:var(--bg-active);color:var(--fg)!important;font-weight:500}.sidebar-item.is-active .material-icons,.sidebar-item.is-active .q-icon,.sidebar-item.router-link-exact-active .material-icons,.sidebar-item.router-link-exact-active .q-icon{color:var(--fg)}.sidebar-count{color:var(--fg-faint);font-size:11px;font-weight:500;margin-left:auto}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:10px}.sidebar-logout{align-items:center;border-radius:var(--radius-sm);color:var(--fg-muted);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:7px 10px;transition:background .1s}.sidebar-logout:hover{background:var(--bg-hover);color:var(--danger)}.sidebar-logout .material-icons{font-size:16px!important}.page-head{align-items:flex-end;display:flex;gap:12px;margin-bottom:16px}.page-title{font-size:20px;font-weight:600;letter-spacing:-.015em;margin:0}.page-desc{color:var(--fg-subtle);font-size:13px;margin:4px 0 0}.page-head-actions{display:flex;gap:8px;margin-left:auto}.druid-table{background:var(--bg)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:none!important;font-family:Inter,sans-serif!important;font-size:13px!important}.druid-table .q-table__top{background:var(--bg)!important;border-bottom:1px solid var(--border);padding:10px 14px!important}.druid-table .q-table__title{color:var(--fg)!important;font-size:14px!important;font-weight:600!important}.druid-table thead tr th{background:var(--bg-elev)!important;color:var(--fg-subtle)!important;font-size:11px!important;font-weight:500!important;letter-spacing:0!important;padding:8px 12px!important;text-transform:none!important}.druid-table tbody td,.druid-table thead tr th{border-bottom:1px solid var(--border)!important}.druid-table tbody td{color:var(--fg)!important;font-size:13px!important;padding:9px 12px!important}.druid-table tbody tr{transition:background .08s}.druid-table tbody tr:hover td{background:var(--bg-hover)!important}.druid-table tbody tr:last-child td{border-bottom:none!important}.druid-table .q-table__bottom{background:var(--bg)!important;border-top:1px solid var(--border);color:var(--fg-subtle);font-size:12px;min-height:unset;padding:8px 14px}.druid-table .q-table__separator{background:var(--border)!important}.druid-table .q-field{font-family:Inter,sans-serif!important;font-size:13px!important}.druid-table .q-field .q-field__control{background:var(--bg)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;height:30px!important;min-height:30px!important;padding:0 8px!important}.druid-table .q-field .q-field__control:after,.druid-table .q-field .q-field__control:before{border:none!important}.druid-table .q-field .q-field__native{color:var(--fg)!important;font-size:13px!important;padding:0!important}.druid-table .q-field .q-field__marginal{color:var(--fg-faint)!important;height:30px!important}.q-menu{border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;font-family:Inter,sans-serif!important;min-width:180px}.q-menu .q-item{border-radius:var(--radius-sm)!important;color:var(--fg)!important;font-size:13px!important;margin:2px 4px!important;min-height:34px!important;padding:6px 12px!important}.q-menu .q-item:hover{background:var(--bg-hover)!important}.q-dialog__backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000047!important}.q-dialog__inner--right{align-items:stretch!important;bottom:0!important;justify-content:flex-end!important;max-height:100%!important;padding:0!important;right:0!important;top:0!important}.druid-drawer-card{animation:drawer-in .2s ease-out;background:var(--bg)!important;border-left:1px solid var(--border)!important;border-radius:0!important;box-shadow:var(--shadow-lg)!important;display:flex!important;flex-direction:column!important;height:100vh!important;margin:0!important;max-height:100vh!important;max-width:100%!important;width:480px!important}.druid-drawer-card .q-card__section{padding:0!important}@keyframes drawer-in{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}.drawer-head{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:10px;padding:16px 20px}.drawer-avatar{background:linear-gradient(135deg,#f472b6,#818cf8);border-radius:50%;color:#fff;font-size:13px;font-weight:600;place-items:center}.drawer-avatar,.drawer-space-icon{display:grid;flex-shrink:0;height:36px;width:36px}.drawer-space-icon{background:var(--accent-soft);border-radius:8px;color:var(--accent);place-items:center}.drawer-space-icon .material-icons{font-size:18px!important}.drawer-head-info{flex:1;min-width:0}.drawer-title{color:var(--fg);font-size:15px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-sub{color:var(--fg-subtle);font-family:JetBrains Mono,monospace;font-size:11px;margin-top:1px}.drawer-close-btn{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--fg-muted);cursor:pointer;display:grid;flex-shrink:0;height:28px;place-items:center;width:28px}.drawer-close-btn:hover{background:var(--bg-hover);color:var(--fg)}.drawer-close-btn .material-icons{font-size:18px!important}.drawer-tabs{background:var(--bg);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:2px;padding:0 14px}.drawer-tab{background:#0000;border:none;color:var(--fg-subtle);cursor:pointer;font-size:12px;font-weight:500;padding:10px 12px;position:relative;transition:color .1s}.drawer-tab.is-active,.drawer-tab:hover{color:var(--fg)}.drawer-tab.is-active:after{background:var(--accent);border-radius:2px 2px 0 0;bottom:-1px;content:"";height:2px;left:8px;position:absolute;right:8px}.druid-drawer-card .q-tabs{background:#0000!important;border-bottom:1px solid var(--border);padding:0 6px}.druid-drawer-card .q-tabs .q-tab{color:var(--fg-subtle)!important;font-size:12px!important;font-weight:500!important;min-height:40px!important;padding:0 12px!important;text-transform:none!important}.druid-drawer-card .q-tabs .q-tab.q-tab--active{color:var(--fg)!important}.druid-drawer-card .q-tabs .q-tabs__arrow{color:var(--fg-subtle)!important}.druid-drawer-card .q-tabs .q-tab__indicator{background:var(--accent)!important;height:2px!important}.druid-drawer-card .q-tab-panels{background:#0000!important}.druid-drawer-card .q-tab-panel{padding:0!important}.drawer-body{flex:1;overflow-y:auto;padding:20px}.drawer-actions{align-items:center;background:var(--bg);border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;padding:12px 20px}.dl-list{border:1px solid var(--border);border-radius:var(--radius-md);margin-top:4px;overflow:hidden}.dl-row{align-items:center;border-bottom:1px solid var(--border);display:flex;font-size:12px;gap:12px;padding:9px 12px}.dl-row:last-child{border-bottom:none}.dl-key{color:var(--fg-subtle);flex-shrink:0;width:200px}.dl-val{color:var(--fg);flex:1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-val--mono{font-family:JetBrains Mono,monospace;font-size:11px}.drawer-section-label{color:var(--fg-faint);font-size:11px;font-weight:600;letter-spacing:.06em;margin:16px 0 8px;text-transform:uppercase}.drawer-section-label:first-child{margin-top:0}.druid-drawer-card .q-field--dense .q-field__control{height:36px!important}.druid-drawer-card .q-field__label{color:var(--fg-muted)!important;font-size:12px!important;font-weight:500!important}.druid-drawer-card .q-field__native{color:var(--fg)!important;font-family:Inter,sans-serif!important;font-size:13px!important}.druid-drawer-card .q-field--outlined .q-field__control{border-color:var(--border)!important;border-radius:var(--radius-sm)!important}.druid-drawer-card .q-field--outlined .q-field__control:hover:before{border-color:var(--border-strong)!important}.druid-drawer-card .q-field--focused .q-field__control:after{border-color:var(--accent)!important;border-width:1.5px!important}.druid-drawer-card .q-toggle__track{background:var(--border-strong)!important}.druid-drawer-card .q-toggle__thumb:after{background:#fff!important}.druid-drawer-card .q-toggle__inner--truthy .q-toggle__track{background:var(--accent)!important}.drawer-btn{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:6px;height:30px;padding:0 12px;transition:background .1s,border-color .1s;white-space:nowrap}.drawer-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.drawer-btn.drawer-btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}.drawer-btn.drawer-btn--accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.drawer-btn.drawer-btn--danger{border-color:var(--border);color:var(--danger)}.drawer-btn.drawer-btn--danger:hover{background:var(--danger-soft);border-color:var(--danger)}.drawer-btn.drawer-btn--ghost{background:#0000;border-color:#0000}.drawer-btn.drawer-btn--ghost:hover{background:var(--bg-hover)}.drawer-btn .material-icons{font-size:15px!important}.druid-badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;height:20px;padding:0 7px}.druid-badge--success{background:var(--success-soft);color:var(--success)}.druid-badge--warning{background:var(--warning-soft);color:var(--warning)}.druid-badge--neutral{background:var(--bg-elev);border:1px solid var(--border);color:var(--fg-muted)}.druid-badge--accent{background:var(--accent-soft);color:var(--accent)}.druid-badge--muted{background:var(--bg-elev);border:1px solid var(--border);color:var(--fg-faint)}.druid-badge--danger{background:var(--danger-soft);color:var(--danger)}.druid-badge:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.druid-table-toolbar{align-items:center;display:flex;gap:10px;width:100%}.druid-add-btn{align-items:center;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:13px;font-weight:500;gap:6px;height:32px;padding:0 12px;transition:background .1s;white-space:nowrap}.druid-add-btn .material-icons{font-size:16px}.druid-add-btn:hover{background:var(--accent-hover)}.druid-search-input{width:220px}.druid-search-input .q-field__control{border-radius:var(--radius-sm)!important;font-family:Inter,sans-serif!important;font-size:13px!important;height:32px!important;min-height:32px!important}.druid-search-input .q-field__native{font-size:13px!important}.druid-row-menu-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--fg-faint);cursor:pointer;display:inline-flex;height:28px;justify-content:center;transition:background .1s,color .1s;width:28px}.druid-row-menu-btn .material-icons{font-size:18px}.druid-row-menu-btn:hover{background:var(--bg-hover);color:var(--fg-muted)}.druid-menu-list{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:160px;padding:4px}.druid-menu-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--fg);cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:13px;gap:8px;padding:7px 10px;text-align:left;transition:background .08s;width:100%}.druid-menu-item .material-icons{color:var(--fg-subtle);font-size:16px}.druid-menu-item:hover{background:var(--bg-hover)}.druid-menu-item--danger,.druid-menu-item--danger .material-icons{color:var(--danger)}.druid-menu-item--danger:hover{background:var(--danger-soft,#fef2f2)}.druid-table-footer{align-items:center;color:var(--fg-subtle);display:flex;font-family:Inter,sans-serif;font-size:12px;justify-content:space-between;width:100%}.druid-table-footer__total{color:var(--fg-muted);font-weight:500}.druid-table-footer__page{color:var(--fg-faint)}.druid-login-wrap{background:var(--bg);display:grid;min-height:100vh;place-items:center}.druid-login-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:32px 28px;width:360px}.druid-login-logo{background:linear-gradient(135deg,var(--accent),#8b5cf6);border-radius:10px;color:#fff;display:grid;font-size:16px;font-weight:700;height:40px;margin:0 auto 18px;place-items:center;width:40px}.druid-login-title{color:var(--fg);font-size:18px;font-weight:600;letter-spacing:-.015em;margin:0 0 4px;text-align:center}.druid-login-sub{color:var(--fg-subtle);font-size:13px;margin:0 0 22px;text-align:center}.druid-field{margin-bottom:14px}.druid-field label{color:var(--fg-muted);display:block;font-size:12px;font-weight:500;margin-bottom:5px}.druid-field input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);font-family:inherit;font-size:13px;height:32px;outline:none;padding:0 10px;transition:border-color .15s,box-shadow .15s;width:100%}.druid-field input::placeholder{color:var(--fg-faint)}.druid-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.druid-error{background:var(--danger-soft);border-radius:var(--radius-sm);color:var(--danger);font-size:12px;margin-bottom:12px;padding:6px 10px}.druid-btn{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:6px;height:32px;justify-content:center;margin-top:4px;padding:0 12px;transition:background .1s;width:100%}.druid-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.q-date,.q-time{background:var(--bg)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;font-family:Inter,sans-serif!important;overflow:hidden!important}.q-date__header,.q-time__header{background:var(--accent)!important;border-radius:0!important;padding:12px 16px!important}.q-date__header-subtitle,.q-date__header-title-label,.q-date__header-today,.q-time__header-label{font-family:Inter,sans-serif!important;font-weight:500!important}.q-time__header-label{font-size:24px!important}.q-time__header-ampm{font-size:11px!important;font-weight:500!important;letter-spacing:.05em!important}.q-date__content,.q-date__main{color:var(--fg)!important}.q-date__content,.q-date__main,.q-time__content,.q-time__main{background:var(--bg)!important;font-family:Inter,sans-serif!important}.q-date__view{background:var(--bg)!important;padding:8px!important}.q-date__navigation{margin-bottom:4px!important}.q-date__calendar-weekdays>div{color:var(--fg-faint)!important;font-size:11px!important;font-weight:600!important;letter-spacing:.04em!important;text-transform:uppercase!important}.q-date__calendar-item,.q-date__calendar-item>button,.q-date__calendar-item>div{font-family:Inter,sans-serif!important;font-size:12px!important}.q-date__calendar-item>button:hover{background:var(--bg-hover)!important}.q-date__today{border:1.5px solid var(--accent)!important;color:var(--accent)!important}.q-date__today.bg-primary{color:#fff!important}.q-date__months-item,.q-date__years-item{font-family:Inter,sans-serif!important;font-size:13px!important}.q-date__months-item .q-btn,.q-date__years-item .q-btn{font-size:12px!important;font-weight:400!important}.q-time__clock-circle{background:var(--bg-elev)!important;border:1px solid var(--border)!important}.q-time__clock-pointer,.q-time__clock-pointer:after,.q-time__clock-pointer:before,.q-time__clock-position--active{background:var(--accent)!important}.q-time__clock-position--active{color:#fff!important}.q-time__clock-center{background:var(--accent)!important}.q-popup-proxy{border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;overflow:hidden!important}.q-popup-proxy>.q-card{border-radius:var(--radius-md)!important;box-shadow:none!important}.q-date .q-btn,.q-time .q-btn{font-size:12px!important}.q-date .q-btn,.q-date .q-btn__content,.q-time .q-btn,.q-time .q-btn__content{font-family:Inter,sans-serif!important}.q-date .bg-primary,.q-time .bg-primary{background:var(--accent)!important}