:root{font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;line-height:1.4;font-weight:400;color:#0b1118;background-color:#eef2f4;color-scheme:light;--app-bg: radial-gradient(circle at top left, #e9f7f1 0%, #f5f6f8 55%, #eef3f5 100%);--surface-0: #ffffff;--surface-1: #ffffff;--surface-2: #f0f4f9;--surface-3: #e8edf2;--text-1: #0b1118;--text-2: #3a4d5c;--text-3: #6b7280;--border-1: rgba(12, 21, 36, .16);--accent: #1da46f;--accent-strong: #0d8060;--accent-soft: rgba(29, 164, 111, .14);--accent-rgb: 29, 164, 111;--danger: #c93939;--success: #22c55e;--shadow-strong: rgba(10, 20, 40, .2);--shadow-soft: rgba(10, 20, 40, .09);--bg-0: #ffffff;--bg-1: #ffffff;--bg-2: #f9fafb;--bg-3: #f3f4f6;--border: #e5e7eb;--primary: #2563eb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;--app-bg: radial-gradient(circle at 20% 12%, rgba(22, 85, 65, .35), transparent 45%), radial-gradient(circle at 80% 5%, rgba(10, 24, 32, .6), transparent 42%), #0b111a;--surface-0: #0b111a;--surface-1: #101a28;--surface-2: #0f1724;--surface-3: #0b111a;--text-1: #e7edf3;--text-2: #adbdcc;--text-3: #7a8a9a;--border-1: rgba(231, 237, 243, .16);--accent: #44d19a;--accent-strong: #30c98a;--accent-soft: rgba(68, 209, 154, .18);--accent-rgb: 68, 209, 154;--danger: #ff6b6b;--success: #34d399;--shadow-strong: rgba(0, 0, 0, .42);--shadow-soft: rgba(0, 0, 0, .28);--bg-0: #0b111a;--bg-1: #101a28;--bg-2: #0f1724;--bg-3: #162032;--border: rgba(231, 237, 243, .12);--primary: #60a5fa}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;color:var(--text-1);background-color:var(--surface-3)}button,input,textarea{font-family:inherit}.eyebrow{margin:0;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.hint{font-size:.9rem;color:var(--text-2)}.ghost-btn{background:transparent;border:1px solid var(--border-1);color:var(--accent-strong);padding:6px 12px;border-radius:999px;cursor:pointer;font-size:.8rem}.auth-toast-container{position:fixed;top:16px;right:16px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-height:calc(100vh - 32px);overflow-y:auto;overflow-x:hidden}.auth-toast{pointer-events:auto;position:relative;display:flex;align-items:flex-start;gap:12px;min-width:340px;max-width:440px;padding:14px 16px 14px 14px;border-radius:12px;font-size:.85rem;line-height:1.45;color:#fff;box-shadow:0 8px 32px #00000038,0 2px 8px #0000001a;opacity:0;transform:translate(40px);transition:opacity .3s ease,transform .3s ease;overflow:hidden}.auth-toast--enter{opacity:1;transform:translate(0)}.auth-toast--exit{opacity:0;transform:translate(40px)}.auth-toast--error{background:linear-gradient(135deg,#dc2626,#b91c1c);border-left:4px solid #fca5a5}.auth-toast--warn{background:linear-gradient(135deg,#d97706,#b45309);border-left:4px solid #fde68a}.auth-toast--info{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-left:4px solid #93c5fd}.auth-toast--success{background:linear-gradient(135deg,#16a34a,#15803d);border-left:4px solid #86efac}.auth-toast__icon{font-size:1.25rem;flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffff2e}.auth-toast__body{flex:1;min-width:0}.auth-toast__title{font-weight:600;font-size:.88rem;margin-bottom:2px;letter-spacing:-.01em}.auth-toast__message{flex:1;opacity:.92;font-size:.82rem;word-break:break-word}.auth-toast__close{background:none;border:none;color:#ffffffb3;font-size:1.15rem;cursor:pointer;padding:2px 4px;line-height:1;flex-shrink:0;border-radius:4px;transition:background .15s,color .15s}.auth-toast__close:hover{color:#fff;background:#ffffff26}.auth-toast__progress{position:absolute;bottom:0;left:0;height:3px;background:#fff6;border-radius:0 0 0 12px;animation:toast-progress linear forwards}@keyframes toast-progress{0%{width:100%}to{width:0%}}.auth-toast:hover .auth-toast__progress{animation-play-state:paused}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.announcements-root{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface-0)}.announcements-header{display:flex;align-items:center;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border-1);background:var(--surface-1);flex-shrink:0}.announcements-header-icon{font-size:1.4rem;color:var(--accent);flex-shrink:0}.announcements-header h1{font-size:1.15rem;font-weight:700;color:var(--text-1);margin:0}.announcements-header-count{background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:10px}.announcements-header-actions{margin-left:auto;display:flex;gap:8px}.announcements-stats{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--border-1);background:var(--surface-1);flex-shrink:0;overflow-x:auto}.announcements-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 20px;min-width:80px;border-right:1px solid var(--border-1)}.announcements-stat:last-child{border-right:none}.announcements-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-1);line-height:1}.announcements-stat-label{font-size:.65rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.announcements-stat-value--accent{color:var(--accent)}.announcements-stat-value--danger{color:var(--danger)}.announcements-stat-value--warn{color:#f59e0b}.announcements-toolbar{display:flex;align-items:center;gap:10px;padding:12px 24px;border-bottom:1px solid var(--border-1);background:var(--surface-1);flex-shrink:0;flex-wrap:wrap}.announcements-search{background:var(--surface-0);border:1px solid var(--border-1);border-radius:8px;padding:6px 12px 6px 32px;font-size:.82rem;color:var(--text-1);width:220px;transition:border-color .15s ease;font-family:inherit}.announcements-search:focus{outline:none;border-color:var(--accent)}.announcements-search-wrap{position:relative}.announcements-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-3);font-size:.85rem;pointer-events:none}.announcements-tabs{display:flex;gap:0;border:1px solid var(--border-1);border-radius:8px;overflow:hidden}.announcements-tab{padding:5px 12px;font-size:.74rem;font-weight:600;border:none;background:var(--surface-0);color:var(--text-2);cursor:pointer;transition:background .12s ease,color .12s ease;border-right:1px solid var(--border-1);white-space:nowrap}.announcements-tab:last-child{border-right:none}.announcements-tab:hover{background:var(--surface-2)}.announcements-tab.active{background:var(--accent);color:#fff}.announcements-tab-badge{font-size:.62rem;background:#ffffff40;padding:1px 5px;border-radius:6px;margin-left:4px}.announcements-tab.active .announcements-tab-badge{background:#ffffff4d}.announcements-body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:10px}.announcements-empty{text-align:center;color:var(--text-3);padding:60px 16px;font-size:.9rem;display:flex;flex-direction:column;align-items:center;gap:8px}.announcements-empty-icon{font-size:2.5rem;color:var(--text-3);opacity:.4}.announcement-card{background:var(--surface-1);border:1px solid var(--border-1);border-radius:12px;padding:0;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease;display:flex;flex-direction:column;overflow:hidden}.announcement-card:hover{box-shadow:0 4px 16px var(--shadow-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--border-1))}.announcement-card--unread{border-left:4px solid var(--accent)}.announcement-card--critical{border-left:4px solid var(--danger)}.announcement-card--critical.announcement-card--unread{background:color-mix(in srgb,var(--danger) 3%,var(--surface-1))}.announcement-card-main{display:flex;align-items:flex-start;gap:12px;padding:14px 18px}.announcement-card-icon-wrap{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-size:1rem}.announcement-card-icon-wrap--update{background:#3b82f61f;color:#3b82f6}.announcement-card-icon-wrap--feature{background:var(--accent-soft);color:var(--accent-strong)}.announcement-card-icon-wrap--change{background:#f59e0b1f;color:#d97706}.announcement-card-icon-wrap--operational{background:var(--surface-3);color:var(--text-2)}.announcement-card-icon-wrap--critical{background:#c939391f;color:var(--danger)}.announcement-card-icon-wrap--event{background:#8b5cf61f;color:#8b5cf6}.announcement-card-icon-wrap--maintenance{background:#f59e0b1f;color:#d97706}.announcement-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.announcement-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.announcement-card-title{font-size:.9rem;font-weight:600;color:var(--text-1);margin:0}.announcement-card-title--unread{font-weight:700}.announcement-card-meta{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.announcement-card-date{font-size:.7rem;color:var(--text-3);white-space:nowrap}.announcement-card-preview{font-size:.8rem;color:var(--text-2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.announcement-card-expand-icon{color:var(--text-3);font-size:.9rem;flex-shrink:0;transition:transform .2s ease}.announcement-card--expanded .announcement-card-expand-icon{transform:rotate(180deg)}.announcement-card-body{font-size:.84rem;color:var(--text-1);line-height:1.6;padding:14px 18px;border-top:1px solid var(--border-1);animation:ann-fade-in .2s ease}.announcement-card-body h1,.announcement-card-body h2,.announcement-card-body h3{margin:12px 0 4px;font-size:.95rem}.announcement-card-body p{margin:6px 0}.announcement-card-body ul,.announcement-card-body ol{padding-left:20px;margin:6px 0}.announcement-card-body code{background:var(--surface-3);padding:1px 5px;border-radius:4px;font-size:.8rem}.announcement-card-body img{max-width:100%;border-radius:8px;margin:8px 0}.announcement-card-footer{display:flex;align-items:center;gap:8px;padding:0 18px 14px}.announcement-card-version{font-size:.68rem;color:var(--text-3);background:var(--surface-3);padding:2px 8px;border-radius:6px}.announcement-type{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;flex-shrink:0}.announcement-type--update{background:#3b82f61f;color:#3b82f6}.announcement-type--feature{background:var(--accent-soft);color:var(--accent-strong)}.announcement-type--change{background:#f59e0b1f;color:#d97706}.announcement-type--operational{background:var(--surface-3);color:var(--text-2)}.announcement-type--critical{background:#c9393924;color:var(--danger)}.announcement-type--event{background:#8b5cf61f;color:#8b5cf6}.announcement-type--maintenance{background:#f59e0b1f;color:#b45309}.announcement-priority{width:8px;height:8px;border-radius:50%;flex-shrink:0}.announcement-priority--critical{background:var(--danger);box-shadow:0 0 6px #c9393966}.announcement-priority--high{background:#f59e0b}.announcement-priority--medium{background:var(--accent)}.announcement-priority--low{background:var(--text-3)}.announcement-btn{border:none;border-radius:8px;padding:7px 16px;font-size:.8rem;font-weight:600;cursor:pointer;transition:filter .15s ease,transform .15s ease;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.announcement-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.announcement-btn:active{transform:translateY(0)}.announcement-btn--primary{background:var(--accent);color:#fff}.announcement-btn--secondary{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border-1)}.announcement-btn--danger{background:#c939391a;color:var(--danger)}.announcement-btn--ghost{background:none;color:var(--text-2);padding:7px 10px}.announcement-btn--ghost:hover{background:var(--surface-2);color:var(--text-1)}.announcement-btn--sm{padding:5px 12px;font-size:.74rem}.announcement-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:none}.announcement-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;display:grid;place-items:center;padding:16px;animation:ann-fade-in .2s ease}.announcement-modal-overlay.closing{animation:ann-fade-out .18s ease forwards}.announcement-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#070c1094;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.announcement-modal{position:relative;z-index:1;width:min(620px,94vw);max-height:88vh;background:var(--surface-1);border-radius:18px;border:1px solid var(--border-1);box-shadow:0 24px 60px #0c1f294d;display:flex;flex-direction:column;overflow:hidden;animation:ann-slide-in .3s cubic-bezier(.16,1,.3,1)}.closing .announcement-modal{animation:ann-slide-out .18s ease forwards}.announcement-modal-header{display:flex;align-items:center;gap:10px;padding:18px 22px 14px;border-bottom:1px solid var(--border-1)}.announcement-modal-header-icon{font-size:1.3rem;color:var(--accent)}.announcement-modal-header h2{font-size:1.05rem;font-weight:700;color:var(--text-1);margin:0;flex:1}.announcement-modal-counter{font-size:.72rem;color:var(--text-3);font-weight:500;background:var(--surface-3);padding:2px 8px;border-radius:8px}.announcement-modal-close{background:none;border:none;color:var(--text-3);font-size:1.15rem;cursor:pointer;padding:6px;border-radius:8px;transition:background .12s ease;display:grid;place-items:center}.announcement-modal-close:hover{background:var(--surface-3);color:var(--text-1)}.announcement-modal-body{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:14px}.announcement-modal-type-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;flex-shrink:0}.announcement-modal-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.announcement-modal-title{font-size:1.1rem;font-weight:700;color:var(--text-1);margin:0;line-height:1.35}.announcement-modal-content{font-size:.88rem;color:var(--text-1);line-height:1.65}.announcement-modal-content h1,.announcement-modal-content h2,.announcement-modal-content h3{margin:14px 0 6px;font-size:.98rem;font-weight:700}.announcement-modal-content p{margin:6px 0}.announcement-modal-content ul,.announcement-modal-content ol{padding-left:20px;margin:8px 0}.announcement-modal-content li{margin:3px 0}.announcement-modal-content code{background:var(--surface-3);padding:1px 5px;border-radius:4px;font-size:.8rem}.announcement-modal-content img{max-width:100%;border-radius:8px;margin:8px 0}.announcement-modal-version{font-size:.7rem;color:var(--text-3);background:var(--surface-3);padding:2px 8px;border-radius:6px}.announcement-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 22px 18px;border-top:1px solid var(--border-1)}.announcement-modal-nav{display:flex;gap:6px}.announcement-modal-nav-btn{background:var(--surface-2);border:1px solid var(--border-1);border-radius:8px;padding:7px 10px;cursor:pointer;color:var(--text-2);font-size:.9rem;display:grid;place-items:center;transition:background .12s ease}.announcement-modal-nav-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-1)}.announcement-modal-nav-btn:disabled{opacity:.35;cursor:not-allowed}.announcement-modal-actions{display:flex;gap:8px}.announcement-form{display:flex;flex-direction:column;gap:16px}.announcement-field{display:flex;flex-direction:column;gap:5px}.announcement-field-label{font-size:.78rem;font-weight:600;color:var(--text-2)}.announcement-field-hint{font-size:.7rem;color:var(--text-3)}.announcement-field input[type=text],.announcement-field input[type=number],.announcement-field input[type=datetime-local],.announcement-field textarea,.announcement-field select{background:var(--surface-0);border:1px solid var(--border-1);border-radius:8px;padding:9px 12px;font-size:.84rem;color:var(--text-1);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.announcement-field input:focus,.announcement-field textarea:focus,.announcement-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.announcement-field textarea{min-height:140px;resize:vertical;font-family:Consolas,Monaco,monospace;font-size:.8rem;line-height:1.5}.announcement-field-row{display:flex;gap:12px;flex-wrap:wrap}.announcement-field-row>.announcement-field{flex:1;min-width:180px}.announcement-field-error{font-size:.72rem;color:var(--danger)}.announcement-segmented{display:flex;gap:0;border:1px solid var(--border-1);border-radius:8px;overflow:hidden}.announcement-segmented button{flex:1;padding:7px 8px;font-size:.72rem;font-weight:600;border:none;background:var(--surface-0);color:var(--text-2);cursor:pointer;transition:background .12s ease,color .12s ease;border-right:1px solid var(--border-1);white-space:nowrap}.announcement-segmented button:last-child{border-right:none}.announcement-segmented button:hover{background:var(--surface-2)}.announcement-segmented button.active{background:var(--accent);color:#fff}.announcement-segmented--priority button.active[data-value=critical]{background:var(--danger)}.announcement-segmented--priority button.active[data-value=high]{background:#f59e0b}.announcement-segmented--priority button.active[data-value=low]{background:var(--text-3)}.announcement-segmented--type button.active[data-value=event]{background:#8b5cf6}.announcement-segmented--type button.active[data-value=maintenance]{background:#b45309}.announcement-segmented--type button.active[data-value=critical]{background:var(--danger)}.announcement-segmented--type button.active[data-value=change]{background:#d97706}.announcement-segmented--type button.active[data-value=update]{background:#3b82f6}.announcement-checkbox-group{display:flex;gap:14px;flex-wrap:wrap}.announcement-checkbox-group label{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-1);cursor:pointer;padding:4px 0}.announcement-checkbox-group input{accent-color:var(--accent)}.announcement-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.82rem;color:var(--text-1)}.announcement-toggle input{accent-color:var(--accent)}.announcement-preview-box{background:var(--surface-0);border:1px solid var(--border-1);border-radius:8px;padding:14px;min-height:140px;max-height:300px;overflow-y:auto;font-size:.84rem;color:var(--text-1);line-height:1.6}.announcement-admin-list{display:flex;flex-direction:column;gap:4px}.announcement-admin-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface-1);border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.announcement-admin-row:hover{background:var(--surface-2)}.announcement-admin-row.selected{border-color:var(--accent);background:var(--accent-soft)}.announcement-admin-row-title{flex:1;font-size:.84rem;font-weight:600;color:var(--text-1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-admin-row-date{font-size:.7rem;color:var(--text-3);white-space:nowrap}.announcement-admin-toggle{background:none;border:1px solid var(--border-1);border-radius:6px;padding:3px 10px;font-size:.68rem;font-weight:600;cursor:pointer;transition:background .12s ease}.announcement-admin-toggle--on{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.announcement-admin-toggle--off{background:var(--surface-2);color:var(--text-3)}.announcement-admin-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:16px;align-items:start;flex:1;overflow:hidden}.announcement-admin-panel{display:flex;flex-direction:column;gap:14px;background:var(--surface-1);border:1px solid var(--border-1);border-radius:12px;padding:18px;overflow-y:auto;max-height:100%}.announcement-admin-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.announcement-admin-panel-header h2{font-size:.92rem;font-weight:700;color:var(--text-1);margin:0;display:flex;align-items:center;gap:6px}.announcement-metrics{background:var(--surface-2);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px}.announcement-metrics-summary{display:flex;gap:20px;flex-wrap:wrap}.announcement-metrics-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px}.announcement-metrics-stat-value{font-size:1.4rem;font-weight:700;color:var(--text-1)}.announcement-metrics-stat-label{font-size:.66rem;color:var(--text-3);text-transform:uppercase}.announcement-metrics-users{font-size:.78rem;color:var(--text-2);display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}.announcement-metrics-user{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--border-1)}.ann-admin-split{flex:1;display:grid;grid-template-columns:340px 1fr;overflow:hidden}.ann-admin-left{display:flex;flex-direction:column;border-right:1px solid var(--border-1);overflow:hidden;background:var(--surface-1)}.ann-admin-left-toolbar{padding:12px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--border-1);flex-shrink:0}.ann-admin-filters{display:flex;gap:6px;flex-wrap:wrap}.ann-admin-select{background:var(--surface-0);border:1px solid var(--border-1);border-radius:6px;padding:4px 8px;font-size:.7rem;color:var(--text-1);font-family:inherit;cursor:pointer;flex:1;min-width:0}.ann-admin-select:focus{outline:none;border-color:var(--accent)}.ann-admin-left-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.ann-admin-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .12s ease;border:1px solid transparent}.ann-admin-item:hover{background:var(--surface-2)}.ann-admin-item.selected{background:var(--accent-soft);border-color:var(--accent)}.ann-admin-item.expired{opacity:.55}.ann-admin-item-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;font-size:.85rem}.ann-admin-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ann-admin-item-top{display:flex;align-items:center;gap:6px}.ann-admin-item-title{font-size:.8rem;font-weight:600;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.ann-admin-item-bottom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ann-admin-item-date{font-size:.65rem;color:var(--text-3)}.ann-admin-item-status{font-size:.6rem;font-weight:600;padding:1px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.ann-admin-item-status--active{background:var(--accent-soft);color:var(--accent-strong)}.ann-admin-item-status--draft{background:var(--surface-3);color:var(--text-3)}.ann-admin-item-status--expired{background:#c939391a;color:var(--danger)}.ann-admin-item-status--scheduled{background:#f59e0b1a;color:#d97706}.ann-admin-right{flex:1;overflow-y:auto;background:var(--surface-0)}.ann-admin-right-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-3);gap:12px;font-size:.88rem}.ann-admin-detail{padding:24px;display:flex;flex-direction:column;gap:20px}.ann-admin-detail-header{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}.ann-admin-detail-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;flex-shrink:0}.ann-admin-detail-header-info{flex:1;min-width:200px}.ann-admin-detail-header-info h2{font-size:1.15rem;font-weight:700;color:var(--text-1);margin:0 0 6px}.ann-admin-detail-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ann-admin-detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.ann-admin-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.ann-admin-detail-info-item{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--surface-1);border:1px solid var(--border-1);border-radius:10px;font-size:.9rem;color:var(--text-2)}.ann-admin-detail-info-item>svg{flex-shrink:0;margin-top:2px}.ann-admin-detail-info-item>div{display:flex;flex-direction:column;gap:2px}.ann-admin-detail-info-label{font-size:.66rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.ann-admin-detail-info-value{font-size:.82rem;color:var(--text-1);font-weight:500}.ann-admin-detail-section{display:flex;flex-direction:column;gap:10px}.ann-admin-detail-section h3{font-size:.88rem;font-weight:700;color:var(--text-1);margin:0;display:flex;align-items:center}.ann-admin-detail-preview{background:var(--surface-1);border:1px solid var(--border-1);border-radius:10px;padding:16px 20px;font-size:.86rem;color:var(--text-1);line-height:1.65;max-height:400px;overflow-y:auto}.ann-admin-detail-preview h1,.ann-admin-detail-preview h2,.ann-admin-detail-preview h3{margin:12px 0 6px;font-size:.96rem}.ann-admin-detail-preview p{margin:6px 0}.ann-admin-detail-preview ul,.ann-admin-detail-preview ol{padding-left:20px;margin:6px 0}.ann-admin-detail-preview code{background:var(--surface-3);padding:1px 5px;border-radius:4px;font-size:.8rem}.ann-admin-detail-preview img{max-width:100%;border-radius:8px;margin:8px 0}.ann-admin-form-wrap{display:flex;flex-direction:column;height:100%}.ann-admin-form-header{padding:18px 24px 14px;border-bottom:1px solid var(--border-1);flex-shrink:0}.ann-admin-form-header h2{font-size:1rem;font-weight:700;color:var(--text-1);margin:0}.ann-admin-form-body{flex:1;overflow-y:auto;padding:20px 24px}@media(max-width:900px){.announcement-admin-layout,.ann-admin-split{grid-template-columns:1fr}.ann-admin-left{max-height:40vh;border-right:none;border-bottom:1px solid var(--border-1)}}@media(max-width:640px){.announcements-header{padding:12px 16px}.announcements-toolbar{padding:10px 16px}.announcements-body{padding:14px 16px}.announcements-stats{padding:0 16px}.announcements-search{width:100%}.announcement-card-main{padding:12px 14px}.announcement-card-icon-wrap{display:none}.announcement-modal{width:98vw;max-height:92vh;border-radius:14px}.announcement-modal-body{padding:16px}.announcement-modal-header{padding:14px 16px 10px}.announcement-modal-footer{padding:10px 16px 14px}}@keyframes ann-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ann-fade-out{0%{opacity:1}to{opacity:0}}@keyframes ann-slide-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ann-slide-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.98)}}.dc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#070c1094;animation:dc-fade-in .2s ease}@keyframes dc-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dc-slide-up{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.dc-modal{width:min(460px,92vw);background:var(--surface-1);border:1px solid var(--border-1);border-radius:18px;box-shadow:0 24px 60px #0c1f2940;padding:20px;display:grid;gap:14px;animation:dc-slide-up .25s cubic-bezier(.34,1.4,.64,1)}.dc-modal-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.dc-modal-icon{width:40px;height:40px;border-radius:12px;background:#d645451f;color:var(--danger);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.dc-modal-title{margin:0;font-size:1.05rem;color:var(--text-1)}.dc-modal-close{border:none;background:transparent;color:var(--text-2);width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}.dc-modal-close:hover{background:var(--surface-3)}.dc-modal-desc{margin:0;color:var(--text-2);font-size:.88rem;line-height:1.5}.dc-modal-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:220px;overflow-y:auto}.dc-modal-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid rgba(214,69,69,.2);background:#d645450d}.dc-modal-item-icon{color:var(--danger);flex-shrink:0}.dc-modal-item-name{flex:1;font-size:.86rem;font-weight:600;color:var(--text-1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dc-modal-item-status{font-size:.78rem;font-weight:600;color:var(--danger);flex-shrink:0}.dc-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.dc-modal-btn{border:none;border-radius:10px;padding:8px 16px;font-size:.84rem;font-weight:600;cursor:pointer;transition:filter .15s ease,transform .15s ease}.dc-modal-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.dc-modal-btn--secondary{background:var(--surface-3);color:var(--text-2)}.dc-modal-btn--primary{background:var(--accent);color:#fff}@media(max-width:480px){.dc-modal{padding:16px}.dc-modal-actions{flex-direction:column}.dc-modal-btn{width:100%;text-align:center}}.onb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:grid;place-items:center;padding:24px;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.onb-modal{position:relative;width:100%;max-width:440px;border-radius:20px;background:var(--surface-1);border:1px solid var(--border-1);box-shadow:0 24px 64px #0000004d,0 4px 16px #0000001a;overflow:hidden}.onb-modal-close{position:absolute;top:12px;right:12px;z-index:2;width:32px;height:32px;border-radius:8px;border:none;background:#ffffff1a;color:#ffffffb3;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.onb-modal-close:hover{background:#fff3;color:#fff}.onb-modal-close svg{width:16px;height:16px}.onb-modal-glow{height:120px;background:linear-gradient(135deg,rgba(var(--accent-rgb),.7),rgba(var(--accent-rgb),.4),rgba(var(--accent-rgb),.2));position:relative}.onb-modal-glow:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(to bottom,transparent,var(--surface-1))}.onb-modal-content{padding:0 28px 28px;text-align:center;margin-top:-40px;position:relative}.onb-modal-icon-wrap{width:64px;height:64px;border-radius:16px;background:var(--accent);color:#fff;display:grid;place-items:center;margin:0 auto 16px;box-shadow:0 4px 16px rgba(var(--accent-rgb),.35),0 0 0 4px var(--surface-1)}.onb-modal-icon{width:28px;height:28px}.onb-modal-title{margin:0 0 8px;font-size:1.3rem;font-weight:800;color:var(--text-1);letter-spacing:-.02em}.onb-modal-desc{margin:0 0 20px;font-size:.88rem;color:var(--text-2);line-height:1.55}.onb-features{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:24px}.onb-feature{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border-1)}.onb-feature-icon{display:grid;place-items:center;color:var(--accent)}.onb-feature-icon svg{width:16px;height:16px}.onb-feature-label{font-size:.75rem;font-weight:600;color:var(--text-1);text-align:left}.onb-modal-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.onb-btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 20px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-size:.92rem;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(var(--accent-rgb),.3);transition:box-shadow .2s}.onb-btn-primary:hover{box-shadow:0 6px 20px rgba(var(--accent-rgb),.45)}.onb-btn-primary svg{width:18px;height:18px}.onb-btn-secondary{display:flex;align-items:center;justify-content:center;width:100%;padding:10px 20px;border:1px solid var(--border-1);border-radius:12px;background:none;color:var(--text-2);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.onb-btn-secondary:hover{background:var(--surface-2);color:var(--text-1)}.onb-modal-tip{margin:0;font-size:.72rem;color:var(--text-3)}.tour-tooltip{width:340px;max-width:calc(100vw - 32px);border-radius:14px;background:var(--surface-1);border:1px solid var(--border-1);box-shadow:0 12px 40px var(--shadow-strong),0 4px 12px var(--shadow-soft);overflow:hidden}.tour-tooltip-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 0}.tour-tooltip-title{margin:0;font-size:.95rem;font-weight:700;color:var(--text-1)}.tour-tooltip-close{width:28px;height:28px;border-radius:7px;border:none;background:none;color:var(--text-3);cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.tour-tooltip-close:hover{background:var(--surface-2);color:var(--text-1)}.tour-tooltip-close svg{width:14px;height:14px}.tour-tooltip-body{padding:10px 16px 14px}.tour-tooltip-body p{margin:0;font-size:.85rem;color:var(--text-2);line-height:1.6}.tour-tooltip-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--border-1)}.tour-tooltip-progress{font-size:.72rem;color:var(--text-3);font-weight:500;white-space:nowrap}.tour-tooltip-dots{display:flex;align-items:center;gap:4px;flex:1;justify-content:center}.tour-tooltip-dot{width:6px;height:6px;border-radius:3px;background:var(--surface-3);transition:background .2s,width .2s}.tour-tooltip-dot.is-active{width:18px;background:var(--accent)}.tour-tooltip-dot.is-done{background:rgba(var(--accent-rgb),.35)}.tour-tooltip-actions{display:flex;align-items:center;gap:6px}.tour-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;border:none;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.tour-btn svg{width:14px;height:14px}.tour-btn--back{background:none;color:var(--text-3)}.tour-btn--back:hover{background:var(--surface-2);color:var(--text-2)}.tour-btn--primary{background:var(--accent);color:#fff;box-shadow:0 2px 6px rgba(var(--accent-rgb),.25)}.tour-btn--primary:hover{box-shadow:0 4px 12px rgba(var(--accent-rgb),.4)}.__floater{filter:none!important}.__floater__arrow span{background-color:var(--surface-1)!important}@media(max-width:480px){.onb-modal{max-width:100%;border-radius:16px}.onb-modal-content{padding:0 20px 24px}.onb-features{grid-template-columns:1fr}.tour-tooltip{width:300px}.tour-tooltip-dots{display:none}}.feedback-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:feedback-fade-in .2s ease}.feedback-modal-overlay.closing{animation:feedback-fade-out .18s ease forwards}.feedback-modal{background:var(--surface-1);color:var(--text-1);border-radius:14px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;animation:feedback-slide-in .22s cubic-bezier(.4,0,.2,1)}.feedback-modal.closing{animation:feedback-slide-out .18s ease forwards}@keyframes feedback-fade-in{0%{opacity:0}to{opacity:1}}@keyframes feedback-fade-out{0%{opacity:1}to{opacity:0}}@keyframes feedback-slide-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes feedback-slide-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.97)}}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-1)}.feedback-modal-header h2{margin:0;font-size:1.05rem;font-weight:600}.feedback-modal-close{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;border:none;background:none;color:var(--text-2);cursor:pointer;transition:background .15s,color .15s}.feedback-modal-close:hover{background:rgba(var(--accent-rgb),.1);color:var(--text-1)}.feedback-modal-close svg{width:18px;height:18px}.feedback-form{padding:16px 20px 20px;display:flex;flex-direction:column;gap:16px}.feedback-field{display:flex;flex-direction:column;gap:6px}.feedback-field label{font-size:.82rem;font-weight:600;color:var(--text-2);letter-spacing:.02em}.feedback-required{color:var(--danger);margin-left:2px}.feedback-error{font-size:.76rem;color:var(--danger);margin-top:-2px}.feedback-segmented{display:flex;border-radius:10px;background:var(--surface-2);padding:3px;border:1px solid var(--border-1)}.feedback-segmented button{flex:1;padding:7px 12px;border:none;background:none;border-radius:8px;font-size:.82rem;font-weight:500;color:var(--text-2);cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}.feedback-segmented button.active{background:var(--surface-1);color:var(--accent-strong);font-weight:600;box-shadow:0 1px 4px #00000014}.feedback-segmented button:not(.active):hover{color:var(--text-1);background:rgba(var(--accent-rgb),.06)}.feedback-segmented--priority button.active[data-priority=low]{color:#3b82f6}.feedback-segmented--priority button.active[data-priority=medium]{color:#f59e0b}.feedback-segmented--priority button.active[data-priority=high]{color:#ef4444}.feedback-segmented--priority button.active[data-priority=critical]{color:#dc2626}.feedback-input,.feedback-textarea,.feedback-select{width:100%;padding:9px 12px;border-radius:9px;border:1px solid var(--border-1);background:var(--surface-2);color:var(--text-1);font-size:.88rem;font-family:inherit;outline:none;transition:border-color .18s,box-shadow .18s}.feedback-input:focus,.feedback-textarea:focus,.feedback-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.feedback-input::placeholder,.feedback-textarea::placeholder{color:var(--text-2);opacity:.6}.feedback-textarea{resize:vertical;min-height:80px}.feedback-input.error,.feedback-textarea.error{border-color:var(--danger)}.feedback-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;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='%233a4d5c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.feedback-audio-section{display:flex;flex-direction:column;gap:8px}.feedback-audio-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;border:1px solid var(--border-1);background:var(--surface-2);color:var(--text-2);font-size:.82rem;font-weight:500;cursor:pointer;width:fit-content;transition:background .15s,color .15s,border-color .15s}.feedback-audio-btn:hover{background:rgba(var(--accent-rgb),.08);color:var(--accent-strong);border-color:rgba(var(--accent-rgb),.2)}.feedback-audio-btn svg{width:16px;height:16px}.feedback-audio-recording{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:9px;background:#ef444414;border:1px solid rgba(239,68,68,.2)}.feedback-audio-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;animation:feedback-pulse 1.2s infinite}@keyframes feedback-pulse{0%,to{opacity:1}50%{opacity:.3}}.feedback-audio-timer{font-size:.88rem;font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums;min-width:36px}.feedback-audio-stop,.feedback-audio-cancel{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:7px;border:none;font-size:.78rem;font-weight:500;cursor:pointer;transition:background .15s}.feedback-audio-stop{background:#ef44441f;color:#ef4444}.feedback-audio-stop:hover{background:#ef444433}.feedback-audio-stop svg,.feedback-audio-cancel svg{width:13px;height:13px}.feedback-audio-cancel{background:none;color:var(--text-2);padding:4px 6px;margin-left:auto}.feedback-audio-cancel:hover{background:rgba(var(--accent-rgb),.08)}.feedback-audio-transcribing{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border-1);font-size:.82rem;color:var(--text-2)}.feedback-spinner{width:16px;height:16px;animation:feedback-spin 1s linear infinite}@keyframes feedback-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.feedback-transcribe-error{display:flex;align-items:center;gap:8px}.feedback-retry-btn{padding:3px 10px;border-radius:6px;border:1px solid var(--border-1);background:var(--surface-2);color:var(--text-2);font-size:.74rem;cursor:pointer;white-space:nowrap;transition:background .15s}.feedback-retry-btn:hover{background:rgba(var(--accent-rgb),.08)}.feedback-screenshot-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.feedback-screenshot-btn{padding:7px 12px;border-radius:8px;border:1px solid var(--border-1);background:var(--surface-2);color:var(--text-2);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.feedback-screenshot-btn:hover:not(:disabled){background:rgba(var(--accent-rgb),.08);color:var(--accent-strong);border-color:rgba(var(--accent-rgb),.2)}.feedback-screenshot-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-screenshot-hint{font-size:.74rem;color:var(--text-2);opacity:.7}.feedback-screenshot-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.feedback-screenshot-thumb{position:relative;width:72px;height:54px;border-radius:8px;overflow:hidden;border:1px solid var(--border-1);flex-shrink:0;animation:feedback-thumb-in .2s ease}@keyframes feedback-thumb-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.feedback-screenshot-thumb img{width:100%;height:100%;object-fit:cover;display:block}.feedback-screenshot-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:#0000008c;color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .15s}.feedback-screenshot-remove svg{width:12px;height:12px}.feedback-screenshot-thumb:hover .feedback-screenshot-remove{opacity:1}.feedback-submit{width:100%;padding:11px 16px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .18s,transform .12s,opacity .18s}.feedback-submit:hover:not(:disabled){background:var(--accent-strong)}.feedback-submit:active:not(:disabled){transform:scale(.98)}.feedback-submit:disabled{opacity:.5;cursor:not-allowed}.feedback-submit-error{margin-top:-8px}.feedback-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 20px;text-align:center}.feedback-success-icon{width:48px;height:48px;color:var(--accent)}.feedback-success h3{margin:0;font-size:1.1rem;font-weight:600}.feedback-success-link{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;background:var(--accent-soft);color:var(--accent-strong);text-decoration:none;font-size:.85rem;font-weight:500;transition:background .15s}.feedback-success-link:hover{background:rgba(var(--accent-rgb),.2)}.feedback-success-link svg{width:14px;height:14px}.feedback-success-actions{display:flex;gap:8px;margin-top:8px}.feedback-success-btn{padding:9px 18px;border-radius:9px;border:1px solid var(--border-1);background:var(--surface-2);color:var(--text-1);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.feedback-success-btn:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.2)}.feedback-success-btn--close{background:var(--accent);color:#fff;border-color:transparent}.feedback-success-btn--close:hover{background:var(--accent-strong)}@media(max-width:900px){.feedback-modal{max-width:100%;max-height:85vh;border-radius:14px 14px 0 0;align-self:flex-end}.feedback-modal-overlay{align-items:flex-end;padding:0}}@media(max-width:480px){.feedback-form{padding:14px 16px 16px;gap:14px}}.skip-link{position:absolute;top:-100%;left:16px;z-index:9999;padding:8px 16px;background:var(--primary);color:#fff;border-radius:0 0 6px 6px;font-size:.85rem;font-weight:600;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:0}.app-shell{height:100vh;height:100dvh;display:flex;align-items:stretch;background:var(--app-bg)}.app-shell.collapsed .app-sidebar{width:68px}.app-sidebar{position:sticky;top:0;z-index:2;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;padding:12px 10px;border-right:1px solid var(--border-1);width:220px;min-width:20px;background:linear-gradient(180deg,var(--surface-1) 0%,var(--surface-2) 100%);display:flex;flex-direction:column;gap:8px;box-shadow:none;overflow:visible;flex-shrink:0;transition:width .25s ease}.app-logo-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:4px;width:100%;padding:6px;border-radius:12px;background:var(--accent-soft);overflow:hidden}.app-logo{font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;color:var(--accent-strong);white-space:nowrap}.app-collapse-toggle{position:absolute;right:-13px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:999px;border:1px solid var(--border-1);background:var(--surface-1);color:var(--accent-strong);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px #0c1f2924;z-index:10;transition:background .2s ease,box-shadow .2s ease}.app-collapse-toggle:hover{background:rgba(var(--accent-rgb),.12);box-shadow:0 6px 16px #0c1f2933}.app-collapse-toggle svg{width:14px;height:14px}.app-nav{display:flex;flex-direction:column;gap:6px;min-height:0;flex:1}.app-nav-group{display:flex;flex-direction:column;gap:4px}.app-nav-group--secondary{flex:1;min-height:0;overflow-y:auto;padding-bottom:8px;scrollbar-width:none;display:flex;flex-direction:column;gap:6px}.app-nav-group--secondary:hover{scrollbar-width:thin;scrollbar-color:var(--border-1) transparent}.app-nav-section{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;border-bottom:1px solid color-mix(in oklab,var(--border-1) 60%,transparent)}.app-nav-section:last-child{border-bottom:none;padding-bottom:0}.app-nav-section-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);padding:6px 10px 2px;opacity:.7;-webkit-user-select:none;user-select:none;transition:opacity .2s ease}.app-nav-group--footer{margin-top:auto;padding-top:6px;border-top:1px solid color-mix(in oklab,var(--border-1) 60%,transparent);flex-shrink:0;gap:2px}.app-nav-link{display:inline-flex;align-items:center;gap:10px;text-align:left;text-decoration:none;border:none;background:none;padding:7px 10px;border-radius:10px;cursor:pointer;color:var(--text-2);font-size:.82rem;font-weight:500;position:relative;transition:background .22s cubic-bezier(.4,0,.2,1),color .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);white-space:nowrap;overflow:hidden}.app-nav-link svg{width:16px;height:16px;flex-shrink:0;transition:color .18s ease}.app-nav-badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.62rem;font-weight:700;display:grid;place-items:center;line-height:1;margin-left:auto;animation:app-badge-pop .3s ease}.app-shell.collapsed .app-nav-badge{position:absolute;top:2px;right:2px;min-width:8px;height:8px;padding:0;font-size:0;border-radius:50%;margin:0;box-shadow:0 0 0 2px var(--surface-1)}@keyframes app-badge-pop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.app-shell.collapsed .app-logo{font-size:.9rem;text-align:center}.app-shell.collapsed .app-nav span{display:none}.app-shell.collapsed .app-nav-section{padding-bottom:4px}.app-shell.collapsed .app-nav-section-label{display:none}.app-shell.collapsed .app-logo-button{justify-content:center}.app-shell.collapsed .app-nav-link{justify-content:center;padding:8px}.app-shell.collapsed .app-nav svg{width:19px;height:19px}.app-nav-link.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.22)}.app-nav-link.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:999px;background:var(--accent-strong)}.app-shell.collapsed .app-nav-link.active:before{display:none}.app-nav-link:hover:not(.active){background:rgba(var(--accent-rgb),.1);color:var(--text-1);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.12);transform:translate(2px)}.app-nav-link:active:not(.active){transform:translate(0) scale(.98)}.app-theme-toggle svg{color:inherit}.app-content{min-width:0;height:100vh;height:100dvh;overflow-y:auto;flex:1}.app-nav-item--mobile-only{display:none}@media(max-width:900px){.app-shell{flex-direction:column}.app-shell.collapsed .app-sidebar{width:100%}.app-shell.collapsed .app-nav span{display:inline}.app-sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;width:100%;min-width:0;flex-direction:row;align-items:center;justify-content:center;padding:8px 10px calc(env(safe-area-inset-bottom,0px) + 10px);border-right:none;border-top:1px solid var(--border-1);background:color-mix(in oklab,var(--surface-1) 88%,transparent);box-shadow:0 -12px 32px var(--shadow-strong);z-index:20;transition:none}.app-logo-button,.app-collapse-toggle{display:none}.app-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;justify-content:stretch;align-items:stretch;min-width:0}.app-nav-group,.app-nav-section{display:contents}.app-nav-section-label{display:none}.app-nav-item--desktop-only{display:none!important}.app-nav-link{display:none}.app-nav-group--main .app-nav-link,.app-nav-item--mobile-only{display:inline-flex;min-width:0;min-height:54px;flex-direction:column;gap:5px;padding:7px 6px;font-size:.74rem;border-radius:14px;justify-content:center;text-align:center;white-space:normal;overflow:visible;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.app-nav-group--main .app-nav-link:before,.app-nav-item--mobile-only:before{display:none}.app-nav-group--main .app-nav-link span,.app-nav-item--mobile-only span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav-group--main .app-nav-link svg,.app-nav-item--mobile-only svg{width:20px;height:20px}.app-nav-link.active{transform:none;box-shadow:none;background:var(--accent-soft);color:var(--accent-strong)}.app-content{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}}@media(max-width:480px){.app-sidebar{padding:6px 8px calc(env(safe-area-inset-bottom,0px) + 8px)}.app-nav{gap:6px}.app-nav-group--main .app-nav-link,.app-nav-item--mobile-only{min-height:50px;padding:6px 4px;font-size:.68rem;border-radius:12px;gap:4px}.app-nav-group--main .app-nav-link svg,.app-nav-item--mobile-only svg{width:18px;height:18px}.app-content{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}}.pwa-install-banner{display:none}@media(max-width:900px){.pwa-install-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;position:fixed;bottom:calc(70px + env(safe-area-inset-bottom,0px));left:10px;right:10px;z-index:25;padding:10px 12px;border-radius:14px;background:var(--surface-1, #fff);border:1px solid var(--border-1, #e0e0e0);box-shadow:0 8px 28px #00000026;animation:pwa-banner-slide-up .3s ease-out}@keyframes pwa-banner-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pwa-install-banner-content{display:flex;align-items:center;gap:10px;min-width:0}.pwa-install-banner-icon{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:rgba(var(--accent-rgb, 29, 164, 111),.12);color:var(--accent, #1da46f)}.pwa-install-banner-text{display:grid;gap:1px;min-width:0}.pwa-install-banner-text strong{font-size:.82rem;font-weight:700;color:var(--text-1, #0b1118)}.pwa-install-banner-text span{font-size:.7rem;color:var(--text-2, #6b7785);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pwa-install-banner-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.pwa-install-banner-btn{border:none;background:var(--accent, #1da46f);color:#fff;font-size:.76rem;font-weight:700;padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap}.pwa-install-banner-btn:active{opacity:.85}.pwa-install-banner-close{border:none;background:transparent;color:var(--text-2, #6b7785);font-size:1rem;padding:4px;cursor:pointer;line-height:1}}
