@font-face{font-family:GeistEthereal;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin-wght-normal.woff2) format("woff2-variations")}@font-face{font-family:JetBrainsMonoEthereal;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2-variations")}.auth-ethereal{--t-bg-deep: #040816;--t-bg: #060b1e;--t-surface: #0c122c;--t-surface-2: #131a3a;--t-border-subtle: #131a3a;--t-border-strong: #6d7db6;--t-border-focus: #7d82d9;--t-text: #ffcead;--t-text-secondary: #ffcead;--t-text-muted: #b6a6b2;--t-text-dim: #6d7db6;--t-hdr-text: #ffd4bd;--t-brand: #7d82d9;--t-brand-soft: rgba(125, 130, 217, .12);--t-brand-ink: #0c0e10;--t-brand-glow: rgba(125, 130, 217, .45);--t-field-crest: #ced0f1;--t-field-hover: #a4a8e4;--t-font-sans: "GeistEthereal", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--t-font-mono: "JetBrainsMonoEthereal", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;color-scheme:dark;background-color:var(--t-bg-deep);font-family:var(--t-font-sans);color:var(--t-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.auth-ethereal ::selection{background:#252e56;color:var(--t-text)}.auth-ethereal .ethereal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.auth-ethereal .ethereal-meadow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 50% 118%,#4a7c608c,#28565452 34%,#0c182e00 66%),radial-gradient(90% 70% at 18% 8%,#7d82d938,#7d82d900 55%),radial-gradient(80% 60% at 84% 14%,#a3bfd129,#a3bfd100 50%),linear-gradient(180deg,#050a1c,#071427 40%,#0a2230 72%,#123028)}.auth-ethereal .ethereal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#060b1e73,#040816e0);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.auth-ethereal .ethereal-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.25;display:block}.auth-ethereal .ethereal-shell{position:relative;z-index:1;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:20px}.auth-ethereal .ethereal-brand{display:flex;align-items:center;justify-content:center}.auth-ethereal .ethereal-brand img{width:172px;max-width:70%;height:auto;filter:drop-shadow(0 4px 18px rgba(125,130,217,.4))}.auth-ethereal .ethereal-card{width:100%;padding:28px 26px;background:#0c122cb8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--t-border-subtle);box-shadow:0 4px 24px -1px #0006,0 0 0 1px #ffffff0d,0 12px 48px -4px #04081699,inset 0 1px #ffffff1a;border-radius:14px;position:relative;overflow:hidden;transition:border-color .25s ease,box-shadow .25s ease}.auth-ethereal .ethereal-card:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,rgba(125,130,217,.6),transparent);pointer-events:none}.auth-ethereal .ethereal-tabs{display:flex;gap:6px;padding:5px;margin-bottom:22px;background:#03061099;border:1px solid var(--t-border-subtle);border-radius:10px}.auth-ethereal .ethereal-tabs button{flex:1;height:38px;border:none;border-radius:7px;background:transparent;color:var(--t-text-muted);font-family:var(--t-font-sans);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.auth-ethereal .ethereal-tabs button:hover{color:var(--t-text)}.auth-ethereal .ethereal-tabs button.active{background:var(--t-brand);color:var(--t-brand-ink);box-shadow:0 0 16px #7d82d966}.auth-ethereal .ethereal-form-group{margin-bottom:1.05rem;display:flex;flex-direction:column;gap:.375rem}.auth-ethereal .ethereal-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.auth-ethereal .ethereal-label{font-size:.8125rem;font-weight:500;color:var(--t-text-muted);letter-spacing:.02em;display:flex;align-items:center;justify-content:space-between}.auth-ethereal .ethereal-input-wrapper{position:relative;display:flex;align-items:center}.auth-ethereal .ethereal-input{width:100%;height:46px;padding:0 1rem;background:#030610bf;border:1px solid var(--t-border-subtle);border-radius:8px;color:var(--t-text);font-family:var(--t-font-sans);font-size:.9375rem;outline:none;transition:all .2s cubic-bezier(.16,1,.3,1)}.auth-ethereal .ethereal-input.mono{font-family:var(--t-font-mono);letter-spacing:.04em}.auth-ethereal .ethereal-input::placeholder{color:#b6a6b266}.auth-ethereal .ethereal-input:hover{border-color:#6d7db680;background:#030610e6}.auth-ethereal .ethereal-input:focus{border-color:var(--t-brand);background:#040816f2;box-shadow:0 0 0 3px #7d82d933,0 0 16px -2px #7d82d940}.auth-ethereal .ethereal-input-wrapper.has-action .ethereal-input{padding-right:4.6rem}.auth-ethereal .ethereal-input-action{position:absolute;right:.6rem;background:transparent;border:none;color:var(--t-text-dim);cursor:pointer;font-family:var(--t-font-sans);font-size:.78rem;font-weight:600;padding:.25rem .4rem;border-radius:5px;transition:color .15s ease,background .15s ease}.auth-ethereal .ethereal-input-action:hover{color:var(--t-text);background:#ffffff0f}.auth-ethereal .ethereal-btn{width:100%;height:46px;margin-top:6px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--t-brand);color:var(--t-brand-ink);font-family:var(--t-font-sans);font-size:.9375rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;position:relative;overflow:hidden;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #00000040,0 0 0 1px #fff3 inset,0 0 18px #7d82d959}.auth-ethereal .ethereal-btn:hover:not(:disabled){background:#9095eb;color:#040816;box-shadow:0 4px 16px #00000059,0 0 0 1px #ffffff4d inset,0 0 24px #7d82d98c;transform:translateY(-1px)}.auth-ethereal .ethereal-btn:active:not(:disabled){transform:translateY(0);background:#7176cb;box-shadow:0 1px 4px #0000004d}.auth-ethereal .ethereal-btn:disabled{opacity:.6;cursor:default}.auth-ethereal .ethereal-btn:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(60deg,transparent,rgba(255,255,255,.15),transparent);transform:rotate(30deg) translateY(-100%);transition:transform .6s ease;pointer-events:none}.auth-ethereal .ethereal-btn:hover:not(:disabled):after{transform:rotate(30deg) translateY(100%)}.auth-ethereal .ethereal-alert{margin-bottom:14px;padding:10px 12px;background:#ed5b5a1f;border:1px solid rgba(237,91,90,.35);border-radius:8px;color:#ffb3b2;font-size:.85rem;line-height:1.4}.auth-ethereal .ethereal-footer{text-align:center;font-size:.78rem;color:var(--t-text-muted);font-family:var(--t-font-mono);letter-spacing:.03em}@media(max-width:480px){.auth-ethereal .ethereal-row{grid-template-columns:1fr;gap:0}.auth-ethereal .ethereal-card{padding:24px 20px}}:root{--accent: #7c5cff;--accent-2: #5b8cff;--accent-fg: #ffffff;--ok: #34d399;--warn: #fbbf24;--danger: #f87171;--info: #60a5fa;--radius: 14px;--radius-sm: 9px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--shadow: 0 10px 30px rgba(0, 0, 0, .25)}html[data-theme=dark]{--bg: #0e0f13;--bg-2: #14161c;--surface: #191c24;--surface-2: #1f232d;--elevated: #232834;--border: #2a2f3c;--border-strong: #3a4152;--text: #e6e8ee;--text-strong: #ffffff;--muted: #98a1b3;--input-bg: #10131a}html[data-theme=light]{--bg: #f4f5f9;--bg-2: #eceef4;--surface: #ffffff;--surface-2: #f7f8fc;--elevated: #ffffff;--border: #e2e5ee;--border-strong: #cbd1e0;--text: #1f2430;--text-strong: #0c0e14;--muted: #667085;--input-bg: #ffffff;--shadow: 0 10px 30px rgba(20, 30, 60, .08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}h1,h2,h3,h4{color:var(--text-strong);margin:0 0 .4em;font-weight:650}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .6em}small{color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--surface-2);color:var(--text);font:inherit;font-weight:550;cursor:pointer;transition:filter .15s,background .15s,border-color .15s,transform .05s;white-space:nowrap}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-fg)}.btn.ghost{background:transparent;border-color:var(--border)}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:transparent;border-color:var(--border);color:var(--danger)}.btn.danger:hover{background:#f871711f}.btn.sm{padding:6px 11px;font-size:.85rem}.btn.block{width:100%}.btn svg{width:18px;height:18px;flex:none}.field{display:block;margin-bottom:14px}.field>label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:6px;font-weight:550}.input,.select,textarea.input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);color:var(--text);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,textarea.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c5cff2e}textarea.input{resize:vertical;min-height:84px}.time-ic{display:inline-flex;color:var(--text);flex:none}.time-ic svg{width:18px;height:18px;flex:none}input[type=date].input,input[type=time].input{color-scheme:light}html[data-theme=dark] input[type=date].input,html[data-theme=dark] input[type=time].input{color-scheme:dark}input[type=date].input::-webkit-calendar-picker-indicator,input[type=time].input::-webkit-calendar-picker-indicator{cursor:pointer}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;flex:none;width:42px;height:24px;margin:0;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-strong);cursor:pointer;vertical-align:middle;transition:background .18s ease,border-color .18s ease}input[type=checkbox]:after{content:"";position:absolute;top:50%;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transform:translateY(-50%);transition:transform .18s ease}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{transform:translate(18px,-50%)}input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px #7c5cff47}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;gap:12px;flex-wrap:wrap}.row>.field{flex:1;min-width:160px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card.tight{padding:14px}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media(max-width:900px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:600;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.badge.ok{color:var(--ok);border-color:#34d39966;background:#34d3991a}.badge.warn{color:var(--warn);border-color:#fbbf2466;background:#fbbf241a}.badge.danger{color:var(--danger);border-color:#f8717166;background:#f871711a}.badge.info{color:var(--info);border-color:#60a5fa66;background:#60a5fa1a}.badge.accent{color:#cbb8ff;border-color:#7c5cff73;background:#7c5cff24}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 20% -10%,rgba(124,92,255,.18),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(91,140,255,.14),transparent 55%),var(--bg)}.auth-card{width:100%;max-width:420px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px}.auth-brand .logo{width:200px;max-width:70%;height:auto;object-fit:contain}.auth-brand .name{font-size:1.35rem;font-weight:700;color:var(--text-strong)}.auth-brand .sub{font-size:.8rem;color:var(--muted)}.tabs-switch{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:4px;margin-bottom:18px}.tabs-switch button{flex:1;padding:8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}.tabs-switch button.active{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow)}.alert{padding:10px 13px;border-radius:var(--radius-sm);font-size:.88rem;margin-bottom:14px;border:1px solid}.alert.error{color:var(--danger);border-color:#f8717166;background:#f871711a}.alert.success{color:var(--ok);border-color:#34d39966;background:#34d3991a}.alert.info{color:var(--info);border-color:#60a5fa66;background:#60a5fa1a}.alert.warn{color:var(--warn);border-color:#fbbf2466;background:#fbbf241a}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px 18px}.sidebar .brand .logo{width:150px;max-width:100%;height:auto;object-fit:contain}.sidebar .brand .name{font-weight:700;color:var(--text-strong);font-size:1.05rem}.logo-light,[data-theme=light] .logo-dark{display:none}[data-theme=light] .logo-light{display:block}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--muted);cursor:pointer;font-weight:550;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:linear-gradient(135deg,#7c5cff38,#5b8cff1f);color:var(--text-strong)}.nav-item.active svg{color:var(--accent)}.nav-item svg{width:19px;height:19px;flex:none}.nav-sep{height:1px;background:var(--border);margin:10px 6px}.nav-foot{margin-top:auto}.user-chip{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;background:var(--surface);border:1px solid var(--border);margin-bottom:8px}.avatar{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.user-chip .meta{overflow:hidden}.user-chip .meta b{color:var(--text-strong);display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip .meta small{color:var(--muted)}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 26px;border-bottom:1px solid var(--border);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}.topbar .title h1{margin:0;font-size:1.3rem}.topbar .title p{margin:2px 0 0;color:var(--muted);font-size:.85rem}.content{padding:24px 26px 60px;max-width:1180px;width:100%}.icon-btn.hamburger{display:none}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;width:250px;transform:translate(-105%);transition:transform .2s;box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.icon-btn.hamburger{display:inline-flex}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:35}}table.tbl{width:100%;border-collapse:collapse;font-size:.9rem}table.tbl th{text-align:left;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}table.tbl td{padding:11px 12px;border-bottom:1px solid var(--border)}table.tbl tr:last-child td{border-bottom:0}.tbl-wrap{overflow-x:auto}.stat{display:flex;flex-direction:column;gap:4px}.stat .n{font-size:1.8rem;font-weight:700;color:var(--text-strong);line-height:1}.stat .l{color:var(--muted);font-size:.82rem}.stat .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--accent);margin-bottom:4px}.stat .ic svg{width:20px;height:20px}.list{display:flex;flex-direction:column;gap:10px}.list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.list-item .grow{flex:1;min-width:0}.list-item h4{margin:0 0 2px;font-size:.96rem}.list-item p{margin:0;color:var(--muted);font-size:.86rem}.meta-line{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.8rem;margin-top:4px}.empty{text-align:center;color:var(--muted);padding:34px 16px}.empty svg{width:40px;height:40px;opacity:.5;margin-bottom:8px}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.center-load{display:grid;place-items:center;min-height:60vh}@keyframes spin{to{transform:rotate(360deg)}}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;display:grid;place-items:center;padding:20px;z-index:60}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;box-shadow:var(--shadow);max-height:90vh;display:flex;flex-direction:column}.modal header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.modal header h3{margin:0}.modal .body{padding:18px;overflow-y:auto}.modal footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--border)}.icon-btn{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex}.icon-btn svg{width:17px;height:17px;flex:none}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal-dow{background:var(--surface-2);color:var(--muted);font-size:.76rem;font-weight:600;text-align:center;padding:8px 0;text-transform:uppercase}.cal-cell{background:var(--surface);min-height:104px;min-width:0;padding:6px;display:flex;flex-direction:column;gap:4px}.cal-cell.dim{background:var(--bg-2)}.cal-cell .d{font-size:.8rem;color:var(--muted);font-weight:600;align-self:flex-start;padding:1px 6px;border-radius:6px}.cal-cell.today .d{background:#f4a3a3;color:#fff}.cal-ev{font-size:.74rem;padding:3px 6px;border-radius:6px;color:#fff;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px 12px;margin-bottom:14px}.cal-period{font-weight:650;color:var(--text-strong)}.cal-tb-col{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.cal-tb-col.left{justify-content:flex-start}.cal-tb-col.center{justify-content:center}.cal-tb-col.right{justify-content:flex-end}.cal-nav{display:inline-flex;align-items:center;gap:8px}.cal-help{position:relative;display:inline-flex;outline:none}.cal-help-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);font-weight:700;font-size:.82rem;cursor:help}.cal-help:hover .cal-help-btn,.cal-help:focus-within .cal-help-btn{color:var(--text-strong);border-color:var(--accent)}.cal-help-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:flex;flex-direction:column;gap:8px;min-width:190px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px #00000047;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease,visibility .12s}.cal-help:hover .cal-help-pop,.cal-help:focus-within .cal-help-pop{opacity:1;visibility:visible;transform:none}.cal-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}@media(max-width:760px){.cal-toolbar{grid-template-columns:1fr}.cal-tb-col.left,.cal-tb-col.center,.cal-tb-col.right{justify-content:center}.cal-help-pop{right:auto;left:0}}.cal-tg{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.cal-tg-allday{display:flex;gap:6px;flex-wrap:wrap;padding:8px 8px 8px 60px;border-bottom:1px solid var(--border);background:var(--surface-2)}.cal-tg-chip{font-size:.74rem;padding:3px 9px;border-radius:6px;color:#fff;cursor:pointer;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-tg-head{display:grid;border-bottom:1px solid var(--border);background:var(--surface-2)}.cal-tg-dh{text-align:center;padding:7px 4px;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.cal-tg-dh .dow{font-size:.7rem;text-transform:uppercase;color:var(--muted);font-weight:600}.cal-tg-dh .dnum{font-size:.95rem;font-weight:700;color:var(--text-strong)}.cal-tg-dh.today .dnum{color:#e07a7a}.cal-tg-body{display:grid;position:relative}.cal-tg-hourlabel{font-size:.7rem;color:var(--muted);text-align:right;padding:2px 6px 0 0;box-sizing:border-box}.cal-tg-col{position:relative;border-left:1px solid var(--border)}.cal-tg-col.today{background:#f4a3a312}.cal-tg-hourline{border-top:1px solid var(--border);box-sizing:border-box}.cal-tg-hourline:first-child{border-top:0}.cal-tg-ev{position:absolute;border-radius:6px;color:#fff;padding:2px 6px;overflow:hidden;cursor:pointer;box-sizing:border-box;box-shadow:0 1px 2px #0000002e;line-height:1.22}.cal-tg-ev .t{font-size:.67rem;opacity:.92}.cal-tg-ev .m{font-size:.75rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-tg-ev .s{font-size:.68rem;opacity:.88;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-list-group+.cal-list-group{margin-top:18px}.cal-list-day{font-weight:650;color:var(--text-strong);margin:0 0 8px;font-size:.95rem}.view-switch{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px}.view-switch button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);padding:6px 12px;border-radius:6px;cursor:pointer;font:inherit;font-weight:550;font-size:.85rem}.view-switch button svg{width:14px;height:14px;flex:none}.view-switch button.active{background:var(--surface);color:var(--text-strong)}.chat-wrap{display:grid;grid-template-columns:300px 1fr;gap:16px}@media(max-width:800px){.chat-wrap{grid-template-columns:1fr}}.ticket-list{display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow-y:auto}.ticket-row{padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.ticket-row.active{border-color:var(--accent);background:var(--surface-2)}.ticket-row h4{margin:0 0 3px;font-size:.92rem}.chat-panel{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:60vh}.chat-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px}.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.bubble{max-width:78%;padding:9px 13px;border-radius:14px;font-size:.9rem}.bubble .who{font-size:.72rem;color:var(--muted);margin-bottom:3px;font-weight:600}.bubble.them{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.me{align-self:flex-end;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-bottom-right-radius:4px}.bubble.me .who{color:#ffffffbf}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-input .input{flex:1}.flex{display:flex}.between{justify-content:space-between}.items-center{align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-0{margin-bottom:0}.muted{color:var(--muted)}.right{text-align:right}.nowrap{white-space:nowrap}.wrap-any{overflow-wrap:anywhere}.pointer{cursor:pointer}.hidden{display:none}html[data-theme=dark]{--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-lift: 0 14px 34px rgba(0, 0, 0, .42);--ring-hi: inset 0 1px 0 rgba(255, 255, 255, .05)}html[data-theme=light]{--shadow-sm: 0 1px 2px rgba(20, 30, 60, .06);--shadow-lift: 0 16px 38px rgba(20, 30, 60, .14);--ring-hi: inset 0 1px 0 rgba(255, 255, 255, .7)}@keyframes view-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.view-enter{animation:view-enter .28s cubic-bezier(.22,.61,.36,1) both}.card{box-shadow:var(--shadow),var(--ring-hi);transition:box-shadow .2s ease,border-color .2s ease,transform .2s cubic-bezier(.22,.61,.36,1)}.card.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift),var(--ring-hi);border-color:var(--border-strong)}.card.stat .ic{transition:transform .2s cubic-bezier(.22,.61,.36,1),background .2s ease}.card.stat:hover .ic{transform:scale(1.06);background:#7c5cff29}.list-item,.ticket-row{transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.list-item:hover,.ticket-row:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.nav-item{position:relative;transition:background .16s ease,color .16s ease,transform .16s ease}.nav-item:hover{transform:translate(2px)}.nav-item.active:before{content:"";position:absolute;left:3px;top:8px;bottom:8px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--accent),var(--accent-2));box-shadow:0 0 10px #7c5cff99}.btn{transition:filter .15s,background .15s,border-color .15s,box-shadow .18s ease,transform .12s cubic-bezier(.22,.61,.36,1)}.btn.primary{box-shadow:0 6px 18px #7c5cff47}.btn.primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px #7c5cff66}.btn.primary:active{transform:translateY(0)}table.tbl tbody tr{transition:background .14s ease}table.tbl tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.avatar{box-shadow:0 2px 8px #7c5cff47,var(--ring-hi)}.view-switch button,.tabs-switch button,.icon-btn{transition:background .16s ease,color .16s ease,transform .12s ease}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.975)}to{opacity:1;transform:none}}.modal-scrim{animation:scrim-in .18s ease both}.modal{animation:modal-in .24s cubic-bezier(.22,.61,.36,1) both;box-shadow:var(--shadow-lift),var(--ring-hi)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.nav-item:hover,.card.stat:hover,.list-item:hover,.ticket-row:hover,.btn.primary:hover{transform:none!important}}
