:root{--text: #6b6375;--text-h: #08060d;--bg: #fff;--border: #e5e4e7;--code-bg: #f4f3ec;--accent: #aa3bff;--accent-bg: rgba(170, 59, 255, .1);--accent-border: rgba(170, 59, 255, .5);--social-bg: rgba(244, 243, 236, .5);--shadow: rgba(0, 0, 0, .1) 0 10px 15px -3px, rgba(0, 0, 0, .05) 0 4px 6px -2px;--sans: system-ui, "Segoe UI", Roboto, sans-serif;--heading: system-ui, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width:1024px){:root{font-size:16px}}@media(prefers-color-scheme:dark){:root{--text: #9ca3af;--text-h: #f3f4f6;--bg: #16171d;--border: #2e303a;--code-bg: #1f2028;--accent: #c084fc;--accent-bg: rgba(192, 132, 252, .15);--accent-border: rgba(192, 132, 252, .5);--social-bg: rgba(47, 48, 58, .5);--shadow: rgba(0, 0, 0, .4) 0 10px 15px -3px, rgba(0, 0, 0, .25) 0 4px 6px -2px}#social .button-icon{filter:invert(1) brightness(2)}}body{margin:0}#root{width:100%;max-width:100%;margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column;box-sizing:border-box}h1,h2{font-family:var(--heading);font-weight:500;color:var(--text-h)}h1{font-size:56px;letter-spacing:-1.68px;margin:32px 0}@media(max-width:1024px){h1{font-size:36px;margin:20px 0}}h2{font-size:24px;line-height:118%;letter-spacing:-.24px;margin:0 0 8px}@media(max-width:1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);display:inline-flex;border-radius:4px;color:var(--text-h)}code{font-size:15px;line-height:135%;padding:4px 8px;background:var(--code-bg)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#03050c}::-webkit-scrollbar-thumb{background:#222b5d;border-radius:9px}::-webkit-scrollbar-thumb:hover{background:#34428a}body{background-color:#080b18!important;color:#f1f5f9!important;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif!important;font-feature-settings:"cv02","cv03","cv04","cv11"}h1,h2,h3,h4,h5,h6{font-family:Outfit,sans-serif!important;font-weight:700!important;color:#fff!important;letter-spacing:-.02em!important}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}input[type=datetime-local],input[type=date],input[type=time]{padding-right:2.2rem!important;font-size:.875rem!important;line-height:1.25rem!important;min-height:2.75rem!important}@media(min-width:640px){input[type=datetime-local],input[type=date],input[type=time]{font-size:.95rem!important;min-height:3rem!important}}input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.9;filter:invert(48%) sepia(79%) saturate(2476%) hue-rotate(152deg) brightness(118%) contrast(119%);transition:opacity .2s,transform .1s}input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1;transform:scale(1.1)}input[type=datetime-local]::-webkit-datetime-edit-fields-wrapper,input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=time]::-webkit-datetime-edit-fields-wrapper{color:#f1f5f9}input[type=datetime-local]::-webkit-datetime-edit-text,input[type=date]::-webkit-datetime-edit-text,input[type=time]::-webkit-datetime-edit-text{color:#a1b0cb;padding:0 2px}input[type=datetime-local]::-webkit-datetime-edit-month-field,input[type=datetime-local]::-webkit-datetime-edit-day-field,input[type=datetime-local]::-webkit-datetime-edit-year-field,input[type=datetime-local]::-webkit-datetime-edit-hour-field,input[type=datetime-local]::-webkit-datetime-edit-minute-field,input[type=datetime-local]::-webkit-datetime-edit-ampm-field,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-year-field,input[type=time]::-webkit-datetime-edit-hour-field,input[type=time]::-webkit-datetime-edit-minute-field{color:#f1f5f9;background:transparent;border-radius:4px;padding:1px 2px}input[type=datetime-local]::-webkit-datetime-edit-month-field:focus,input[type=datetime-local]::-webkit-datetime-edit-day-field:focus,input[type=datetime-local]::-webkit-datetime-edit-year-field:focus,input[type=datetime-local]::-webkit-datetime-edit-hour-field:focus,input[type=datetime-local]::-webkit-datetime-edit-minute-field:focus,input[type=date]::-webkit-datetime-edit-month-field:focus,input[type=date]::-webkit-datetime-edit-day-field:focus,input[type=date]::-webkit-datetime-edit-year-field:focus,input[type=time]::-webkit-datetime-edit-hour-field:focus,input[type=time]::-webkit-datetime-edit-minute-field:focus{background:#00f0ff26;color:#00f0ff;outline:none}.ai-panel{background:linear-gradient(145deg,#0f172a,#1e293b);border:1px solid rgba(99,102,241,.3);border-radius:16px;padding:0;overflow:hidden;box-shadow:0 4px 24px #6366f126;font-family:Inter,Noto Sans Thai,sans-serif}.ai-panel__header{display:flex;align-items:center;gap:8px;padding:14px 16px;background:linear-gradient(90deg,#6366f133,#8b5cf61a);border-bottom:1px solid rgba(99,102,241,.2)}.ai-panel__icon{font-size:1.2rem}.ai-panel__title{font-weight:600;font-size:.95rem;color:#e2e8f0;flex:1}.ai-panel__badge{background:#6366f14d;color:#a5b4fc;font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:99px;letter-spacing:.05em;border:1px solid rgba(99,102,241,.4)}.ai-panel__tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08)}.ai-panel__tab{flex:1;background:none;border:none;padding:10px 8px;color:#64748b;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:2px}.ai-panel__tab:hover{color:#a5b4fc;background:#6366f10d}.ai-panel__tab.active{color:#818cf8;border-bottom:2px solid #6366f1;background:#6366f114}.ai-panel__body{padding:16px;display:flex;flex-direction:column;gap:12px}.ai-panel__hint{font-size:.78rem;color:#64748b;margin:0;line-height:1.5}.ai-panel__textarea{width:100%;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;padding:10px 12px;font-size:.85rem;font-family:inherit;resize:vertical;transition:border-color .2s;box-sizing:border-box}.ai-panel__textarea:focus{outline:none;border-color:#6366f199;background:#ffffff0f}.ai-panel__textarea::placeholder{color:#475569;font-size:.78rem}.ai-panel__btn{width:100%;padding:10px 16px;border:none;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.ai-panel__btn:disabled{opacity:.4;cursor:not-allowed}.ai-panel__btn--primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.ai-panel__btn--primary:not(:disabled):hover{background:linear-gradient(135deg,#4f46e5,#7c3aed);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.ai-panel__btn--success{background:linear-gradient(135deg,#059669,#10b981);color:#fff;flex:1}.ai-panel__btn--success:hover{background:linear-gradient(135deg,#047857,#059669);transform:translateY(-1px)}.ai-panel__btn--danger{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3);flex:0 0 auto;width:auto;padding:10px 20px}.ai-panel__btn--danger:hover{background:#ef444440}.ai-panel__dropzone{border:2px dashed rgba(99,102,241,.35);border-radius:12px;padding:16px;cursor:pointer;transition:all .2s;min-height:120px;display:flex;align-items:center;justify-content:center;background:#6366f10a}.ai-panel__dropzone:hover{border-color:#6366f199;background:#6366f114}.ai-panel__dropzone-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:#64748b;font-size:.82rem}.ai-panel__dropzone-placeholder span:first-child{font-size:2rem}.ai-panel__preview{max-width:100%;max-height:200px;border-radius:8px;object-fit:contain}.ai-panel__vision-desc{background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:8px;padding:10px 12px;font-size:.8rem;color:#94a3b8;line-height:1.5}.ai-panel__error{margin:0 16px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:10px 12px;font-size:.8rem;color:#f87171}.ai-panel__result{margin:0 16px 16px;background:#10b9810f;border:1px solid rgba(16,185,129,.25);border-radius:12px;overflow:hidden}.ai-panel__result-header{padding:10px 14px;background:#10b9811a;font-size:.78rem;color:#6ee7b7;font-weight:500;border-bottom:1px solid rgba(16,185,129,.15)}.ai-panel__result-fields{padding:12px 14px;display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.ai-panel__result-field{display:flex;gap:8px;font-size:.8rem}.ai-panel__result-label{color:#64748b;min-width:90px;flex-shrink:0}.ai-panel__result-value{color:#e2e8f0;font-weight:500;word-break:break-word}.ai-panel__result-actions{display:flex;gap:8px;padding:12px 14px;border-top:1px solid rgba(16,185,129,.15)}.ai-panel__review{background:#ffffff08;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.08)}.ai-panel__review-score{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.85rem;color:#e2e8f0}.ai-panel__review-status--good{color:#6ee7b7}.ai-panel__review-status--warning{color:#fbbf24}.ai-panel__review-status--error{color:#f87171}.ai-panel__review-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.ai-panel__review-item{font-size:.78rem;padding:6px 10px;border-radius:6px;line-height:1.4}.ai-panel__review-item--error{background:#ef44441a;color:#fca5a5;border-left:3px solid #ef4444}.ai-panel__review-item--warning{background:#fbbf2414;color:#fcd34d;border-left:3px solid #f59e0b}.ai-panel__suggestions{margin-top:10px;font-size:.78rem;color:#94a3b8}.ai-panel__suggestions ul{margin:6px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:4px;box-sizing:border-box}.ai-panel__status-container{display:flex;align-items:center;margin-left:auto}.ai-status-badge{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.02em;background:#0f172a99;border:1px solid rgba(255,255,255,.08)}.ai-status-badge--online{color:#34d399;border-color:#34d39940;box-shadow:0 0 8px #34d39926}.ai-status-badge--offline{color:#f87171;border-color:#f8717140;box-shadow:0 0 8px #f8717126}.ai-status-badge--checking{color:#94a3b8;border-color:#94a3b840}.ai-status-dot{width:6px;height:6px;border-radius:55%;display:inline-block}.ai-status-dot--online{background-color:#10b981;box-shadow:0 0 8px #10b981;animation:pulse-dot 2s infinite}.ai-status-dot--offline{background-color:#ef4444;box-shadow:0 0 8px #ef4444;animation:pulse-dot 1.5s infinite}.ai-status-dot--checking{background-color:#64748b;animation:pulse-dot 3s infinite}@keyframes pulse-dot{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.15);opacity:1;box-shadow:0 0 12px currentColor}to{transform:scale(.95);opacity:.8}}.ai-panel__textarea-wrapper{position:relative;width:100%}.ai-panel__voice-btn{position:absolute;right:12px;bottom:12px;width:32px;height:32px;border-radius:50%;background:#6366f126;border:1px solid rgba(99,102,241,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#a5b4fc}.ai-panel__voice-btn:hover{background:#6366f140;color:#fff;transform:scale(1.05)}.ai-panel__voice-btn.listening{background:#ef444433;border-color:#ef444499;color:#f87171;box-shadow:0 0 12px #ef444466;animation:pulse-mic 1.5s infinite}@keyframes pulse-mic{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.ai-panel__textarea{padding-right:48px}.ai-chat-wrapper{position:fixed;bottom:24px;right:24px;z-index:100;font-family:Plus Jakarta Sans,system-ui,sans-serif}.ai-chat-fab{width:56px;height:56px;border-radius:28px;background:gradient-to-br;background:linear-gradient(135deg,#6366f1,#9d4edd);border:1px solid rgba(0,240,255,.4);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 20px #6366f166,inset 0 0 10px #00f0ff33;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.ai-chat-fab:hover{transform:scale(1.08) rotate(5deg);box-shadow:0 0 28px #00f0ff99,inset 0 0 15px #9d4edd66;border-color:#00f0ff}.ai-chat-fab:active{transform:scale(.95)}.ai-chat-fab__icon{font-size:24px}.ai-chat-fab__status{position:absolute;top:0;right:0;width:14px;height:14px;border-radius:50%;border:2px solid #03050c;box-shadow:0 0 6px #00000080}.ai-chat-fab__status--online{background-color:#22c55e;box-shadow:0 0 8px #22c55e}.ai-chat-fab__status--offline{background-color:#f59e0b;box-shadow:0 0 8px #f59e0b}.ai-chat-fab__status--checking{background-color:#a1b0cb;animation:pulse 1.5s infinite}.ai-chat-box{width:380px;height:520px;background:#0f132ed9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(52,66,138,.5);border-radius:24px;box-shadow:0 20px 50px #00000080,0 0 30px #6366f126;display:flex;flex-direction:column;overflow:hidden;position:absolute;bottom:72px;right:0;transform-origin:bottom right;animation:chatOpen .3s cubic-bezier(.34,1.56,.64,1);z-index:101}@keyframes chatOpen{0%{opacity:0;transform:scale(.7) translateY(50px)}to{opacity:1;transform:scale(1) translateY(0)}}.ai-chat-header{padding:16px 20px;background:#03050cb3;border-b:1px solid rgba(34,43,93,.5);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(34,43,93,.4)}.ai-chat-header__info{display:flex;align-items:center;gap:10px}.ai-chat-header__avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#00f0ff,#6366f1);display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 0 10px #00f0ff4d}.ai-chat-header__title-wrapper{display:flex;flex-direction:column}.ai-chat-header__title{font-family:Outfit,sans-serif;font-size:12px;font-weight:800;color:#fff;letter-spacing:.3px;line-height:1.35;max-width:220px}.ai-chat-header__status{font-size:9px;color:#a1b0cb;display:flex;align-items:center;gap:5px;font-family:ui-monospace,monospace}.ai-chat-header__dot{width:6px;height:6px;border-radius:50%}.ai-chat-header__dot--online{background-color:#22c55e;box-shadow:0 0 6px #22c55e}.ai-chat-header__dot--offline{background-color:#f59e0b;box-shadow:0 0 6px #f59e0b}.ai-chat-header__dot--checking{background-color:#a1b0cb;animation:pulse 1.5s infinite}.ai-chat-header__close{background:transparent;border:none;color:#a1b0cb;cursor:pointer;font-size:18px;padding:4px;border-radius:8px;transition:all .2s;display:flex;align-items:center;justify-content:center}.ai-chat-header__close:hover{color:#ff007a;background:#ff007a1a}.ai-chat-header__actions{display:flex;align-items:center;gap:4px}.ai-chat-header__action{background:transparent;border:none;color:#a1b0cb;cursor:pointer;font-size:16px;padding:6px;border-radius:8px;transition:all .2s;display:flex;align-items:center;justify-content:center}.ai-chat-header__action:hover{color:#00f0ff;background:#00f0ff1a}.ai-chat-header__action--labeled{gap:5px;min-height:34px;padding:6px 10px;border:1px solid rgba(0,240,255,.45);background:#00f0ff14;color:#00f0ff;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.ai-chat-header__action--labeled:hover{background:#00f0ff2e;border-color:#00f0ff;color:#fff;box-shadow:0 0 12px #00f0ff40}.ai-chat-header__action--muted{border-color:#a1b0cb59;background:#a1b0cb0f;color:#a1b0cb}.ai-chat-header__action--muted:hover{color:#fff;border-color:#a1b0cb99;background:#a1b0cb1f;box-shadow:none}.ai-chat-header__module-badge{font-size:9px;color:#00f0ff;font-family:ui-monospace,monospace;opacity:.85;margin-top:2px}.ai-chat-box--expanded{width:min(640px,calc(100vw - 48px));height:min(85vh,800px)}.ai-chat-box--fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;max-width:none;max-height:none;border-radius:0;bottom:auto;right:auto;z-index:200}.ai-chat-box--expanded .ai-chat-msg,.ai-chat-box--fullscreen .ai-chat-msg{max-width:92%}.ai-chat-box--expanded .ai-chat-msg__bubble,.ai-chat-box--fullscreen .ai-chat-msg__bubble{font-size:14.5px;line-height:1.6}.ai-chat-box--expanded .ai-chat-messages,.ai-chat-box--fullscreen .ai-chat-messages{padding:24px}.ai-chat-wrapper--fullscreen .ai-chat-fab{display:none}.ai-chat-md__p{margin:0 0 8px}.ai-chat-md__p:last-child{margin-bottom:0}.ai-chat-md__list{margin:0 0 8px;padding-left:18px}.ai-chat-md__list li{margin-bottom:4px}.ai-chat-md__list li:last-child{margin-bottom:0}.ai-chat-md strong{color:#fff;font-weight:700}.ai-chat-md__h2{margin:16px 0 8px;font-size:15px;font-weight:800;color:#00f0ff;letter-spacing:.02em}.ai-chat-md__h3{margin:14px 0 6px;font-size:13.5px;font-weight:800;color:#00f0ff;letter-spacing:.02em;border-bottom:1px solid rgba(0,240,255,.2);padding-bottom:4px}.ai-chat-md__h3:first-child,.ai-chat-md__h2:first-child{margin-top:0}.ai-chat-md__h4{margin:10px 0 4px;font-size:13px;font-weight:700;color:#e2e8f0}.ai-chat-md__olist{margin:0 0 10px;padding-left:20px}.ai-chat-md__olist li{margin-bottom:6px}.ai-chat-md__note{margin:10px 0 0;padding:8px 10px;border-left:3px solid rgba(245,158,11,.6);background:#f59e0b14;border-radius:0 8px 8px 0;font-size:12px;color:#fcd34d;line-height:1.5}.ai-chat-md__em{font-style:italic;color:#cbd5e1}.ai-chat-md__code{font-family:ui-monospace,monospace;font-size:12px;background:#00000059;padding:1px 5px;border-radius:4px;color:#00f0ff}.ai-chat-messages{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:#080b1866}.ai-chat-messages::-webkit-scrollbar{width:5px}.ai-chat-messages::-webkit-scrollbar-track{background:transparent}.ai-chat-messages::-webkit-scrollbar-thumb{background:#222b5d99;border-radius:10px}.ai-chat-messages::-webkit-scrollbar-thumb:hover{background:#34428acc}.ai-chat-msg{display:flex;flex-direction:column;max-width:80%;animation:msgFadeIn .3s cubic-bezier(.16,1,.3,1)}@keyframes msgFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-chat-msg--assistant{align-self:flex-start}.ai-chat-msg--user{align-self:flex-end}.ai-chat-msg__bubble{padding:12px 16px;border-radius:18px;font-size:13.5px;line-height:1.5;word-break:break-word}.ai-chat-msg--assistant .ai-chat-msg__bubble{background:#1a204db3;border:1px solid rgba(52,66,138,.4);color:#f1f5f9;border-top-left-radius:4px;box-shadow:0 4px 12px #0000001a;font-size:14px;line-height:1.65}.ai-chat-msg--user .ai-chat-msg__bubble{background:linear-gradient(135deg,#6366f1,#1e1b4b);border:1px solid rgba(99,102,241,.3);color:#fff;border-top-right-radius:4px;box-shadow:0 4px 12px #6366f11a}.ai-chat-msg__time{font-size:9px;color:#a1b0cb;margin-top:4px;padding:0 4px;font-family:ui-monospace,monospace}.ai-chat-msg--user .ai-chat-msg__time{align-self:flex-end}.ai-chat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.ai-chat-chip{background:#222b5d4d;border:1px solid rgba(52,66,138,.4);color:#00f0ff;font-size:11px;padding:6px 12px;border-radius:12px;cursor:pointer;transition:all .2s;font-weight:600;text-align:left}.ai-chat-chip:hover{background:#00f0ff1a;border-color:#00f0ff;transform:translateY(-1px)}.ai-chat-footer{padding:16px 20px;background:#03050cd9;border-t:1px solid rgba(34,43,93,.5);display:flex;align-items:center;gap:10px}.ai-chat-input{flex:1;background:#080b18cc;border:1px solid rgba(34,43,93,.8);border-radius:14px;padding:10px 14px;font-size:13px;color:#fff;transition:all .3s;font-family:inherit}.ai-chat-input:focus{outline:none;border-color:#00f0ff;box-shadow:0 0 10px #00f0ff33}.ai-chat-input:disabled{opacity:.6;cursor:not-allowed}.ai-chat-send{width:36px;height:36px;border-radius:10px;background:#00f0ff;border:none;color:#03050c;font-weight:800;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.ai-chat-send:hover:not(:disabled){background:#fff;transform:scale(1.05);box-shadow:0 0 10px #00f0ff4d}.ai-chat-send:disabled{opacity:.5;cursor:not-allowed;background:#a1b0cb}.ai-typing-indicator{display:flex;gap:4px;padding:6px 12px;align-items:center}.ai-typing-dot{width:6px;height:6px;border-radius:50%;background-color:#00f0ff;animation:bounce 1.2s infinite ease-in-out}.ai-typing-dot:nth-child(2){animation-delay:.2s}.ai-typing-dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@media(max-width:768px){.ai-chat-box--expanded{width:calc(100vw - 24px);height:min(92vh,900px)}.ai-chat-header__action--labeled{min-height:40px;padding:8px 12px;font-size:12px}}@media(max-width:480px){.ai-chat-wrapper{bottom:16px;right:16px}.ai-chat-box:not(.ai-chat-box--fullscreen){position:fixed;bottom:0;right:0;left:0;top:0;width:100%;height:100%;border-radius:0;animation:slideUpMobile .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}}:root{--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1)}.insights-page{min-height:100vh;padding:0 28px 48px;color:var(--text-primary, #f1f5f9);width:100%;max-width:1600px;margin:0 auto;background-color:var(--cyber-bg, #080b18);background-image:radial-gradient(circle at 18% 8%,rgba(0,240,255,.05),transparent 45%),radial-gradient(circle at 82% 72%,rgba(99,102,241,.06),transparent 45%),linear-gradient(to right,rgba(128,128,128,.02) 1px,transparent 1px),linear-gradient(to bottom,rgba(128,128,128,.02) 1px,transparent 1px);background-size:100% 100%,100% 100%,28px 28px,28px 28px}.insights-hero-band{position:relative;margin:0 -28px 24px;padding:28px 28px 22px;border-bottom:1px solid rgba(0,240,255,.12);background:linear-gradient(165deg,rgba(0,240,255,.09) 0%,transparent 42%),linear-gradient(180deg,#0f132ed9,#080b1866);overflow:hidden}.insights-hero-band-glow{position:absolute;top:-40%;right:-8%;width:52%;height:140%;background:radial-gradient(ellipse,rgba(0,240,255,.14),transparent 68%);pointer-events:none}.insights-data-hint{position:relative;z-index:1;margin:0;padding:0 4px;font-size:.8125rem;line-height:1.5;color:var(--cyber-muted, #94a3b8)}.insights-data-hint strong{color:var(--cyber-text, #e2e8f0);font-weight:600}.insights-eyebrow{margin:0 0 6px;font-size:.6875rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#00f0ffb8}.insights-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;position:relative;z-index:1}.insights-title{display:flex;align-items:center;gap:10px;font-size:1.625rem;font-weight:800;margin:0 0 6px;font-family:Outfit,sans-serif;letter-spacing:-.025em;text-wrap:balance}.insights-title .text-cyber-cyan{color:var(--cyber-cyan, #00f0ff)}.insights-title-icon{color:var(--cyber-cyan, #00f0ff);filter:drop-shadow(0 0 6px rgba(0,240,255,.35));flex-shrink:0}.insights-subtitle{font-size:.875rem;color:var(--text-secondary, #a1b0cb);margin:0;max-width:52ch;line-height:1.5}.insights-meta{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:.75rem;color:var(--text-secondary, #a1b0cb)}.insights-meta-pill{padding:4px 10px;border-radius:999px;border:1px solid var(--card-border-light, rgba(52, 66, 138, .8));background:#0f132e99;color:#e2e8f0;font-weight:600}.insights-meta-pill--filter{border-color:#00f0ff73;background:#00f0ff1a;color:var(--cyber-cyan, #00f0ff);animation:insights-filter-pulse 2.4s ease-in-out infinite}.insights-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.insights-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;min-height:40px;border-radius:10px;font-size:.8125rem;font-weight:700;border:1px solid var(--card-border-light, rgba(52, 66, 138, .8));background:#0f132e8c;color:#e2e8f0;text-decoration:none;cursor:pointer;transition:border-color .18s var(--ease-out-quint),background .18s var(--ease-out-quint),transform .12s var(--ease-out-quint)}.insights-btn:active:not(:disabled){transform:scale(.97)}.insights-btn:hover{border-color:#00f0ff73;background:#00f0ff12}.insights-btn:focus-visible{outline:2px solid var(--cyber-cyan, #00f0ff);outline-offset:2px}.insights-btn--primary{border-color:#00f0ff66;color:var(--cyber-cyan, #00f0ff)}.insights-btn--primary:hover:not(:disabled){background:#00f0ff1f}.insights-btn:disabled{opacity:.55;cursor:not-allowed}.insights-slicers{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:16px;background:var(--card-bg, rgba(15, 19, 46, .45));border:1px solid var(--card-border, rgba(34, 43, 93, .7));border-radius:14px}.insights-slicers--sticky{position:sticky;top:8px;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #03050c59}.insights-slicer{flex:1;min-width:160px}.insights-slicer label{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.04em;color:var(--text-secondary, #a1b0cb);margin-bottom:6px}.insights-slicer select{width:100%;padding:10px 12px;min-height:40px;border-radius:10px;border:1px solid var(--card-border-light, rgba(52, 66, 138, .8));background:var(--cyber-dark, #03050c);color:var(--text-primary, #f1f5f9);font-weight:600;font-size:.875rem;cursor:pointer;transition:border-color .18s ease-out,box-shadow .18s ease-out}.insights-slicer select:hover{border-color:#00f0ff59}.insights-slicer select:focus-visible{outline:none;border-color:var(--cyber-cyan, #00f0ff);box-shadow:0 0 0 2px #00f0ff33}.insights-crossfilter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;background:#00f0ff0a;border:1px solid rgba(0,240,255,.22);border-radius:12px}.insights-crossfilter-label{font-size:.6875rem;font-weight:700;color:var(--cyber-cyan, #00f0ff);margin-right:4px}.insights-crossfilter--enter{animation:insights-slide-in .28s var(--ease-out-quint) both}.insights-chip{font-size:.75rem;font-weight:600;padding:6px 12px;min-height:32px;border-radius:8px;border:1px solid rgba(99,102,241,.4);background:#6366f124;color:#fff;cursor:pointer;transition:background .15s var(--ease-out-quint),border-color .15s var(--ease-out-quint),transform .12s var(--ease-out-quint)}.insights-chip:active{transform:scale(.96)}.insights-chip:hover{background:#6366f147}.insights-chip:focus-visible{outline:2px solid var(--cyber-cyan, #00f0ff);outline-offset:2px}.insights-chip--clear{margin-left:auto;border-color:#94a3b859;background:transparent;color:#94a3b8}.insights-chip--status-completed{border-color:#10b98173;background:#10b98129}.insights-chip--status-in_progress{border-color:#6366f173;background:#6366f129}.insights-chip--status-delayed{border-color:#ef444473;background:#ef444429}.insights-chip--status-continuing{border-color:#f59e0b73;background:#f59e0b29}.insights-data-zone{transition:opacity .25s var(--ease-out-quint)}.insights-data-zone--filtered{animation:insights-zone-in .32s var(--ease-out-quint) both}.insights-section-label{margin:0 0 12px;font-size:.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#a1b0cbe6}.insights-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}@media(min-width:768px){.insights-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.insights-kpi-grid{grid-template-columns:minmax(220px,1.45fr) repeat(3,1fr);grid-auto-rows:1fr}.insights-kpi--hero{grid-column:1;grid-row:1 / span 2}}.insights-kpi--hero{grid-column:1 / -1;padding:20px 22px;border-color:#00f0ff59;background:linear-gradient(145deg,#00f0ff12,#0f132e8c 55%)}@media(min-width:1200px){.insights-kpi--hero{display:flex;flex-direction:column;justify-content:center;min-height:148px}}.insights-kpi--hero .insights-kpi-label{color:var(--cyber-cyan, #00f0ff);font-size:.75rem}.insights-kpi--hero .insights-kpi-value{font-size:clamp(2.25rem,4vw,3rem);font-weight:900;letter-spacing:-.03em;line-height:1;margin-top:0}.insights-kpi-hero-body{display:flex;align-items:center;gap:16px;margin-top:6px}.insights-progress-ring{flex-shrink:0;transform:rotate(-90deg)}.insights-progress-ring-bg{fill:none;stroke:#34428a8c}.insights-progress-ring-fill{fill:none;stroke:#34d399;stroke-linecap:round;transition:stroke-dashoffset .65s var(--ease-out-expo);filter:drop-shadow(0 0 6px rgba(52,211,153,.45))}.insights-kpi--hero .insights-kpi-value--success{text-shadow:0 0 24px rgba(52,211,153,.25)}.insights-kpi{padding:16px;border-radius:14px;background:var(--card-bg, rgba(15, 19, 46, .45));border:1px solid var(--card-border, rgba(34, 43, 93, .7));position:relative;overflow:hidden;transition:border-color .2s var(--ease-out-quint),background .2s var(--ease-out-quint),transform .2s var(--ease-out-quint);animation:insights-fade-in .38s var(--ease-out-quint) both;animation-delay:calc(var(--i, 0) * 45ms)}.insights-kpi:hover{border-color:#00f0ff47;background:var(--card-bg-hover, rgba(26, 32, 77, .55))}.insights-kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,240,255,.45),transparent);opacity:.55}.insights-kpi-label{display:flex;align-items:center;gap:6px;font-size:.6875rem;font-weight:700;color:var(--text-secondary, #a1b0cb);margin-bottom:8px}.insights-kpi-value{font-size:1.625rem;font-weight:800;color:var(--text-primary, #f1f5f9);line-height:1.1;font-variant-numeric:tabular-nums}.insights-kpi-unit{font-size:.875rem;font-weight:600;opacity:.65}.insights-kpi-value--warn{color:#f59e0b}.insights-kpi-value--danger{color:#f87171}.insights-kpi-value--success{color:#34d399}.insights-kpi--skeleton .insights-kpi-label,.insights-kpi--skeleton .insights-kpi-value{background:linear-gradient(90deg,#34428a59 25%,#5260a880,#34428a59 75%);background-size:200% 100%;animation:insights-shimmer 1.2s ease-in-out infinite;color:transparent;border-radius:6px;min-height:14px}.insights-kpi--skeleton .insights-kpi-value{min-height:28px;margin-top:4px}.insights-section-hint{font-size:.75rem;color:var(--text-secondary, #a1b0cb);margin:-8px 0 16px}.insights-charts-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px}@media(min-width:900px){.insights-charts-grid{grid-template-columns:1fr 1fr}}@media(min-width:1200px){.insights-charts-grid--main{grid-template-columns:1.2fr 1fr 1fr}}.insights-chart-card{padding:18px;border-radius:14px;background:var(--card-bg, rgba(15, 19, 46, .45));border:1px solid var(--card-border, rgba(34, 43, 93, .7));min-height:280px;transition:border-color .2s ease-out}.insights-chart-card:hover{border-color:var(--card-border-light, rgba(52, 66, 138, .85))}.insights-chart-card--featured{border-color:#00f0ff47;min-height:300px}.insights-chart-card--active{border-color:#00f0ff8c;box-shadow:0 0 0 1px #00f0ff1f,0 0 28px #00f0ff14;animation:insights-card-glow 2.2s ease-in-out infinite}.insights-chart-badge{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:.5625rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--cyber-cyan, #00f0ff);border:1px solid rgba(0,240,255,.35);background:#00f0ff1a;vertical-align:middle}.insights-chart-card--featured .insights-chart-title{font-size:.9375rem}.insights-chart-card--wide{grid-column:1 / -1}@media(min-width:1200px){.insights-charts-grid--main .insights-chart-card--wide{grid-column:span 1}}.insights-chart-title{font-size:.8125rem;font-weight:700;color:var(--text-primary, #f1f5f9);margin:0 0 4px}.insights-chart-sub{font-size:.6875rem;color:var(--text-secondary, #a1b0cb);margin:0 0 12px}.insights-chart-empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary, #a1b0cb);font-size:.8125rem;text-align:center;padding:16px}.insights-secondary-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:900px){.insights-secondary-grid{grid-template-columns:1fr 1fr}}@media(min-width:1200px){.insights-secondary-grid{grid-template-columns:1.5fr 1fr 1fr 1fr}}.insights-panel{padding:18px;border-radius:14px;background:var(--card-bg, rgba(15, 19, 46, .45));border:1px solid var(--card-border, rgba(34, 43, 93, .7));transition:border-color .2s var(--ease-out-quint),box-shadow .2s var(--ease-out-quint)}.insights-panel--active{border-color:#00f0ff73;box-shadow:0 0 24px #00f0ff0f}.insights-panel-title{display:flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:700;color:var(--cyber-cyan, #00f0ff);margin:0 0 14px}.insights-panel-empty{color:var(--text-secondary, #a1b0cb);font-size:.8125rem;margin:0}.insights-heatmap-wrap{overflow-x:auto;scrollbar-width:thin}.insights-heatmap{display:grid;gap:3px;min-width:min-content}.insights-heatmap-cell{padding:6px 8px;font-size:.6875rem;font-weight:700;text-align:center;border-radius:4px;min-width:52px;font-variant-numeric:tabular-nums}.insights-heatmap-cell--label{text-align:left;min-width:140px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary, #a1b0cb);background:transparent}.insights-heatmap-cell--date{color:#7c8aa8;background:transparent;font-size:.625rem}.insights-heatmap-cell--data{transition:transform .15s ease-out,filter .15s ease-out}.insights-heatmap-cell--data:hover{transform:scale(1.04);filter:brightness(1.08)}.insights-heatmap-cell--selected{outline:2px solid #fff;outline-offset:-1px;box-shadow:0 0 12px #00f0ff8c;transform:scale(1.06);z-index:1}.insights-table{width:100%;border-collapse:collapse;font-size:.8125rem}.insights-table th{text-align:left;padding:8px 6px;color:var(--text-secondary, #a1b0cb);font-size:.6875rem;font-weight:700;border-bottom:1px solid var(--card-border, rgba(34, 43, 93, .7))}.insights-table td{padding:8px 6px;border-bottom:1px solid rgba(34,43,93,.35);color:var(--text-primary, #f1f5f9);font-variant-numeric:tabular-nums}.insights-table-row-btn{cursor:pointer;transition:background .15s ease-out}.insights-table-row-btn:hover td{background:#00f0ff0d}.insights-table-row-btn--active td{background:#00f0ff1a;color:var(--cyber-cyan, #00f0ff)}.insights-table-row-btn:focus-visible{outline:2px solid var(--cyber-cyan, #00f0ff);outline-offset:-2px}.insights-issue-item{padding:10px 0;border-bottom:1px solid rgba(34,43,93,.45)}.insights-issue-item:last-child{border-bottom:none}.insights-issue-meta{font-size:.6875rem;color:var(--text-secondary, #a1b0cb);margin-bottom:4px}.insights-issue-text{font-size:.8125rem;color:#fcd34d;margin:0;line-height:1.45}.insights-empty,.insights-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px;gap:12px;color:var(--text-secondary, #a1b0cb);text-align:center}.insights-empty small{font-size:.8125rem;opacity:.85}.insights-spinner{width:36px;height:36px;border:3px solid rgba(0,240,255,.18);border-top-color:var(--cyber-cyan, #00f0ff);border-radius:50%;animation:insights-spin .8s linear infinite}.insights-tooltip{background:#080b18f5;border:1px solid rgba(0,240,255,.28);border-radius:8px;padding:8px 12px;font-size:.75rem;max-width:220px;word-break:break-word}.insights-tooltip-label{color:var(--text-secondary, #a1b0cb);margin-bottom:4px}.insights-tooltip-value{font-weight:700}.socket-status{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700;padding:6px 12px;min-height:40px;border-radius:20px;background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.28)}.socket-status--live{background:#10b9811a;color:#34d399;border-color:#10b98147;animation:insights-live-pulse 2.8s ease-in-out infinite}.spin{animation:insights-spin 1s linear infinite}@keyframes insights-spin{to{transform:rotate(360deg)}}@keyframes insights-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes insights-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes insights-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes insights-filter-pulse{0%,to{box-shadow:0 0 #00f0ff00}50%{box-shadow:0 0 0 4px #00f0ff1f}}@keyframes insights-card-glow{0%,to{box-shadow:0 0 0 1px #00f0ff1f,0 0 20px #00f0ff0f}50%{box-shadow:0 0 0 1px #00f0ff38,0 0 32px #00f0ff24}}@keyframes insights-zone-in{0%{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes insights-live-pulse{0%,to{box-shadow:0 0 #34d39900}50%{box-shadow:0 0 0 5px #34d39924}}@media(prefers-reduced-motion:reduce){.insights-kpi,.insights-crossfilter--enter,.insights-spinner,.spin,.insights-meta-pill--filter,.insights-chart-card--active,.socket-status--live,.insights-data-zone--filtered{animation:none}.insights-progress-ring-fill{transition:none}.insights-heatmap-cell--data:hover{transform:none}.insights-btn:active:not(:disabled),.insights-chip:active{transform:none}}:root{--progress-completed: linear-gradient(90deg, #10b981, #34d399);--progress-active: linear-gradient(90deg, #00f0ff, #6366f1);--progress-delayed: linear-gradient(90deg, #ff007a, #9d4edd);--card-bg: rgba(15, 19, 46, .45);--card-bg-hover: rgba(26, 32, 77, .6);--card-border: rgba(34, 43, 93, .7);--card-border-light: rgba(52, 66, 138, .8);--text-primary: #f1f5f9;--text-secondary: #a1b0cb;--cyber-bg: #080b18;--cyber-dark: #03050c;--cyber-cyan: #00f0ff;--cyber-magenta: #ff007a;--cyber-violet: #9d4edd;--cyber-indigo: #6366f1}.prog-page{min-height:100vh;padding:24px 32px;color:var(--text-primary);max-width:1200px;margin:0 auto;position:relative;background-image:radial-gradient(circle at 30% 20%,rgba(90,84,244,.08),transparent),linear-gradient(to right,rgba(128,128,128,.025) 1px,transparent 1px),linear-gradient(to bottom,rgba(128,128,128,.025) 1px,transparent 1px);background-size:100% 100%,24px 24px,24px 24px}.prog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;flex-wrap:wrap}.prog-title{display:flex;align-items:center;gap:10px;font-size:1.6rem;font-weight:800;margin:0 0 4px;color:#fff;font-family:Outfit,sans-serif;letter-spacing:.02em}.prog-title svg{color:var(--cyber-cyan);filter:drop-shadow(0 0 5px rgba(0,240,255,.4))}.prog-subtitle{font-size:.85rem;color:var(--text-secondary);margin:0}.prog-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.socket-status{display:flex;align-items:center;gap:5px;font-size:.78rem;padding:5px 10px;border-radius:20px;background:#03050c99;color:var(--text-secondary);border:1px solid var(--card-border)}.socket-status--live{color:#10b981;background:#10b9811a;border-color:#10b9814d}.prog-days-select{background:#03050c99;border:1px solid var(--card-border);color:var(--text-primary);padding:6px 10px;border-radius:8px;font-size:.82rem;cursor:pointer;outline:none}.prog-days-select:focus{border-color:var(--cyber-cyan);box-shadow:0 0 8px #00f0ff40}.prog-refresh-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;background:#6366f133;border:1px solid rgba(99,102,241,.45);color:#a5b4fc;border-radius:8px;font-size:.82rem;cursor:pointer;transition:all .2s}.prog-refresh-btn:hover:not(:disabled){background:#6366f159;border-color:var(--cyber-indigo);box-shadow:0 0 10px #6366f133}.prog-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.prog-insights-cta{display:flex;align-items:center;gap:6px;padding:7px 14px;background:linear-gradient(135deg,#00f0ff26,#6366f133);border:1px solid rgba(0,240,255,.5);color:#00f0ff;border-radius:8px;font-size:.82rem;font-weight:700;text-decoration:none;transition:all .2s;box-shadow:0 0 12px #00f0ff26}.prog-insights-cta:hover{background:linear-gradient(135deg,#00f0ff40,#6366f14d);box-shadow:0 0 18px #00f0ff4d}.prog-insights-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:20px;border-radius:14px;text-decoration:none;color:inherit;background:linear-gradient(135deg,#00f0ff14,#6366f11f);border:1px solid rgba(0,240,255,.35);transition:all .25s}.prog-insights-banner:hover{border-color:#00f0ff99;box-shadow:0 0 24px #00f0ff26;transform:translateY(-1px)}.prog-insights-banner-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#00f0ff1f;color:#00f0ff;flex-shrink:0}.prog-insights-banner-title{font-size:1rem;font-weight:800;color:#fff;margin-bottom:2px}.prog-insights-banner-desc{font-size:.78rem;color:var(--text-secondary)}.prog-insights-banner-arrow{margin-left:auto;font-size:.8rem;font-weight:800;color:#00f0ff;white-space:nowrap}.prog-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px}.kpi-card{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .2s,box-shadow .2s,border-color .2s;box-shadow:0 0 10px #9d4edd0d}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 0 15px #9d4edd40;border-color:var(--card-border-light);background:var(--card-bg-hover)}.kpi-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;flex-shrink:0}.kpi-value{font-size:1.6rem;font-weight:700;line-height:1}.kpi-unit{font-size:.85rem;font-weight:400;color:var(--text-secondary)}.kpi-label{font-size:.78rem;color:var(--text-secondary);margin-top:4px}.prog-tabs{display:flex;gap:4px;border-bottom:1px solid var(--card-border);margin-bottom:20px}.prog-tab{display:flex;align-items:center;gap:6px;padding:10px 18px;background:transparent;border:none;color:var(--text-secondary);font-size:.85rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:6px 6px 0 0;transition:all .2s}.prog-tab:hover{color:var(--text-primary);background:#ffffff08}.prog-tab--active{color:var(--cyber-cyan);border-bottom-color:var(--cyber-cyan);background:#00f0ff14;box-shadow:inset 0 -4px 10px #00f0ff05}.prog-content{min-height:300px}.prog-content--feed-focus{min-height:calc(100vh - 340px);display:flex;flex-direction:column}.prog-page--feed-focus .prog-kpi-grid--compact{margin-bottom:12px}.prog-page--feed-focus .prog-kpi-grid--compact .kpi-card{padding:10px 12px}.prog-page--feed-focus .prog-kpi-grid--compact .kpi-value{font-size:1.15rem}.prog-page--feed-focus .prog-kpi-grid--compact .kpi-label{font-size:.68rem}.prog-section-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px;padding-bottom:6px;border-bottom:1px solid var(--card-border)}.prog-overview{display:grid;gap:20px}.prog-activities-list{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.prog-issues-panel{background:#f59e0b0d;border:1px solid rgba(245,158,11,.2);border-radius:14px;padding:20px}.prog-issue-item{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid rgba(245,158,11,.1)}.prog-issue-item:last-child{border-bottom:none}.prog-issue-date,.prog-issue-reporter{font-size:.78rem;color:var(--text-secondary)}.prog-issue-text{font-size:.88rem;margin:0;color:#fbbf24}.activity-bar-wrap{margin-bottom:14px}.activity-bar-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:7px;flex-wrap:wrap}.activity-bar-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.activity-bar-name{font-size:.88rem;font-weight:500;color:var(--text-primary)}.activity-bar-location{font-size:.75rem;color:var(--text-secondary)}.activity-bar-qty{font-size:.75rem;color:#6366f1}.activity-bar-right{display:flex;align-items:center;gap:8px}.activity-bar-pct{font-size:.9rem;font-weight:700}.activity-bar-badge{font-size:.72rem;padding:2px 8px;border-radius:10px;font-weight:500}.activity-bar-track{height:8px;background:#ffffff1a;border-radius:99px;overflow:hidden}.activity-bar-fill{height:100%;border-radius:99px;width:0%;transition:width .8s cubic-bezier(.4,0,.2,1)}.activity-bar-animate{animation:barGrow .9s cubic-bezier(.4,0,.2,1) forwards}@keyframes barGrow{0%{width:0%!important}}.prog-reports{display:flex;flex-direction:column;gap:10px}.report-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;overflow:hidden;transition:box-shadow .2s}.report-card:hover{box-shadow:0 4px 20px #0000001f}.report-card--warning{border-color:#f59e0b66}.report-card--verified{border-color:#10b98159}.report-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;flex-wrap:wrap}.report-card-header:hover{background:#ffffff08}.report-card-meta{display:flex;flex-direction:column;gap:3px;min-width:140px}.report-card-date{font-size:.9rem;font-weight:600}.report-card-time{font-size:.75rem;color:var(--text-secondary);margin-left:6px}.report-card-reporter{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-secondary)}.report-card-stats{display:flex;gap:20px}.report-card-stat{text-align:center}.report-card-stat-val{display:block;font-size:1.1rem;font-weight:700}.report-card-stat-lbl{font-size:.7rem;color:var(--text-secondary)}.report-card-badges{display:flex;align-items:center;gap:8px}.badge{font-size:.72rem;padding:3px 8px;border-radius:10px;font-weight:500}.badge--verified{background:#10b98126;color:#10b981}.badge--warning{background:#f59e0b26;color:#f59e0b}.report-card-toggle{background:#ffffff12;border:1px solid var(--card-border);border-radius:6px;padding:4px 6px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center}.report-card-body{border-top:1px solid var(--card-border);padding:16px 18px;display:flex;flex-direction:column;gap:14px}.report-card-section-title{font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.report-card-activities{display:flex;flex-direction:column;gap:4px}.report-card-activity-row{display:flex;align-items:flex-start;gap:8px}.activity-status-icon{margin-top:12px;flex-shrink:0}.report-card-raw{font-size:.82rem;color:var(--text-secondary);background:#0003;border-radius:8px;padding:10px 12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;font-family:monospace;max-height:120px;overflow-y:auto}.report-card-issues{font-size:.85rem;color:#fca5a5;background:#ef444414;border-radius:8px;padding:10px 12px}.report-card-meta-row{display:flex;gap:8px;font-size:.82rem;color:var(--text-secondary)}.report-card-actions{display:flex;gap:8px;margin-top:4px}.btn-action{display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:7px;font-size:.78rem;cursor:pointer;border:1px solid;transition:all .15s}.btn-action--edit{background:#6366f11a;border-color:#6366f166;color:#818cf8}.btn-action--delete{background:#ef444414;border-color:#ef44444d;color:#f87171}.btn-action--edit:hover{background:#6366f133}.btn-action--delete:hover{background:#ef44442e}.line-feed-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;overflow:hidden;box-shadow:0 0 12px #9d4edd14}.line-feed-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--card-border);background:#00b90014}.line-feed-title{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:#00b900}.line-feed-status{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-secondary)}.line-feed-status--live{color:#10b981}.live-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.line-feed-body{height:480px;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px;background:#03050c73}.line-feed-body--focus{height:auto;flex:1;min-height:calc(100vh - 320px);padding:14px 16px;gap:10px}.line-feed-panel--focus{flex:1;display:flex;flex-direction:column;min-height:calc(100vh - 320px)}.line-feed-panel--focus .line-feed-header{padding:16px 20px}.line-feed-panel--focus .line-feed-title{font-size:1rem}.line-feed-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;color:var(--text-secondary);font-size:.85rem}.line-feed-item{border-radius:8px;padding:10px 12px;transition:opacity .2s,border-color .2s,background .2s;background:#0f132e59;border:1px solid rgba(34,43,93,.4)}.line-feed-item:hover{background:#1a204d66;border-color:var(--card-border-light)}.line-feed-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;gap:8px}.line-feed-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.line-feed-delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;border:1px solid rgba(239,68,68,.35);background:#ef444414;color:#f87171;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.line-feed-delete:hover:not(:disabled){background:#ef44442e;border-color:#ef44448c}.line-feed-delete:disabled{opacity:.45;cursor:wait}.line-feed-item-meta{display:flex;align-items:center;gap:6px}.line-feed-dot{width:7px;height:7px;border-radius:50%}.line-feed-name{font-size:.82rem;font-weight:700;color:var(--text-primary)}.line-feed-badge{font-size:.7rem;font-weight:600}.line-feed-time{font-size:.72rem;color:var(--text-secondary);opacity:.75}.line-feed-msg{font-size:.82rem;color:var(--text-secondary);margin:0;line-height:1.45;white-space:pre-wrap}.line-feed-item--focus .line-feed-msg{font-size:.92rem;line-height:1.55;color:var(--text-primary)}.line-feed-item--focus{padding:14px 16px}.line-feed-item--focus.line-feed-item--report{box-shadow:0 0 0 1px #10b98147,0 4px 16px #10b98114}.line-feed-header-actions{display:flex;align-items:center;gap:10px}.line-feed-sim-toggle{background:#00b9001f;border:1px solid rgba(0,185,0,.35);color:#00b900;padding:5px 12px;border-radius:6px;font-size:.72rem;font-weight:600;cursor:pointer}.line-feed-sim-toggle:hover{background:#00b90033}.line-feed-simulator{padding:14px 18px;border-bottom:1px solid var(--card-border);background:#00b9000a}.line-feed-simulator-hint{font-size:.78rem;color:var(--text-secondary);margin:0 0 8px}.line-feed-simulator-input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--text-primary);padding:10px 12px;font-size:.8rem;font-family:monospace;resize:vertical;outline:none}.line-feed-simulator-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.line-feed-item--report{box-shadow:0 0 0 1px #10b98126}.line-feed-report-badge{display:inline-flex;align-items:center;gap:3px;font-size:.68rem;font-weight:600;color:#10b981;background:#10b98126;padding:1px 6px;border-radius:4px}.line-feed-expand,.line-feed-view-report{background:none;border:none;color:#818cf8;font-size:.72rem;cursor:pointer;padding:4px 0;display:inline-flex;align-items:center;gap:3px;margin-top:4px}.line-feed-view-report{color:#10b981;font-weight:600;margin-left:12px}.line-setup-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:16px 18px;margin-bottom:18px;box-shadow:0 0 12px #00b9000f}.line-setup-panel--compact{padding:10px 16px;margin-bottom:12px}.line-setup-compact-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.line-setup-stats--inline{display:flex;gap:20px;margin:0;flex:1;justify-content:center}.line-setup-alert--compact{margin-top:8px;margin-bottom:0;padding:6px 10px;font-size:.75rem}.line-setup-panel--ready{border-color:#00b90059}.line-setup-panel--warn{border-color:#f59e0b59}.line-setup-panel--loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.85rem}.line-setup-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.line-setup-title{display:flex;align-items:center;gap:10px}.line-setup-title strong{font-size:.95rem;display:block}.line-setup-basic-id{font-size:.72rem;color:#00b900;margin-left:6px}.line-setup-badges{display:flex;align-items:center;gap:8px}.line-setup-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:20px}.line-setup-badge--ok{background:#10b98126;color:#10b981}.line-setup-badge--warn{background:#f59e0b26;color:#f59e0b}.line-setup-badge--muted{background:#64748b1f;color:#64748b}.line-setup-refresh{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:6px;cursor:pointer;color:var(--text-secondary)}.line-setup-stats{display:flex;gap:20px;flex-wrap:wrap;padding:10px 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:10px}.line-setup-stat{display:flex;flex-direction:column;gap:2px}.line-setup-stat-val{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.line-setup-stat-val--sm{font-size:.78rem;font-weight:600}.line-setup-stat-lbl{font-size:.68rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.line-setup-alert{display:flex;align-items:flex-start;gap:8px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.25);border-radius:8px;padding:10px 12px;font-size:.78rem;color:#fbbf24;margin-bottom:10px}.line-setup-alert--error{background:#ef444414;border-color:#ef444440;color:#f87171}.line-setup-alert code{background:#0003;padding:1px 5px;border-radius:4px}.line-setup-webhook{margin-bottom:10px}.line-setup-webhook label{font-size:.72rem;color:var(--text-secondary);display:block;margin-bottom:6px}.line-setup-webhook-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.line-setup-webhook-row code{flex:1;min-width:200px;background:#00000040;padding:8px 10px;border-radius:6px;font-size:.72rem;word-break:break-all;color:#06b6d4}.line-setup-copy{display:inline-flex;align-items:center;gap:4px;background:#6366f126;border:1px solid rgba(99,102,241,.3);color:#818cf8;padding:6px 12px;border-radius:6px;font-size:.72rem;cursor:pointer;white-space:nowrap}.line-setup-toggle{background:none;border:none;color:var(--text-secondary);font-size:.78rem;cursor:pointer;padding:4px 0;margin-bottom:6px}.line-setup-steps{margin:0 0 10px 18px;padding:0;font-size:.78rem;color:var(--text-secondary);line-height:1.6}.line-setup-console-link{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:#00b900;text-decoration:none}.line-setup-console-link:hover{text-decoration:underline}.line-setup-autoreply{background:#f59e0b14;border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:12px 14px;margin-bottom:10px}.line-setup-autoreply-title{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:#fbbf24;margin-bottom:6px}.line-setup-autoreply-desc{font-size:.78rem;color:var(--text-secondary);margin:0 0 8px}.line-setup-autoreply-steps{margin:0 0 8px 18px;padding:0;font-size:.76rem;color:var(--text-secondary);line-height:1.55}.line-setup-photo-hint{font-size:.76rem;color:#06b6d4;margin:0 0 10px;padding:8px 10px;background:#06b6d414;border-radius:6px}.line-setup-photo-hint--secondary{color:var(--text-secondary);background:#ffffff0a;border:1px dashed rgba(255,255,255,.12)}.line-setup-contractor{background:#6366f11a;border:1px solid rgba(99,102,241,.25);border-radius:10px;padding:12px 14px;margin-bottom:10px}.line-setup-contractor-title{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:#a5b4fc;margin-bottom:6px}.line-setup-contractor-desc{font-size:.78rem;color:var(--text-secondary);margin:0 0 10px;line-height:1.5}.line-setup-contractor-link{display:inline-block;font-size:.78rem;font-weight:600;color:#818cf8;text-decoration:none}.line-setup-contractor-link:hover{text-decoration:underline}.report-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.progress-photo{aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.12);padding:0;cursor:pointer;background:#0003}.progress-photo img{width:100%;height:100%;object-fit:cover;display:block}.progress-photo--loading{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}.progress-photo--error{display:flex;align-items:center;justify-content:center;color:#94a3b8}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.line-feed-photo-wrap{margin-top:8px;max-width:160px}.line-feed-photo-wrap--focus{max-width:min(100%,320px)}.line-feed-photo-wrap--focus .progress-photo,.line-feed-photo-wrap .progress-photo{aspect-ratio:4/3}.prog-photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}.prog-photo-lightbox-img{max-width:min(90vw,720px);max-height:85vh;aspect-ratio:auto!important;width:auto!important;height:auto!important}.prog-photo-lightbox-img img{object-fit:contain;max-height:85vh}.prog-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.prog-modal{background:#0c0f24;border:1px solid var(--cyber-violet);border-radius:20px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 30px #9d4edd4d}.prog-modal--wide{max-width:720px}.prog-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.prog-modal-header h3{margin:0;font-size:1rem}.prog-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:6px}.prog-modal-close:hover{background:#ffffff1a}.prog-modal-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.prog-modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 20px;border-top:1px solid rgba(255,255,255,.1)}.prog-form-row{display:flex;flex-direction:column;gap:5px}.prog-form-row label{font-size:.78rem;color:var(--text-secondary);font-weight:500}.prog-form-row input,.prog-form-row textarea,.prog-form-row select{background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary);padding:8px 12px;font-size:.88rem;outline:none;font-family:inherit;resize:vertical}.prog-form-row input:focus,.prog-form-row textarea:focus{border-color:#6366f180;box-shadow:0 0 0 3px #6366f11a}.prog-form-activity{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px}.prog-form-activity-name{font-size:.82rem;font-weight:600;margin-bottom:8px;color:#818cf8}.prog-form-row-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.prog-form-row-inline label{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.prog-form-row-inline input,.prog-form-row-inline select{background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-primary);padding:6px 10px;font-size:.82rem;outline:none;width:80px}.prog-form-row-inline select{width:auto}.prog-modal-section{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.prog-modal-section-title{font-size:.82rem;font-weight:700;color:#a5b4fc;margin-bottom:2px}.prog-form-subtitle{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.prog-form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.prog-form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.prog-form-person-row input{background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-primary);padding:6px 10px;font-size:.82rem}.prog-form-hint-inline{font-size:.75rem;color:var(--text-secondary)}.prog-form-add-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;background:#6366f126;border:1px dashed rgba(99,102,241,.4);color:#a5b4fc;border-radius:6px;padding:4px 10px;font-size:.72rem;cursor:pointer}.prog-form-readonly{opacity:.75;font-size:.78rem;line-height:1.45}.btn-primary{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,#6366f1,#818cf8);border:none;color:#fff;padding:9px 18px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s}.btn-primary:hover{opacity:.9}.btn-secondary{background:#ffffff12;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary);padding:9px 18px;border-radius:8px;font-size:.85rem;cursor:pointer}.btn-secondary:hover{background:#ffffff1f}.prog-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:14px;color:var(--text-secondary)}.prog-spinner{width:32px;height:32px;border:3px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.prog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:12px;color:var(--text-secondary);text-align:center}.prog-empty p{margin:0;font-size:.95rem}.prog-empty small{font-size:.8rem;opacity:.7}.spin{animation:spin .8s linear infinite}.epc-personnel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.epc-personnel-box{padding:12px 16px;border-radius:10px;border:1px solid}.epc-personnel-repco{background:#6366f114;border-color:#6366f140}.epc-personnel-state{background:#10b9810f;border-color:#10b98140}.epc-personnel-label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px}.epc-personnel-val{font-size:1.3rem;font-weight:700}.epc-personnel-val span{font-size:.8rem;font-weight:400;color:var(--text-secondary);margin-left:3px}.epc-equipment-list{display:flex;flex-wrap:wrap;gap:6px}.epc-equipment-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:20px;font-size:.78rem;color:#fbbf24}.epc-area-group{margin-bottom:12px}.epc-area-header{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#06b6d4;background:#06b6d414;border:1px solid rgba(6,182,212,.2);border-radius:6px;padding:4px 10px;margin-bottom:8px;display:inline-block}@media(max-width:680px){.prog-page{padding:14px}.prog-header{flex-direction:column}.prog-kpi-grid{grid-template-columns:repeat(2,1fr)}.report-card-header{flex-direction:column;align-items:flex-start}.report-card-stats{justify-content:flex-start}}.data-view-page{max-width:1400px;width:100%;margin:0 auto;padding:1.25rem 1rem 2.5rem;overflow-x:clip;box-sizing:border-box}.data-view-page.prog-page{max-width:1400px}.data-view-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.8rem;color:#94a3b8}.data-view-breadcrumb a{color:#34d399;text-decoration:none}.data-view-breadcrumb a:hover{text-decoration:underline}.data-view-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.data-view-toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap}.data-view-filters{background:#0f172a99;border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:1rem;margin-bottom:1rem;max-width:100%;min-width:0;box-sizing:border-box}.data-view-filters-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.data-view-filters-row:last-child{margin-bottom:0}.data-view-filters-row--actions{align-items:center}.data-view-filter{display:flex;flex-direction:column;gap:.25rem;min-width:140px}.data-view-filter--grow{flex:1;min-width:160px}.data-view-filter--search{flex:1;min-width:220px;position:relative}.data-view-filter span{font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.data-view-filter select,.data-view-filter input{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:8px;color:#e2e8f0;padding:.45rem .6rem;font-size:.85rem}.data-view-filter--search input{padding-left:2rem}.data-view-search-icon{position:absolute;left:.55rem;bottom:.55rem;color:#64748b}.data-view-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#1e293b99;color:#e2e8f0;font-size:.82rem;cursor:pointer}.data-view-btn:hover:not(:disabled){background:#334155cc}.data-view-btn:disabled{opacity:.5;cursor:not-allowed}.data-view-btn--primary{background:#34d39926;border-color:#34d39959;color:#6ee7b7}.data-view-layout{display:grid;grid-template-columns:1fr;gap:1rem;min-width:0;width:100%}@media(min-width:1100px){.data-view-layout--with-detail{grid-template-columns:minmax(0,1fr) minmax(360px,42%)}}.data-view-layout>div{min-width:0;max-width:100%}.data-view-table-section{width:100%;max-width:100%;min-width:0;overflow:hidden}.data-view-table-wrap{display:block;overflow-x:auto;overflow-y:auto;width:100%;max-width:100%;min-width:0;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:#0f172a80;scrollbar-gutter:stable;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.data-view-table{width:100%;border-collapse:collapse;font-size:.82rem}.data-view-table th,.data-view-table td{padding:.55rem .65rem;text-align:left;border-bottom:1px solid rgba(148,163,184,.08)}.data-view-table th{background:#1e293bb3;color:#94a3b8;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.data-view-table tbody tr{cursor:pointer;transition:background .15s}.data-view-table tbody tr:hover{background:#34d3990f}.data-view-row--selected{background:#34d3991f!important}.data-view-table-wrap--sql{max-height:min(560px,calc(100vh - 340px));scrollbar-color:rgba(52,211,153,.45) rgba(30,41,59,.55);scrollbar-width:thin}.data-view-table-wrap--sql::-webkit-scrollbar{width:10px;height:10px}.data-view-table-wrap--sql::-webkit-scrollbar-track{background:#1e293b8c;border-radius:6px}.data-view-table-wrap--sql::-webkit-scrollbar-thumb{background:#34d39959;border-radius:6px}.data-view-table-wrap--sql::-webkit-scrollbar-thumb:hover{background:#34d3998c}.data-view-table--sql{width:max-content;display:table;table-layout:auto;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.75rem}.data-view-table--sql th{position:sticky;top:0;z-index:1;text-transform:none;letter-spacing:0;color:#67e8f9;background:#0f172af2;border-bottom:1px solid rgba(52,211,153,.25)}.data-view-table--sql td{color:#e2e8f0;white-space:nowrap}.data-view-table--sql tbody tr:nth-child(2n){background:#1e293b59}.data-view-cell-truncate{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-view-cell-time{white-space:nowrap;color:#94a3b8;font-size:.75rem}.data-view-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;font-size:.82rem;color:#94a3b8}.data-view-pagination-btns{display:flex;gap:.35rem}.data-view-detail{border:1px solid rgba(148,163,184,.15);border-radius:12px;background:#0f172abf;max-height:calc(100vh - 180px);overflow:hidden;display:flex;flex-direction:column}.data-view-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem 1rem .5rem;border-bottom:1px solid rgba(148,163,184,.1)}.data-view-detail-header h2{margin:0;font-size:1rem;color:#f1f5f9}.data-view-detail-meta{margin:.25rem 0 0;font-size:.75rem;color:#94a3b8}.data-view-detail-close{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:.25rem}.data-view-detail-close:hover{color:#f1f5f9}.data-view-detail-body{overflow-y:auto;padding:.75rem 1rem 1.25rem}.data-view-detail-photos{margin-bottom:1rem}.data-view-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.data-view-role-list{margin:.25rem 0 .75rem;padding-left:1.1rem;color:#cbd5e1;font-size:.85rem}.data-view-loading,.data-view-empty{text-align:center;padding:2.5rem 1rem;color:#94a3b8;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:#0f172a80;width:100%;max-width:100%;box-sizing:border-box}.data-view-empty-hint{margin-top:8px;font-size:.82rem;color:#64748b}.data-view-hint{color:#64748b;font-size:.82rem}.data-view-detail-source{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.data-view-source-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:700;background:#e2e8f0;color:#334155}.data-view-source-badge.daily{background:#ecfdf5;color:#047857}.data-view-source-badge.line{background:#eef2ff;color:#4338ca}.data-view-source-badge.pct{background:#fef3c7;color:#92400e}.data-view-source-badge.muted{background:#f1f5f9;color:#64748b}.data-view-detail-block{margin-bottom:16px}.data-view-detail-pre{white-space:pre-wrap;font-family:inherit;font-size:.85rem;color:#cbd5e1;margin:0;padding:10px 12px;background:#0f172a73;border-radius:8px;border:1px solid rgba(51,65,85,.6)}.data-view-activity-list{margin:0;padding-left:18px;font-size:.85rem;color:#e2e8f0;line-height:1.55}.data-view-summary{font-size:.82rem;color:#94a3b8}.edr-page{min-height:100vh;max-width:960px;margin:0 auto;padding:24px 20px 48px;color:#f1f5f9}.edr-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.edr-title{font-size:1.35rem;font-weight:800;color:#fbbf24;display:flex;align-items:center;gap:10px}.edr-subtitle{font-size:.82rem;color:#94a3b8;margin-top:4px}.edr-tabs{display:flex;gap:4px;background:#0f132e99;border:1px solid rgba(52,66,138,.5);border-radius:10px;padding:4px;margin-bottom:16px}.edr-tab{flex:1;padding:10px 12px;border:none;border-radius:8px;background:transparent;color:#94a3b8;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.edr-tab.active{background:#fbbf2426;color:#fbbf24}.edr-panel{background:#0f132e8c;border:1px solid rgba(52,66,138,.55);border-radius:12px;padding:18px}.edr-draft-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#6366f11a;border:1px solid rgba(99,102,241,.35);border-radius:10px;padding:12px 14px;margin-bottom:16px}.edr-draft-label{font-size:.82rem;font-weight:700;color:#a5b4fc}.edr-draft-actions{display:flex;gap:8px;flex-wrap:wrap}.edr-queue-bar{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#fbbf24}.edr-section-title{background:linear-gradient(90deg,rgba(251,191,36,.25),transparent);border-left:3px solid #fbbf24;padding:8px 12px;font-size:.78rem;font-weight:800;letter-spacing:.04em;margin:18px 0 12px;color:#fde68a}.edr-section-title:first-of-type{margin-top:0}.edr-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.edr-row.full{grid-template-columns:1fr}.edr-row.time{grid-template-columns:1.2fr 1fr 1fr}.edr-field label{display:block;font-size:.75rem;font-weight:600;color:#94a3b8;margin-bottom:4px}.edr-field input,.edr-field select,.edr-field textarea{width:100%;padding:9px 11px;border:1px solid rgba(52,66,138,.7);border-radius:8px;background:#080b1899;color:#f1f5f9;font-size:.85rem;font-family:inherit}.edr-field input:focus,.edr-field select:focus,.edr-field textarea:focus{outline:none;border-color:#fbbf24;box-shadow:0 0 0 2px #fbbf2426}.edr-field textarea{min-height:96px;resize:vertical;line-height:1.5}.edr-field-hint{font-size:.72rem;color:#64748b;margin-top:4px}.edr-field-hint code{font-size:.7rem;color:#fde68a;background:#0f172a99;padding:1px 5px;border-radius:4px}.edr-required-tag{display:inline-block;margin-left:8px;font-size:.65rem;font-weight:700;color:#0f172a;background:#fbbf24;padding:2px 7px;border-radius:999px;letter-spacing:0;vertical-align:middle}.edr-progress-chip{margin-top:8px;padding:8px 12px;border-radius:8px;font-size:.78rem;font-weight:600}.edr-progress-chip.ok{background:#10b9811f;border:1px solid rgba(16,185,129,.35);color:#6ee7b7}.edr-progress-chip.warn{background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);color:#fcd34d}.edr-input-warn{border-color:#f59e0bb3!important}.edr-success-banner{margin-top:14px;padding:12px 14px;border-radius:10px;background:#10b9811f;border:1px solid rgba(16,185,129,.35);font-size:.82rem;color:#a7f3d0}.edr-success-banner a{color:#fbbf24;font-weight:700;text-decoration:underline}.edr-dynamic-row{display:grid;grid-template-columns:1fr 72px 36px;gap:8px;margin-bottom:8px;align-items:end}.edr-dynamic-row.eq{grid-template-columns:1fr 36px}.edr-btn-icon{height:38px;width:38px;border-radius:8px;border:1px solid rgba(239,68,68,.4);background:#ef44441f;color:#f87171;cursor:pointer;font-size:1rem}.edr-add-btn{width:100%;padding:9px;margin-top:4px;border:1.5px dashed rgba(251,191,36,.45);border-radius:8px;background:#fbbf240f;color:#fbbf24;font-size:.82rem;font-weight:600;cursor:pointer}.edr-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid rgba(52,66,138,.5)}.edr-actions--sticky{position:sticky;bottom:0;z-index:20;margin-left:-18px;margin-right:-18px;margin-bottom:-18px;padding:14px 18px calc(14px + env(safe-area-inset-bottom,0px));background:#0f132ef5;border-top:1px solid rgba(52,66,138,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.edr-btn{flex:1;min-width:120px;padding:11px 14px;border:none;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.edr-btn-line{background:#06c755;color:#fff}.edr-btn-copy{background:#6366f140;color:#c7d2fe;border:1px solid rgba(99,102,241,.4)}.edr-btn-muted{background:#64748b33;color:#cbd5e1;border:1px solid rgba(100,116,139,.35)}.edr-hint-box{margin-top:16px;padding:12px 14px;border-radius:10px;background:#06b6d414;border:1px solid rgba(6,182,212,.25);font-size:.78rem;color:#94a3b8;line-height:1.55}.edr-line-photo-help{margin-top:14px;padding:14px;border-radius:10px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);font-size:.78rem;color:#cbd5e1;line-height:1.55}.edr-line-photo-help p{margin:8px 0 12px;color:#94a3b8}.edr-line-photo-dismiss{margin-left:10px;background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.78rem;text-decoration:underline}.edr-preview-msg{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.55;background:#080b18b3;border:1px solid rgba(52,66,138,.6);border-radius:10px;padding:14px;max-height:420px;overflow-y:auto}.edr-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:10px 18px;border-radius:10px;font-size:.85rem;z-index:100;box-shadow:0 8px 24px #0006;border:1px solid rgba(251,191,36,.3)}.edr-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:10px}.edr-photo-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid rgba(52,66,138,.6)}.edr-photo-item img{width:100%;height:100%;object-fit:cover}.edr-photo-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:#ef4444e6;color:#fff;font-size:14px;cursor:pointer}.edr-btn-save{background:linear-gradient(90deg,#6366f1,#8b5cf6);color:#fff}.edr-btn:disabled{opacity:.55;cursor:not-allowed}.edr-page .spin{animation:edr-spin .8s linear infinite}@keyframes edr-spin{to{transform:rotate(360deg)}}.edr-photo-input-label{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;border:1.5px dashed rgba(251,191,36,.45);background:#fbbf240f;color:#fbbf24;font-size:.82rem;font-weight:600;cursor:pointer}.edr-photo-input-label input{display:none}@media(max-width:640px){.edr-page{padding:16px 14px 96px}.edr-row,.edr-row.time{grid-template-columns:1fr}.edr-btn{min-height:48px;font-size:.9rem}.edr-field input,.edr-field select,.edr-field textarea{padding:12px;font-size:1rem}}.counter{font-size:16px;padding:5px 10px;border-radius:5px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;transition:border-color .3s;margin-bottom:24px}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{inset-inline:0;margin:0 auto}.hero .base{width:170px;position:relative;z-index:0}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;top:34px;height:28px;transform:perspective(2000px) rotate(300deg) rotateX(44deg) rotateY(39deg) scale(1.4)}.hero .vite{z-index:0;top:107px;height:26px;width:auto;transform:perspective(2000px) rotate(300deg) rotateX(40deg) rotateY(39deg) scale(.8)}#center{display:flex;flex-direction:column;gap:25px;place-content:center;place-items:center;flex-grow:1}@media(max-width:1024px){#center{padding:32px 20px 24px;gap:18px}}#next-steps{display:flex;border-top:1px solid var(--border);text-align:left}#next-steps>div{flex:1 1 0;padding:32px}@media(max-width:1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{margin-bottom:16px;width:22px;height:22px}@media(max-width:1024px){#next-steps{flex-direction:column;text-align:center}}#docs{border-right:1px solid var(--border)}@media(max-width:1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{list-style:none;padding:0;display:flex;gap:8px;margin:32px 0 0}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);font-size:16px;border-radius:6px;background:var(--social-bg);display:flex;padding:6px 12px;align-items:center;gap:8px;text-decoration:none;transition:box-shadow .3s}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{height:18px;width:18px}@media(max-width:1024px){#next-steps ul{margin-top:20px;flex-wrap:wrap;justify-content:center}#next-steps ul li{flex:1 1 calc(50% - 8px)}#next-steps ul a{width:100%;justify-content:center;box-sizing:border-box}}#spacer{height:88px;border-top:1px solid var(--border)}@media(max-width:1024px){#spacer{height:48px}}.ticks{position:relative;width:100%}.ticks:before,.ticks:after{content:"";position:absolute;top:-4.5px;border:5px solid transparent}.ticks:before{left:0;border-left-color:var(--border)}.ticks:after{right:0;border-right-color:var(--border)}
