:root{--bg:#ffffff;--panel:#ffffff;--card:#ffffff;--card-2:#f3f7f2;--card-3:#e8efe6;--panel-2:#f3f7f2;--border:#e1e8e0;--border-strong:#cdd8c9;--text:#253026;--text-dim:#5a6b5e;--text-faint:#93a396;--accent:#2e7d32;--accent-strong:#1b5e20;--accent-2:#4caf50;--brand-wash:#eaf1ec;--leaf:#2fa35b;--leaf-wash:#e4f4ea;--warn:#c98a00;--warn-wash:#fbf0d6;--danger:#e0473c;--danger-wash:#fce7e4;--radius:18px;--radius-sm:14px;--shadow-sm:0 1px 2px rgba(70,45,20,0.05),0 4px 12px -8px rgba(120,75,25,0.16);--shadow-md:0 1px 2px rgba(70,45,20,0.05),0 10px 30px -12px rgba(120,75,25,0.18);--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sheet-bg:rgba(255,255,255,0.82)}:root[data-mantine-color-scheme=dark]{--bg:#16201a;--panel:#1e2a20;--card:#1e2a20;--card-2:#26332a;--card-3:#2f3e33;--panel-2:#26332a;--border:#2f3e30;--border-strong:#3f523f;--text:#ecf3e8;--text-dim:#a9bba4;--text-faint:#7c8f77;--accent:#4ccb7d;--accent-strong:#63d28d;--accent-2:#8bd7a5;--brand-wash:#1f3326;--leaf:#54c381;--leaf-wash:#1e3527;--warn:#e6b23c;--warn-wash:#372c18;--danger:#f2695e;--danger-wash:#3a211e;--shadow-sm:0 1px 2px rgba(0,0,0,0.3),0 6px 16px -10px rgba(0,0,0,0.5);--shadow-md:0 1px 2px rgba(0,0,0,0.3),0 14px 34px -14px rgba(0,0,0,0.6);--sheet-bg:rgba(24,32,26,0.82)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.mantine-Card-root{background-color:var(--card);border-color:var(--border);transition:box-shadow .18s ease,transform .12s ease,border-color .18s ease}.mantine-Card-root:hover{box-shadow:var(--shadow-md);border-color:var(--mantine-color-leaf-3);transform:translateY(-2px)}.mantine-Card-root .mantine-Card-root{background-color:var(--card-2)}.mantine-Paper-root{background-color:var(--card)}.mantine-Table-thead{background-color:var(--card-2)}.card,.form,.list-item{box-shadow:var(--shadow-sm)}.list-item{transition:box-shadow .15s ease,transform .05s ease}.btn{transition:filter .15s ease,transform .05s ease}.btn:hover:not(:disabled){filter:brightness(1.03)}.btn:active:not(:disabled){transform:translateY(1px)}.section-title{letter-spacing:.01em}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel);flex-shrink:0}.topbar h1{font-size:16px;margin:0;font-weight:700;letter-spacing:.02em}.topbar .tag{font-size:12px;color:var(--text-dim);border:1px solid var(--border);padding:2px 8px;border-radius:999px}.spacer{flex:1}.mode-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden}.mode-switch button{border:none;background:transparent;color:var(--text-dim);padding:6px 16px;font-size:13px;font-weight:600}.mode-switch button.active{background:var(--accent);color:#fff}.main{display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1;min-height:0}@media (max-width:900px){.main{grid-template-columns:1fr;overflow-y:auto}}.pane{display:flex;flex-direction:column;min-height:0;overflow:hidden}.pane.left{border-right:1px solid var(--border)}.pane-header{padding:12px 18px;font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:10px}.transcript{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}.msg{max-width:85%;padding:10px 14px;border-radius:var(--radius);white-space:pre-wrap;word-break:break-word}.msg.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.msg.assistant{align-self:flex-start;background:var(--panel-2);border:1px solid var(--border);border-bottom-left-radius:4px}.msg.tool{align-self:center;background:transparent;border:1px dashed var(--border);font-size:12.5px;font-family:var(--mono);max-width:92%}.msg .role,.msg.tool{color:var(--text-dim)}.msg .role{font-size:11px;margin-bottom:3px}.msg.user .role{color:rgba(255,255,255,.8)}.composer{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--border);flex-shrink:0;background:var(--panel)}.composer textarea{flex:1;resize:none;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:10px 12px;font-family:inherit;font-size:14px;min-height:44px;max-height:140px}.composer textarea:focus{outline:none;border-color:var(--accent)}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:10px;padding:0 18px;font-weight:600;font-size:14px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.voice-panel{padding:18px;display:flex;flex-direction:column;gap:14px;border-bottom:1px solid var(--border)}.voice-row{display:flex;align-items:center;gap:12px}.mic-dot{width:12px;height:12px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.mic-dot.live{background:var(--accent-2);box-shadow:0 0 0 0 rgba(56,211,159,.6);animation:pulse 1.6s infinite}.mic-dot.error{background:var(--danger)}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(56,211,159,.5)}70%{box-shadow:0 0 0 10px rgba(56,211,159,0)}to{box-shadow:0 0 0 0 rgba(56,211,159,0)}}.status-line{font-size:12.5px;color:var(--text-dim)}.status-line.error{color:var(--danger)}.setup{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel-2);font-weight:700;font-size:13.5px}.card-head .count{margin-left:auto;font-size:12px;color:var(--text-dim);font-weight:600}.card-body{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.empty{color:var(--text-dim);font-size:13px;font-style:italic}.kv{display:grid;grid-template-columns:100px 1fr;gap:4px 10px;font-size:13.5px}.kv .k{color:var(--text-dim)}.row-item{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13.5px}.row-item .title{font-weight:600;margin-bottom:2px}.row-item .sub{color:var(--text-dim);font-size:12.5px}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.badge{font-size:11.5px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim)}.badge.ok{color:var(--accent-2);border-color:var(--accent-2)}.badge.no{color:var(--danger);border-color:var(--danger)}.progress{padding:12px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.progress-bar{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .4s ease}.progress-label{margin-top:6px;display:flex;justify-content:space-between}.hint,.progress-label{font-size:12px;color:var(--text-dim)}.hint{padding:0 18px 14px}.flash{animation:flashpulse 5s ease;border-color:var(--accent)!important}@keyframes flashpulse{0%{box-shadow:0 0 0 0 rgba(249,127,28,0)}8%{box-shadow:0 0 0 4px rgba(249,127,28,.85);background:rgba(249,127,28,.14)}25%{box-shadow:0 0 0 0 rgba(249,127,28,0)}42%{box-shadow:0 0 0 4px rgba(249,127,28,.8);background:rgba(249,127,28,.13)}60%{box-shadow:0 0 0 0 rgba(249,127,28,0)}76%{box-shadow:0 0 0 4px rgba(249,127,28,.75);background:rgba(249,127,28,.12)}90%{box-shadow:0 0 0 0 rgba(249,127,28,0)}to{box-shadow:0 0 0 0 rgba(249,127,28,0);background:transparent}}.pulse{animation:pulseBtn 1.4s ease-in-out infinite}@keyframes pulseBtn{0%{box-shadow:0 0 0 0 rgba(63,200,115,.6)}70%{box-shadow:0 0 0 10px rgba(63,200,115,0)}to{box-shadow:0 0 0 0 rgba(63,200,115,0)}}.flash3{animation:flash3 5s ease}@keyframes flash3{0%,to{box-shadow:0 0 0 0 rgba(249,127,28,0)}12%,42%,72%{box-shadow:0 0 0 5px rgba(249,127,28,.85);background:rgba(249,127,28,.16)}27%,57%,87%{box-shadow:0 0 0 0 rgba(249,127,28,0)}}tr.flash td{animation:flashrow 2.4s ease}@keyframes flashrow{0%,to{background:transparent}45%,8%{background:rgba(249,127,28,.22)}30%,70%{background:transparent}}.body{display:flex;flex:1;min-height:0}.sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);padding:12px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;border:none;background:transparent;color:var(--text);font-size:14px;font-weight:600;text-align:left;width:100%}.nav-item:hover{background:var(--panel-2)}.nav-item.active{background:var(--accent);color:#fff}.nav-item .nav-count{margin-left:auto;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:rgba(127,127,127,.2)}.nav-item.active .nav-count{background:rgba(255,255,255,.25)}.nav-sep{height:1px;background:var(--border);margin:8px 4px}.nav-label{font-size:11px;color:var(--text-dim);padding:4px 12px 2px;text-transform:uppercase;letter-spacing:.08em}.content{flex:1;min-width:0;overflow-y:auto;padding:22px 26px}.section-title{font-size:20px;font-weight:800;margin:0 0 4px}.section-desc{color:var(--text-dim);font-size:13px;margin:0 0 18px}.form{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:20px}.form h3{margin:0 0 12px;font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;color:var(--text-dim);font-weight:600}.field input[type=number],.field input[type=text],.field select,.field textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-family:inherit;font-size:14px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field.check{flex-direction:row;align-items:center;gap:8px}.field.check label{font-size:13.5px;color:var(--text)}.form-actions{margin-top:14px;display:flex;gap:8px}.btn.sm{height:30px;padding:0 12px;font-size:13px}.btn.ghost{background:transparent}.list{display:flex;flex-direction:column;gap:12px}.list-item{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.list-item .li-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.list-item .li-title{font-weight:700}.li-actions{margin-left:auto;display:flex;gap:6px}.icon-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text-dim);border-radius:7px;width:28px;height:28px;font-size:13px;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--danger);border-color:var(--danger)}.assistant-dock{width:380px;flex-shrink:0;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.assistant-dock.collapsed{width:48px}.dock-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.dock-header .dh-title{font-weight:700;font-size:13px}.dock-collapsed-label{writing-mode:vertical-rl;margin:14px auto;color:var(--text-dim);font-size:12px;font-weight:700;letter-spacing:.1em}@media (max-width:1100px){.assistant-dock{width:320px}}.event-picker{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:10px 14px;margin-bottom:18px;flex-wrap:wrap}.event-picker .ep-label{font-size:12px;color:var(--text-dim);font-weight:700}.event-picker select{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:6px 10px;font-size:14px;max-width:480px;flex:1;min-width:200px}table.tbl{border-collapse:collapse;width:100%;font-size:14px}table.tbl th{text-align:left;border-bottom:2px solid var(--border);color:var(--text-dim);font-size:12px}table.tbl td,table.tbl th{padding:9px 10px;white-space:nowrap}table.tbl td{border-bottom:1px solid var(--border)}table.tbl tr.sel td{background:rgba(249,127,28,.12)}@media (max-width:860px){.body{flex-direction:column;overflow-y:auto}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--border)}.nav-item{width:auto}.nav-label,.nav-sep{display:none}.assistant-dock{width:100%;border-left:none;border-top:1px solid var(--border);height:70vh}}.kcard{background:linear-gradient(158deg,rgba(255,255,255,.17),rgba(255,255,255,.055) 60%,rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.16);border-radius:18px;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 14px 34px -16px rgba(0,0,0,.72);transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease,border-color .2s ease;cursor:pointer}.kcard:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 26px 50px -18px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.05)}.kcard:active{transform:translateY(-1px);transition-duration:.08s}.kcard-add{background:rgba(255,255,255,.04);border:1.5px dashed rgba(255,255,255,.32);border-radius:18px;transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s ease,background .2s ease;cursor:pointer}.kcard-add:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.08)}@media (prefers-reduced-motion:reduce){.kcard,.kcard-add{transition:none}.kcard-add:hover,.kcard:hover{transform:none}}