:root{--bg: #0f1115;--bg-2: #171a21;--bg-3: #1f242d;--border: #2a2f3a;--text: #e6e9ef;--muted: #8b93a3;--accent: #4f7cff;--accent-2: #6d8bff;--danger: #ff5c6c}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px}button{font:inherit;cursor:pointer}input,button,textarea{font-family:inherit}.login-wrap{display:grid;place-items:center;height:100%}.login-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:32px;width:360px;box-shadow:0 12px 40px #0006}.login-card h1{margin:0 0 4px;font-size:22px}.login-card p.sub{margin:0 0 20px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{color:var(--muted);font-size:12px}.field input{background:var(--bg-3);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text)}.field input:focus{outline:none;border-color:var(--accent)}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 14px;font-weight:600}.btn:hover{background:var(--accent-2)}.btn.block{width:100%}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.ghost:hover{border-color:var(--accent)}.err{color:var(--danger);font-size:13px;margin:6px 0 0}.shell{display:grid;grid-template-columns:280px 1fr;grid-template-rows:1fr auto;height:100%}.shell.with-thread{grid-template-columns:280px 1fr 380px}.shell.collapsed{grid-template-columns:0 1fr}.shell.collapsed.with-thread{grid-template-columns:0 1fr 380px}.shell.collapsed .sidebar{display:none}.sidebar-burger{padding:4px 9px;margin-right:6px;font-size:16px}.sidebar-pin.active{color:var(--accent-2)}.sidebar{grid-row:1 / 3;background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.sidebar-head .brand{font-weight:700}.ws-select{width:100%;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px;margin:12px 16px;width:calc(100% - 32px)}.sidebar-scroll{overflow-y:auto;flex:1;padding-bottom:16px}.group{padding:4px 8px}.group-name{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 8px 4px;display:flex;justify-content:space-between;align-items:center}.chan{padding:6px 12px;border-radius:6px;cursor:pointer;color:var(--text);display:flex;gap:6px;align-items:center}.chan:hover{background:var(--bg-3)}.chan.active{background:var(--accent);color:#fff}.chan .hash{color:var(--muted)}.chan.active .hash{color:#cdd9ff}.sidebar-foot{padding:10px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.sidebar-foot .btn{width:100%}.me{padding:10px 16px;color:var(--muted);font-size:12px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.main{display:flex;flex-direction:column;overflow:hidden;min-height:0}.chan-head{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.chan-head h2{margin:0;font-size:16px}.chan-head .topic{color:var(--muted);font-size:13px}.messages{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px;min-height:0}.msg{display:flex;gap:10px;position:relative;padding:2px 4px;border-radius:6px}.msg:hover{background:#ffffff05}.msg-body{min-width:0}.msg-actions{position:absolute;top:-10px;right:8px;display:flex;gap:2px;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;padding:2px}.msg-actions button{background:transparent;border:none;color:var(--text);padding:3px 6px;border-radius:6px;font-size:13px}.msg-actions button:hover{background:var(--bg-2)}.fwd-head{color:var(--muted);font-size:12px;margin-bottom:2px}.quote-block{border-left:3px solid var(--accent);padding:2px 8px;margin:2px 0;background:var(--bg-3);border-radius:0 6px 6px 0}.quote-block .quote-author{font-weight:600;font-size:12px;margin-right:6px;color:var(--accent-2)}.quote-block .quote-text{color:var(--muted);font-size:13px}.thread-indicator{margin-top:4px;background:transparent;border:1px solid var(--border);color:var(--accent-2);border-radius:12px;padding:2px 10px;font-size:12px}.thread-indicator:hover{border-color:var(--accent)}.quote-preview{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 20px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}.thread-panel{grid-row:1;background:var(--bg-2);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.thread-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.thread-head h3{margin:0;font-size:15px}.thread-scroll{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}.thread-divider{color:var(--muted);font-size:12px;border-bottom:1px solid var(--border);padding-bottom:6px}.lb-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:100;display:grid;grid-template-rows:auto 1fr}.lb-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;color:var(--text)}.lb-name{font-size:13px;color:var(--muted)}.lb-content{display:grid;place-items:center;overflow:auto;padding:12px}.lb-img{max-width:92vw;max-height:82vh;object-fit:contain}.lb-pdf{width:90vw;height:82vh;border:none;background:#fff}.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:#ffffff14;color:#fff;border:none;font-size:32px;width:48px;height:64px;border-radius:8px}.lb-nav:hover{background:#ffffff2e}.lb-prev{left:12px}.lb-next{right:12px}.avatar{width:36px;height:36px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#fff;font-weight:600;flex-shrink:0}.msg-body .meta{display:flex;gap:8px;align-items:baseline}.msg-body .author{font-weight:600}.msg-body .time{color:var(--muted);font-size:11px}.msg-body .text{margin:2px 0 0;white-space:pre-wrap;word-break:break-word}.msg-body .text.deleted{color:var(--muted);font-style:italic}.attach{margin-top:6px}.attach img{max-width:320px;max-height:240px;border-radius:8px;border:1px solid var(--border);display:block}.attach a{color:var(--accent-2)}.reacts{display:flex;gap:6px;margin-top:4px}.react-pill{background:var(--bg-3);border:1px solid var(--border);border-radius:12px;padding:1px 8px;font-size:12px;cursor:pointer}.composer{border-top:1px solid var(--border);padding:12px 20px;display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1;resize:none;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;min-height:42px;max-height:160px}.composer textarea:focus{outline:none;border-color:var(--accent)}.empty{display:grid;place-items:center;flex:1;color:var(--muted)}.pending{opacity:.55}.app-footer{grid-column:1 / -1;border-top:1px solid var(--border);background:var(--bg);text-align:center;font-size:11px;color:var(--muted);padding:6px 12px}.app-footer a{color:var(--muted);text-decoration:none}.app-footer a:hover{color:var(--text)}.app-footer .dot{margin:0 8px;color:var(--border)}.admin{display:grid;grid-template-rows:auto 1fr auto;height:100%}.admin-head{border-bottom:1px solid var(--border);background:var(--bg-2);padding:12px 20px;display:flex;align-items:center;gap:16px}.admin-head h2{margin:0;font-size:17px}.admin-tabs{margin-left:auto;display:flex;gap:4px}.admin-tab{background:transparent;border:1px solid transparent;color:var(--muted);padding:6px 12px;border-radius:8px}.admin-tab:hover{color:var(--text)}.admin-tab.active{background:var(--accent);color:#fff}.admin-body{overflow:auto;padding:20px}.admin-body input,.admin-body select{background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg)}.admin-table td{padding:8px 10px;border-bottom:1px solid var(--border)}.admin-table tr.row-inactive{opacity:.5}.admin-table .btn{padding:3px 10px}.member-manager{margin-top:16px;border:1px solid var(--border);border-radius:10px;padding:16px;background:var(--bg-2)}.member-list{list-style:none;padding:0;margin:8px 0;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.member-list li{padding:5px 10px;border-bottom:1px solid var(--border)}.member-list li:last-child{border-bottom:none}.member-list label{display:flex;gap:8px;align-items:center;cursor:pointer}.contact-note{width:100%;margin-top:6px;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12px}.chan .tag{font-size:10px;padding:0 6px}.bell-wrap{position:relative}.bell{position:relative;padding:4px 8px}.bell-badge{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;border-radius:10px;font-size:10px;padding:0 5px;line-height:16px}.bell-dropdown{position:absolute;top:110%;right:0;width:320px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 40px #00000080;z-index:60;overflow:hidden}.bell-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}.bell-settings{padding:8px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.bell-settings input[type=time],.bell-settings input[type=date],.bell-settings input[type=text],.bell-settings input:not([type]){background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:3px 6px}.wd{background:var(--bg-3);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:2px 7px;font-size:12px}.wd.on{background:var(--accent);color:#fff;border-color:var(--accent)}.bell-list{max-height:360px;overflow-y:auto}.bell-empty{padding:16px;color:var(--muted);text-align:center}.bell-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:baseline;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border);padding:8px 12px;color:var(--text)}.bell-item:hover{background:var(--bg-3)}.bell-item.unread{background:#4f7cff14}.bell-type{font-size:11px;color:var(--accent-2);text-transform:uppercase}.bell-actor{font-weight:600}.bell-time{font-size:11px;color:var(--muted)}.mention-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:6px 20px;border-top:1px solid var(--border)}.mention-opt{background:var(--bg-3);border:1px solid var(--border);color:var(--accent-2);border-radius:12px;padding:2px 10px;font-size:13px}.mention-opt:hover{border-color:var(--accent)}#toast-host{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:200}.toast{background:var(--bg-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:10px 14px;max-width:320px;box-shadow:0 8px 24px #0006;font-size:13px;transition:opacity .4s,transform .4s}.toast-out{opacity:0;transform:translate(20px)}.search-modal{width:620px;max-width:92vw}.search-input{flex:1;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:15px}.search-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.search-filters input[type=text],.search-filters input:not([type]){background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.search-results{margin-top:12px;max-height:56vh;overflow-y:auto}.search-section{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:10px 2px 4px}.search-hit{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border);padding:8px 6px;color:var(--text)}.search-hit:hover{background:var(--bg-3)}.search-meta{color:var(--muted);font-size:11px}.search-snippet mark{background:#4f7cff59;color:var(--text);border-radius:3px;padding:0 2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:50}.modal{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:24px;width:420px}.modal h3{margin:0 0 14px}.row{display:flex;gap:8px;align-items:center}.discover-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.tag{font-size:11px;color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:1px 7px}.schedule-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.schedule-presets .btn.active{border-color:var(--accent);color:var(--accent-2)}.schedule-body{width:100%;resize:vertical;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px}.modal input[type=datetime-local]{background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;width:100%}.scheduled-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.scheduled-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.scheduled-when{font-size:12px;color:var(--accent-2)}.scheduled-body{color:var(--text);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.alert-stack{display:flex;flex-direction:column;gap:1px}.alert-banner{display:flex;align-items:center;gap:10px;padding:8px 20px;font-size:14px;border-bottom:1px solid var(--border)}.alert-banner .alert-body{flex:1;word-break:break-word}.alert-banner .alert-icon{flex-shrink:0}.alert-banner .alert-scope{font-size:11px;text-transform:uppercase;letter-spacing:.04em;opacity:.7;border:1px solid currentColor;border-radius:8px;padding:0 6px}.alert-banner .alert-x{background:transparent;border:none;color:inherit;cursor:pointer;opacity:.7;font-size:13px}.alert-banner .alert-x:hover{opacity:1}.alert-info{background:#508cff24;color:#cfe0ff}.alert-warning{background:#ffb43c29;color:#ffe2ad}.alert-critical{background:#ff5c6c2e;color:#ffd2d7}.alert-form-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.alert-form-row label{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}.alert-form-row select,.alert-form-row input[type=datetime-local]{background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 8px}.help-modal{width:640px;max-width:92vw;max-height:82vh;display:flex;flex-direction:column}.help-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.help-head h3{margin:0}.help-version{color:var(--muted);font-weight:400;font-size:13px}.help-tabs{display:flex;gap:6px;margin:14px 0 10px;border-bottom:1px solid var(--border);padding-bottom:8px}.help-tab{background:transparent;border:1px solid transparent;color:var(--muted);padding:6px 14px;border-radius:8px;cursor:pointer}.help-tab:hover{color:var(--text)}.help-tab.active{background:var(--bg-3);border-color:var(--border);color:var(--text)}.help-body{overflow-y:auto;padding-right:6px}.help-section{margin-bottom:18px}.help-section h4{margin:0 0 8px;color:var(--accent-2);font-size:13px;text-transform:uppercase;letter-spacing:.04em}.help-item{display:flex;gap:10px;padding:6px 0}.help-item .help-icon{flex-shrink:0;width:22px;text-align:center}.help-item .help-item-body{min-width:0}.help-item b{display:block;font-size:14px}.help-item p{margin:2px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.help-example{font-style:italic;color:var(--text)!important;opacity:.85;margin-top:4px!important}.help-shot{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:8px 10px;border:1px dashed var(--border);border-radius:8px;background:var(--bg-3)}.help-shot-icon{flex-shrink:0}.help-shot-cap{font-size:12px;color:var(--muted);line-height:1.4}.help-shot-cap b{display:inline;color:var(--accent-2)}.faq-item{padding:8px 0;border-bottom:1px solid var(--border)}.faq-item b{display:block;font-size:14px}.faq-item p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.whatsnew-version{padding:8px 0;border-bottom:1px solid var(--border)}.whatsnew-head{font-weight:600}.whatsnew-date{color:var(--muted);font-weight:400;font-size:12px;margin-left:6px}.whatsnew-version ul{margin:6px 0 0;padding-left:20px}.whatsnew-version li{color:var(--muted);font-size:13px;line-height:1.5}.docs-view{width:720px;max-width:94vw;max-height:84vh;display:flex;flex-direction:column}.docs-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.docs-head h3{margin:0}.docs-actions{display:flex;gap:8px}.docs-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin:12px 0 8px;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:13px}.docs-crumb{background:transparent;border:none;color:var(--accent-2);cursor:pointer;padding:2px 4px}.docs-crumb:hover{text-decoration:underline}.docs-sep{color:var(--muted)}.docs-body{overflow-y:auto}.docs-row{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid var(--border);flex-wrap:wrap}.docs-row .docs-name{flex:1;min-width:0;background:transparent;border:none;color:var(--text);cursor:pointer;text-align:left;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-row .docs-name:hover{color:var(--accent-2)}.docs-folder .docs-name{font-weight:600}.docs-meta{color:var(--muted);font-size:12px;flex-shrink:0}.docs-av{color:var(--danger);font-size:11px}.docs-row-actions{display:flex;gap:2px;flex-shrink:0}.docs-row-actions button{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 4px;border-radius:6px}.docs-row-actions button:hover{color:var(--text);background:var(--bg-3)}.docs-move{flex-basis:100%;margin-top:6px;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 8px}.docs-empty{color:var(--muted);text-align:center;padding:24px}.docs-more{width:100%;margin-top:12px}.docs-view.docs-drop{outline:2px dashed var(--accent);outline-offset:-6px}.docs-lock{margin-left:auto;font-size:12px;color:var(--warning, #ffb43c)}.docs-lock-mini{font-size:11px}.docs-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px;font-size:13px;color:var(--muted)}.docs-count{font-size:12px}.docs-sort,.docs-mode{display:flex;align-items:center;gap:6px}.docs-mode{margin-left:auto}.docs-toolbar select{background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:3px 6px}.docs-uploadbar{margin-top:10px;padding:6px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--accent-2);text-align:center}.docs-search{flex:1;min-width:160px;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 10px}.doc-tags{display:flex;flex-wrap:wrap;gap:4px}.doc-tag{background:var(--bg-3);border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:0 8px;font-size:11px;cursor:pointer;line-height:18px}.doc-tag:hover{border-color:var(--accent);color:var(--text)}.doc-tag.doc-tag-active{color:var(--accent-2);border-color:var(--accent)}.doc-tag button{background:none;border:none;color:inherit;cursor:pointer;margin-left:4px;padding:0}.doc-result{flex-wrap:wrap}.doc-result-folder{color:var(--muted);font-size:12px}.doc-snippet{flex-basis:100%;color:var(--muted);font-size:12px;margin:2px 0 0 22px}.doc-snippet mark{background:#ffd25040;color:var(--text);padding:0 1px;border-radius:2px}.doc-edit-label{display:block;color:var(--muted);font-size:12px;margin:10px 0 3px}.doc-edit-input{width:100%;background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 10px;resize:vertical}.doc-tag-input{display:flex;flex-wrap:wrap;gap:5px;align-items:center;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;padding:5px 8px}.doc-tag-input input{flex:1;min-width:90px;background:transparent;border:none;color:var(--text);outline:none}.doc-tag-input .doc-tag{cursor:default}.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;padding-top:4px}.doc-tile{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-3)}.doc-tile-open{display:flex;flex-direction:column;align-items:stretch;width:100%;background:none;border:none;cursor:pointer;padding:0;color:var(--text)}.doc-thumb{height:90px;display:grid;place-items:center;background:var(--bg);overflow:hidden}.doc-thumb img{width:100%;height:100%;object-fit:cover}.doc-thumb-icon{font-size:34px}.doc-tile-cap{padding:6px 8px 0;font-size:12px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-tile-sub{padding:0 8px 8px;font-size:11px;color:var(--muted);text-align:left}.doc-tile-actions{position:absolute;top:4px;right:4px;display:none;gap:2px;background:#00000080;border-radius:6px}.doc-tile:hover .doc-tile-actions{display:flex}.doc-tile-actions button{background:none;border:none;color:#fff;cursor:pointer;font-size:12px;padding:2px 4px}.cal-modal{width:96vw;height:94vh;max-width:none;max-height:none;display:flex;flex-direction:column}.call-frame{flex:1;width:100%;border:0;border-radius:0 0 10px 10px;background:#000}.call-loading,.call-err{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted)}.call-err{color:var(--warning, #ffb43c);padding:20px;text-align:center}.cal-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cal-head h3{margin:0}.cal-nav{display:flex;align-items:center;gap:4px}.cal-label{margin-left:8px;font-weight:600;text-transform:capitalize}.cal-views{display:flex;align-items:center;gap:4px;margin-left:auto}.cal-viewbtn{background:transparent;border:1px solid transparent;color:var(--muted);border-radius:8px;padding:4px 10px;cursor:pointer}.cal-viewbtn:hover{color:var(--text)}.cal-viewbtn.active{background:var(--bg-3);border-color:var(--border);color:var(--text)}.cal-views-body{margin-top:12px;overflow:auto;flex:1}.btn.ghost.active{border-color:var(--accent);color:var(--accent-2)}.cal-cat-meeting{background:#5b8def2e;border:1px solid rgba(91,141,239,.5);color:#cfe0ff}.cal-cat-deadline{background:#ff5c6c2e;border:1px solid rgba(255,92,108,.5);color:#ffd2d7}.cal-cat-ooo{background:#ffb43c2e;border:1px solid rgba(255,180,60,.5);color:#ffe2ad}.cal-cat-other{background:var(--bg-3);border:1px solid var(--border);color:var(--text)}.cal-weekrow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-weekname{padding:4px;text-align:center;font-size:12px;color:var(--muted)}.cal-grid{gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.cal-day{background:var(--bg-2);min-height:96px;padding:3px;display:flex;flex-direction:column;gap:2px}.cal-day-out{background:var(--bg)}.cal-day-out .cal-day-num{color:var(--muted)}.cal-day-today{box-shadow:inset 0 0 0 2px var(--accent)}.cal-day-head{display:flex;justify-content:space-between;align-items:center}.cal-day-num{background:none;border:none;color:var(--text);cursor:pointer;font-size:12px;padding:0 2px}.cal-day-add{background:none;border:none;color:var(--muted);cursor:pointer;opacity:0;font-size:13px}.cal-day:hover .cal-day-add{opacity:1}.cal-day-events{display:flex;flex-direction:column;gap:2px}.cal-chip{display:block;text-align:left;border-radius:5px;padding:1px 5px;font-size:11px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip-time{opacity:.8}.cal-more{background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;text-align:left;padding:0 4px}.cal-week-head,.cal-week-allday,.cal-week-body{display:flex}.cal-week-gutter{width:56px;flex-shrink:0;font-size:11px;color:var(--muted)}.cal-week-dayhead{flex:1;text-align:center;padding:4px;font-size:12px;border-left:1px solid var(--border)}.cal-week-dow{color:var(--muted)}.cal-week-allday{border-top:1px solid var(--border);border-bottom:1px solid var(--border);min-height:24px}.cal-week-allcol{flex:1;border-left:1px solid var(--border);padding:2px;display:flex;flex-direction:column;gap:2px}.cal-week-body{position:relative}.cal-week-hours .cal-hour{border-top:1px solid var(--border);padding:1px 4px;box-sizing:border-box}.cal-week-col{flex:1;position:relative;border-left:1px solid var(--border)}.cal-week-slot{border-top:1px solid var(--border);box-sizing:border-box}.cal-event-block{position:absolute;border-radius:6px;padding:2px 5px;font-size:11px;cursor:pointer;overflow:hidden;text-align:left;box-sizing:border-box}.cal-block-time{opacity:.8;font-size:10px}.cal-agenda-day{margin-bottom:14px}.cal-agenda-head{font-size:13px;color:var(--accent-2);text-transform:capitalize;border-bottom:1px solid var(--border);padding-bottom:4px;margin-bottom:4px}.cal-agenda-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;color:var(--text);cursor:pointer;padding:6px 4px;text-align:left;border-radius:6px}.cal-agenda-item:hover{background:var(--bg-3)}.cal-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-agenda-time{width:80px;color:var(--muted);font-size:12px;flex-shrink:0}.cal-agenda-title{flex:1}.cal-agenda-loc{color:var(--muted);font-size:12px}.cal-tag{font-size:10px;color:var(--muted);border:1px solid var(--border);border-radius:8px;padding:0 6px;margin-left:6px}.cal-empty{color:var(--muted);text-align:center;padding:24px}.cal-detail-head{display:flex;align-items:center;gap:8px}.cal-detail-head h3{margin:0}.cal-detail-meta{color:var(--text);font-size:13px;display:flex;flex-direction:column;gap:4px;margin:10px 0}.cal-detail-desc{color:var(--muted);white-space:pre-wrap;margin:4px 0 0}.cal-rsvp{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0;font-size:13px;color:var(--muted)}.cal-scope{display:flex;align-items:center;gap:6px;margin:8px 0;font-size:13px;color:var(--muted)}.cal-detail-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:12px}.cal-scope-tabs{display:flex;gap:4px}.cal-chan-chip{font-size:10px;color:var(--muted);background:var(--bg-3);border-radius:8px;padding:0 5px;margin-left:5px}.cal-attendees{margin:8px 0;border-top:1px solid var(--border);padding-top:8px}.cal-att-counts{font-size:12px;color:var(--muted);margin-bottom:6px}.cal-att-list{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.cal-attendee{display:flex;align-items:center;gap:8px;font-size:13px}.cal-att-name{flex:1}.cal-att-badge{font-size:11px;border-radius:8px;padding:0 7px;border:1px solid var(--border)}.cal-att-badge.rsvp-yes{color:#9ae6b4;border-color:#9ae6b466}.cal-att-badge.rsvp-maybe{color:#ffe2ad;border-color:#ffe2ad66}.cal-att-badge.rsvp-no{color:#ffd2d7;border-color:#ffd2d766}.cal-att-badge.rsvp-none{color:var(--muted)}.cal-subscribe{display:flex;align-items:center;gap:8px;margin:10px 0;padding:8px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--muted)}.cal-subscribe input{flex:1;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:12px}.cal-findtime{display:flex;align-items:center;gap:10px;margin:6px 0}.cal-conflict{color:var(--warning, #ffb43c);font-size:12px}.cal-slots{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.cal-slot{background:var(--bg-3);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:3px 8px;font-size:12px;cursor:pointer}.cal-slot:hover{border-color:var(--accent);color:var(--accent-2)}
