.dashboard-page{width:100%;display:flex;justify-content:center;padding:clamp(28px,6vw,64px)}.dashboard-layout{width:min(1280px,100%);display:flex;flex-direction:column;gap:clamp(24px,4vw,36px)}.dashboard-header{display:flex;justify-content:space-between;gap:clamp(24px,4vw,36px);padding:clamp(32px,4vw,44px);border-radius:var(--radius-xl);border:1px solid var(--surface-border);background:linear-gradient(135deg,#0d1628f5,#192642eb);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.dashboard-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(99,102,241,.24),transparent 60%);pointer-events:none}.dashboard-heading{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px;max-width:70%}.dashboard-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;background:#ffffff1f;color:var(--brand-300);font-size:12px;text-transform:uppercase;letter-spacing:.08em;width:fit-content}.dashboard-heading h1{font-size:clamp(28px,4vw,40px);font-weight:700}.dashboard-heading p{font-size:16px;color:#e2e8f0e0;margin:0}.dashboard-meta{position:relative;z-index:1;display:flex;align-items:flex-end;gap:18px}.metric-card{display:grid;gap:6px;padding:18px 22px;border-radius:var(--radius-lg);background:#0f172a99;border:1px solid rgba(148,163,184,.22);min-width:160px;text-align:right}.metric-card__label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#e2e8f0a6}.metric-card__value{font-size:clamp(32px,5vw,44px);font-weight:700;color:#fff}.dashboard-logout{padding:12px 20px;border-radius:999px}.dashboard-hint{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 24px;border-radius:var(--radius-lg);border:1px solid var(--surface-border);background:#0f172a9e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm)}.hint-block{display:flex;flex-direction:column;gap:4px}.hint-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-300)}.hint-block p{font-size:14px;color:var(--text-secondary)}.hint-link{color:var(--brand-300);font-weight:600;display:inline-flex;align-items:center;gap:6px}.hint-link:after{content:"→";font-size:14px;transition:transform .2s ease}.hint-link:hover:after{transform:translate(4px)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,32px)}.dashboard-card{display:flex;flex-direction:column;gap:24px;border-radius:var(--radius-xl);border:1px solid var(--surface-border);background:var(--surface-card);box-shadow:var(--shadow-md);padding:clamp(28px,4vw,40px)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}.card-header h2{font-size:clamp(20px,3vw,26px);word-break:break-word}.card-header p{max-width:420px;font-size:14px;color:var(--text-secondary)}.card-kicker{display:inline-flex;padding:6px 14px;border-radius:999px;background:#ffffff14;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-300);margin-bottom:10px}.card-counter{font-size:14px;color:var(--text-secondary);background:#ffffff0d;border-radius:999px;padding:6px 14px}.dashboard-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:12px}.form-group label{font-size:14px;font-weight:600;color:var(--text-primary);letter-spacing:.02em}.form-input,.form-textarea{width:100%;border-radius:var(--radius-md);border:1px solid var(--surface-border);background:#0a11248c;color:var(--text-primary);font-size:15px;padding:16px 18px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;resize:vertical}.form-input:focus,.form-textarea:focus{border-color:var(--surface-border-strong);background:#0c1424c7;box-shadow:0 0 0 4px #6366f12e;outline:none}.form-textarea{min-height:120px;line-height:1.6}.form-hint{font-size:13px;color:var(--text-secondary)}.form-footer{display:flex;justify-content:flex-end}.dashboard-card--list{gap:22px}.dashboard-empty{border:1px dashed rgba(148,163,184,.3);border-radius:var(--radius-lg);padding:48px 24px;text-align:center;background:#0f172a66;color:var(--text-secondary)}.dashboard-empty h3{margin-bottom:12px;color:var(--text-primary)}.embed-list{display:grid;gap:18px}.embed-item{display:grid;gap:16px;padding:22px 24px;border-radius:var(--radius-lg);border:1px solid rgba(148,163,184,.22);background:#0c1424b8;box-shadow:0 16px 32px #080f2852;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.embed-item:hover{transform:translateY(-3px);box-shadow:0 22px 50px #080f2873;border-color:#6366f147}.embed-top{display:flex;justify-content:space-between;gap:18px}.embed-heading{display:grid;gap:8px}.embed-heading h3{font-size:18px}.embed-description{font-size:14px;color:var(--text-secondary)}.embed-date{font-size:13px;color:var(--text-secondary);white-space:nowrap}.embed-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.embed-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#6366f124;border:1px solid rgba(99,102,241,.22);color:var(--brand-300);font-size:12px}.embed-chip__label{font-weight:600;letter-spacing:.05em;text-transform:uppercase}.embed-chip__value{color:#fff}.embed-updated{font-size:13px;color:var(--text-secondary)}.embed-url{display:block;padding:14px 16px;border-radius:var(--radius-md);background:#ffffff0f;border:1px solid rgba(148,163,184,.22);color:var(--text-secondary);font-size:13px;word-break:break-word;transition:border-color .2s ease,color .2s ease}.embed-url:hover{border-color:#6366f152;color:var(--brand-300)}.embed-actions{display:flex;flex-wrap:wrap;gap:12px}.embed-actions .btn{flex:none;min-width:140px}@media (max-width: 1024px){.dashboard-header{flex-direction:column}.dashboard-heading{max-width:100%}.dashboard-meta{align-self:flex-start}.dashboard-grid{grid-template-columns:1fr}.card-header{flex-direction:column;align-items:flex-start}}@media (max-width: 768px){.dashboard-page{padding:24px}.dashboard-card,.dashboard-form{gap:20px}.form-group label{font-size:13px}.form-input,.form-textarea{font-size:14px;padding:14px 16px}.form-footer{flex-direction:column;gap:12px}.form-footer .btn{width:100%}.card-header{gap:14px}.card-header h2{font-size:20px}.card-header p{max-width:100%}.dashboard-hint{flex-direction:column;align-items:flex-start}.embed-top{flex-direction:column;gap:10px}.embed-actions{width:100%}.embed-actions .btn{flex:1 1 100%}}@media (max-width: 560px){.dashboard-page{padding:20px}.dashboard-card,.dashboard-header{border-radius:var(--radius-lg)}.dashboard-card{padding:24px;gap:18px}.dashboard-form{gap:18px}.form-input,.form-textarea{padding:12px 14px}.form-textarea{min-height:110px}}.auth-page{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(24px,6vw,60px)}.auth-wrapper{width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,36px)}.auth-panel{position:relative;border-radius:var(--radius-xl);border:1px solid var(--surface-border);background:var(--surface-glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-lg);padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:28px;overflow:hidden}.auth-panel--intro{background:linear-gradient(135deg,#2563eb29,#0f172aeb)}.auth-panel--intro:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at top right,rgba(129,140,248,.22),transparent 55%);pointer-events:none}.auth-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;background:#ffffff1f;color:var(--brand-300);font-size:12px;letter-spacing:.08em;text-transform:uppercase;width:fit-content}.auth-description{font-size:16px;color:#e2e8f0eb}.auth-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}.highlight-card{background:#ffffff0f;border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-md);padding:20px;display:grid;gap:12px;min-height:140px}.highlight-title{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-300);font-weight:600}.highlight-card p{color:#e2e8f0d9;font-size:14px}.auth-panel--form{background:var(--surface-card)}.auth-header{display:flex;gap:18px;align-items:center}.auth-icon{display:inline-flex;padding:10px;border-radius:18px;background:#6366f11a;border:1px solid rgba(99,102,241,.25)}.auth-kicker{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-300);margin-bottom:6px}.auth-heading h2{font-size:clamp(22px,3vw,28px)}.auth-form{display:flex;flex-direction:column;gap:24px}.auth-field{display:flex;flex-direction:column;gap:12px}.auth-field label{font-size:14px;font-weight:600;color:var(--text-primary);letter-spacing:.02em}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input-wrapper input{width:100%;padding:16px 52px 16px 18px;border-radius:var(--radius-md);border:1px solid var(--surface-border);background:#0a11248c;color:var(--text-primary);font-size:15px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-input-wrapper input:focus{border-color:var(--surface-border-strong);background:#0c1424cc;box-shadow:0 0 0 4px #6366f12e;outline:none}.auth-input-wrapper input.has-error{border-color:var(--danger);box-shadow:0 0 0 3px #ef444440}.auth-toggle{position:absolute;right:14px;display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:10px;background:none;border:none;color:var(--text-secondary);cursor:pointer;transition:background .2s ease,color .2s ease}.auth-toggle:hover{background:#6366f11f;color:var(--brand-300)}.auth-error{font-size:13px;color:var(--danger)}.auth-submit{width:100%;justify-content:center;min-height:48px}.auth-spinner{width:18px;height:18px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;color:var(--text-secondary)}.auth-security{display:inline-flex;align-items:center;gap:10px}.auth-security-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 12px #22c55ea6}.auth-link{color:var(--brand-300);font-weight:600}.auth-link:hover{color:var(--brand-400)}@media (max-width: 1080px){.auth-wrapper{grid-template-columns:1fr}.auth-panel--intro{order:2}.auth-panel--form{order:1}}@media (max-width: 640px){.auth-page{padding:20px}.auth-panel{border-radius:var(--radius-lg);padding:26px}.auth-highlights{grid-template-columns:1fr}.auth-footer{flex-direction:column;align-items:flex-start}}.viewer-page{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,48px)}.viewer-layout{width:min(1400px,100%);display:flex;flex-direction:column;gap:clamp(24px,4vw,36px)}.viewer-header{display:flex;justify-content:space-between;gap:clamp(24px,4vw,36px);padding:clamp(28px,3.5vw,40px);border-radius:var(--radius-xl);border:1px solid var(--surface-border);background:linear-gradient(135deg,#0f182af5,#19253ceb);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:relative;overflow:hidden}.viewer-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(129,140,248,.24),transparent 65%);pointer-events:none}.viewer-heading{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px;max-width:68%}.viewer-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:999px;background:#ffffff1a;color:var(--brand-300);font-size:12px;letter-spacing:.08em;text-transform:uppercase;width:fit-content}.viewer-heading h1{font-size:clamp(26px,4vw,38px);font-weight:700}.viewer-description{font-size:15px;color:#e2e8f0e0}.viewer-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--text-secondary)}.viewer-controls{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.viewer-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid rgba(99,102,241,.3);background:#6366f129;color:var(--brand-300);font-size:12px}.viewer-badge__label{text-transform:uppercase;letter-spacing:.08em;font-weight:600}.viewer-badge__value{color:#fff}.viewer-back{border:1px solid rgba(148,163,184,.25)}.viewer-body{position:relative;border-radius:var(--radius-xl);border:1px solid var(--surface-border);background:#0a1222c7;box-shadow:var(--shadow-lg);padding:clamp(16px,3vw,28px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.viewer-frame{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(148,163,184,.24);background:#0f172ae6;min-height:min(760px,calc(100vh - 240px));box-shadow:0 24px 60px #080f2873}.viewer-iframe{width:100%;height:100%;border:none;display:block;background:#fff}.viewer-powerbi{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;border:none;background:#fff}.viewer-frame::-webkit-scrollbar{display:none}.viewer-state{width:min(420px,100%);margin:auto;padding:48px 36px;border-radius:var(--radius-xl);border:1px solid var(--surface-border);background:#0f172adb;box-shadow:var(--shadow-lg);display:grid;gap:18px;justify-items:center;text-align:center}.viewer-state p{font-size:15px}.viewer-state--error{gap:20px}.viewer-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#ef444426;border:1px solid rgba(239,68,68,.35);box-shadow:0 16px 34px #ef44444d}.viewer-state h2{margin:0;font-size:22px;color:var(--text-primary)}.viewer-spinner{width:48px;height:48px;border-radius:50%;border:4px solid rgba(129,140,248,.2);border-top-color:#818cf8;animation:viewer-spin .8s linear infinite}@keyframes viewer-spin{to{transform:rotate(360deg)}}@media (max-width: 1024px){.viewer-header{flex-direction:column}.viewer-heading{max-width:100%}.viewer-controls{justify-content:flex-start}}@media (max-width: 768px){.viewer-page{padding:24px}.viewer-frame{min-height:calc(100vh - 220px)}.viewer-controls{width:100%}.viewer-controls .btn{flex:1 1 auto}}@media (max-width: 560px){.viewer-page{padding:18px}.viewer-header,.viewer-body{border-radius:var(--radius-lg)}.viewer-body{padding:18px}.viewer-frame{border-radius:var(--radius-md)}}:root{color-scheme:dark;--bg-gradient: radial-gradient(circle at 20% 20%, #1f2a44 0%, #111c31 45%, #0a1324 100%);--surface-glass: rgba(15, 23, 42, .82);--surface-glass-soft: rgba(15, 23, 42, .68);--surface-card: rgba(13, 23, 42, .92);--surface-border: rgba(148, 163, 184, .22);--surface-border-strong: rgba(99, 102, 241, .32);--shadow-lg: 0 28px 60px rgba(8, 15, 40, .45);--shadow-md: 0 18px 40px rgba(8, 15, 40, .35);--shadow-sm: 0 10px 24px rgba(8, 15, 40, .28);--radius-xl: 32px;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 12px;--brand-300: #a5b4fc;--brand-400: #818cf8;--brand-500: #6366f1;--brand-600: #4f46e5;--accent-soft: rgba(99, 102, 241, .12);--accent-muted: rgba(99, 102, 241, .18);--danger: #ef4444;--danger-hover: #dc2626;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-tertiary: #64748b;--text-inverse: #0f172a;font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.55}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg-gradient);background-attachment:fixed;color:var(--text-primary)}#root{min-height:100vh}.app-shell{min-height:100vh;width:100%;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--text-primary)}p{margin:0;color:var(--text-secondary)}a{color:inherit;text-decoration:none;transition:color .2s ease,opacity .2s ease}a:hover{color:var(--brand-400)}.btn{border:none;border-radius:999px;padding:12px 22px;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:#fff;box-shadow:0 16px 36px #4f46e573}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 24px 42px #4f46e580}.btn--ghost{background:#ffffff14;color:var(--text-primary);border:1px solid var(--surface-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.btn--ghost:hover:not(:disabled){background:#ffffff24;transform:translateY(-1px)}.btn--danger{background:linear-gradient(135deg,var(--danger),#b91c1c);color:#fff;box-shadow:0 16px 36px #ef444459}.btn--danger:hover:not(:disabled){transform:translateY(-2px);background:linear-gradient(135deg,var(--danger-hover),#b91c1c)}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;background:#ffffff14;color:var(--brand-300);letter-spacing:.05em;text-transform:uppercase}code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em;background:#0f172ab3;color:var(--brand-300);border:1px solid var(--surface-border);border-radius:8px;padding:2px 8px}input,textarea,button{font:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){body{background-attachment:scroll}}
