@import url("https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700&family=Source+Sans+Pro:wght@400;600;700&family=JetBrains+Mono:wght@400;500&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}.skip-link,.skip-to-content{position:absolute;top:-40px;left:0;background:var(--color-primary,#2563eb);color:#fff;padding:8px 16px;z-index:10000;transition:top .2s;text-decoration:none;font-weight:600;border-radius:0 0 8px 0}.skip-link:focus,.skip-to-content:focus{top:0}:focus-visible{outline:2px solid var(--color-primary,#2563eb);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none}:root{--color-primary:#1A3C6E;--color-primary-light:#2A5A9E;--color-primary-dark:#0F2544;--color-secondary:#2E7D32;--color-secondary-light:#43A047;--color-accent:#F57C00;--color-accent-light:#FF9800;--bg-body:#F5F7FA;--bg-surface:#FFFFFF;--bg-surface-hover:#F0F2F5;--bg-elevated:#FFFFFF;--text-primary:#1C1C2E;--text-secondary:#5A6478;--text-muted:#8E95A5;--text-inverse:#FFFFFF;--border-color:#E2E8F0;--border-focus:#1A3C6E;--color-success:#43A047;--color-error:#E53935;--color-warning:#F57C00;--color-info:#0288D1;--shadow-sm:0 1px 3px rgba(26,60,110,0.06);--shadow-md:0 4px 12px rgba(26,60,110,0.1);--shadow-lg:0 12px 32px rgba(26,60,110,0.15);--shadow-xl:0 20px 48px rgba(26,60,110,0.2);--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--font-heading:"Merriweather","Georgia",serif;--font-body:"Source Sans Pro","Lato",-apple-system,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--transition-fast:0.15s cubic-bezier(0.4,0,0.2,1);--transition-normal:0.2s cubic-bezier(0.4,0,0.2,1);--transition-slow:0.3s cubic-bezier(0.4,0,0.2,1);--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--sidebar-width:260px;--header-height:56px;--max-content:1280px;--bg-alert-error:#FEF2F2;--bg-alert-warning:#FFFBEB;--bg-alert-success:#F0FDF4;--bg-alert-info:#EFF6FF;--border-alert-error:#FECACA;--border-alert-warning:#FDE68A;--border-alert-success:#BBF7D0;--border-alert-info:#BFDBFE;--text-alert-error:#DC2626;--text-alert-warning:#D97706;--text-alert-success:#16A34A;--text-alert-info:#2563EB;--bg-badge-amber:#FFFBEB;--border-badge-amber:#FDE68A;--text-badge-amber:#92400E;--color-primary-text:#1A3C6E;--bg-secondary:var(--bg-surface-hover);--bg-tertiary:var(--border-color)}@media (prefers-color-scheme:dark){:root{--bg-body:#1a1a2e;--bg-surface:#1e1e3a;--bg-surface-hover:#16213e;--bg-elevated:#22224a;--text-primary:#e0e0e0;--text-secondary:#a0adbf;--text-muted:#6b7b8f;--text-inverse:#1a1a2e;--border-color:#2a2a4a;--border-focus:#5B9BD5;--color-primary:#2a5a9e;--color-primary-light:#3a6fbe;--color-primary-dark:#1a3c6e;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 12px 32px rgba(0,0,0,0.5);--shadow-xl:0 20px 48px rgba(0,0,0,0.6);--bg-alert-error:rgba(229,57,53,0.12);--bg-alert-warning:rgba(245,124,0,0.12);--bg-alert-success:rgba(67,160,71,0.12);--bg-alert-info:rgba(2,136,209,0.12);--border-alert-error:rgba(229,57,53,0.3);--border-alert-warning:rgba(245,124,0,0.3);--border-alert-success:rgba(67,160,71,0.3);--border-alert-info:rgba(2,136,209,0.3);--text-alert-error:#F87171;--text-alert-warning:#FBBF24;--text-alert-success:#6EE7B7;--text-alert-info:#93C5FD;--bg-badge-amber:rgba(245,124,0,0.15);--border-badge-amber:rgba(245,124,0,0.3);--text-badge-amber:#FBBF24;--color-primary-text:#5B9BD5;--bg-secondary:var(--bg-surface-hover);--bg-tertiary:var(--border-color)}}[data-theme=dark]{--bg-body:#1a1a2e;--bg-surface:#1e1e3a;--bg-surface-hover:#16213e;--bg-elevated:#22224a;--text-primary:#e0e0e0;--text-secondary:#a0adbf;--text-muted:#6b7b8f;--text-inverse:#1a1a2e;--border-color:#2a2a4a;--border-focus:#5B9BD5;--color-primary:#2a5a9e;--color-primary-light:#3a6fbe;--color-primary-dark:#1a3c6e;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 12px 32px rgba(0,0,0,0.5);--shadow-xl:0 20px 48px rgba(0,0,0,0.6);--bg-alert-error:rgba(229,57,53,0.12);--bg-alert-warning:rgba(245,124,0,0.12);--bg-alert-success:rgba(67,160,71,0.12);--bg-alert-info:rgba(2,136,209,0.12);--border-alert-error:rgba(229,57,53,0.3);--border-alert-warning:rgba(245,124,0,0.3);--border-alert-success:rgba(67,160,71,0.3);--border-alert-info:rgba(2,136,209,0.3);--text-alert-error:#F87171;--text-alert-warning:#FBBF24;--text-alert-success:#6EE7B7;--text-alert-info:#93C5FD;--bg-badge-amber:rgba(245,124,0,0.15);--border-badge-amber:rgba(245,124,0,0.3);--text-badge-amber:#FBBF24;--color-primary-text:#5B9BD5;--bg-secondary:var(--bg-surface-hover);--bg-tertiary:var(--border-color)}body{font-family:var(--font-body);font-size:14px;line-height:1.6;background:var(--bg-body);min-height:100vh}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.3}h1{font-size:24px;margin-bottom:var(--space-lg)}h2{font-size:20px;margin-bottom:var(--space-md)}h3{font-size:18px;margin-bottom:var(--space-sm)}h4{font-size:16px}p{margin-bottom:var(--space-md);color:var(--text-secondary)}small{font-size:12px;color:var(--text-muted)}@media (min-width:768px){body{font-size:15px}h1{font-size:30px}h2{font-size:24px}h3{font-size:20px}}@media (min-width:1024px){body{font-size:16px}h1{font-size:40px}h2{font-size:32px}h3{font-size:24px}}.app-layout{display:flex;min-height:100vh}.app-main{flex:1 1;padding:var(--space-md);max-width:100%;overflow-x:hidden}@media (min-width:768px){.app-main{padding:var(--space-lg)}}@media (min-width:1024px){.app-main{padding:var(--space-xl);margin-left:var(--sidebar-width)}}.container{max-width:var(--max-content);margin:0 auto;width:100%}.grid{display:grid;grid-gap:var(--space-md);gap:var(--space-md)}.grid-2,.grid-3{grid-template-columns:1fr;grid-gap:var(--space-md)}.grid-2,.grid-3,.grid-4{display:grid;gap:var(--space-md)}.grid-4{grid-template-columns:repeat(2,1fr);grid-gap:var(--space-md)}@media (min-width:640px){.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid{gap:var(--space-lg)}}@media (min-width:1024px){.grid-3,.grid-4{grid-template-columns:repeat(3,1fr)}}@media (min-width:1280px){.grid-4{grid-template-columns:repeat(4,1fr)}}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky);height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 var(--space-md);box-shadow:var(--shadow-sm)}@media (min-width:1024px){.app-header{padding:0 var(--space-xl);margin-left:var(--sidebar-width)}}.header-title{font-family:var(--font-heading);font-size:18px;font-weight:700;color:var(--color-primary)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-sm)}.sidebar{position:fixed;top:0;left:-280px;width:280px;height:100vh;background:var(--color-primary-dark);color:var(--text-inverse);z-index:var(--z-overlay);transition:left var(--transition-slow);overflow-y:auto;display:flex;flex-direction:column}.sidebar.open{left:0}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:calc(var(--z-overlay) - 1)}.sidebar.open~.sidebar-overlay{display:block}@media (min-width:1024px){.sidebar{left:0;width:var(--sidebar-width)}.menu-toggle,.sidebar-overlay{display:none!important}}.sidebar-brand{padding:var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:var(--space-sm)}.sidebar-brand h2{font-size:20px;color:#FFFFFF;margin:0}.sidebar-nav{flex:1 1;padding:var(--space-md) 0}.nav-section{padding:var(--space-xs) var(--space-md);margin-top:var(--space-md)}.nav-section-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.4);font-family:var(--font-body);font-weight:600}.nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);color:rgba(255,255,255,.7);text-decoration:none;font-size:14px;transition:all var(--transition-fast);border-left:3px solid transparent;cursor:pointer;min-height:48px}.nav-item:hover{background:rgba(255,255,255,.08);color:#FFFFFF}.nav-item.active{background:rgba(255,255,255,.12);color:#FFFFFF;border-left-color:var(--color-accent)}.nav-item svg{width:20px;height:20px;flex-shrink:0}.nav-badge{margin-left:auto;background:var(--color-accent);color:#FFF;font-size:11px;padding:2px 7px;border-radius:var(--radius-full);font-weight:600}.card{background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--space-lg);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){.card:hover{transform:none}}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.card-title{font-family:var(--font-heading);font-size:16px;font-weight:700}.card-body{color:var(--text-secondary)}.card-footer{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-color)}.stat-card{text-align:center}.stat-value{font-size:32px;font-weight:700;color:var(--color-primary);font-family:var(--font-heading)}.stat-label{font-size:13px;color:var(--text-muted)}.stat-change,.stat-label{margin-top:var(--space-xs)}.stat-change{font-size:12px;font-weight:600}.stat-change.positive{color:var(--color-success)}.stat-change.negative{color:var(--color-error)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px var(--space-lg);font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);min-height:48px;width:100%;text-decoration:none;line-height:1}@media (min-width:768px){.btn{width:auto;min-height:44px}}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#FFF}.btn-primary:hover{background:var(--color-primary-light)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-surface-hover)}.btn-accent{background:var(--color-accent);color:#FFF}.btn-accent:hover{background:var(--color-accent-light)}.btn-success{background:var(--color-success);color:#FFF}.btn-danger{background:var(--color-error);color:#FFF}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-surface-hover)}.btn-sm{padding:6px var(--space-md);font-size:13px;min-height:36px}.btn-lg{padding:14px var(--space-xl);font-size:16px}.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--radius-md)}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-size:13px;font-weight:600;margin-bottom:var(--space-xs)}.form-input,.form-label{color:var(--text-primary)}.form-input{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:48px}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(26,60,110,.15)}.form-input::placeholder{color:var(--text-muted)}textarea.form-input{min-height:100px;resize:vertical}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235A6478' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px}.form-error{font-size:12px;color:var(--color-error);margin-top:var(--space-xs)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);border:1px solid var(--border-color)}table{width:100%;border-collapse:collapse;background:var(--bg-surface)}th{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:left;background:var(--bg-surface-hover);white-space:nowrap}td,th{padding:12px 16px;border-bottom:1px solid var(--border-color)}td{font-size:14px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-surface-hover)}@media (max-width:767px){.table-wrapper{border:none;border-radius:0}.table-responsive thead{display:none}.table-responsive tbody tr{display:block;margin-bottom:var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.table-responsive tbody tr:hover{box-shadow:var(--shadow-md)}.table-responsive tbody td{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border:none;gap:8px}.table-responsive tbody td:before{content:attr(data-label);font-weight:600;font-size:12px;color:var(--text-muted);flex-shrink:0;min-width:80px}.table-responsive tbody td:empty{display:none}.table-component .flex{flex-wrap:wrap}}.badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;border-radius:var(--radius-full);line-height:1.4}.badge-primary{background:rgba(26,60,110,.1);color:var(--color-primary)}.badge-success{background:rgba(67,160,71,.1);color:var(--color-success)}.badge-warning{background:rgba(245,124,0,.1);color:var(--color-warning)}.badge-danger{background:rgba(229,57,53,.1);color:var(--color-error)}.badge-info{background:rgba(2,136,209,.1);color:var(--color-info)}.avatar{width:40px;height:40px;border-radius:var(--radius-full);object-fit:cover;background:var(--color-primary);color:#FFF;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.avatar-sm{width:32px;height:32px;font-size:13px}.avatar-lg{width:56px;height:56px;font-size:22px}.progress{height:8px;background:var(--border-color);overflow:hidden}.progress,.progress-fill{border-radius:var(--radius-full)}.progress-fill{height:100%;transition:width var(--transition-slow)}.progress-fill.primary{background:var(--color-primary)}.progress-fill.success{background:var(--color-success)}.progress-fill.warning{background:var(--color-warning)}.progress-fill.danger{background:var(--color-error)}.toast-container{position:fixed;top:var(--space-lg);right:var(--space-md);z-index:var(--z-toast);flex-direction:column;max-width:400px;width:calc(100% - 32px)}.toast,.toast-container{display:flex;gap:var(--space-sm)}.toast{padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);align-items:flex-start;animation:fadeInUp .3s ease-out}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-error)}.toast-info{border-left:4px solid var(--color-info)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:var(--z-modal);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--transition-normal)}.modal-overlay.open{opacity:1;pointer-events:all}@media (min-width:768px){.modal-overlay{align-items:center}}.modal{background:var(--bg-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:90vh;overflow-y:auto;transform:translateY(100%);transition:transform var(--transition-slow)}.modal-overlay.open .modal{transform:translateY(0)}@media (min-width:768px){.modal{max-width:560px;border-radius:var(--radius-xl);transform:scale(.95)}.modal-overlay.open .modal{transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-body,.modal-header{padding:var(--space-lg)}.modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-color);display:flex;gap:var(--space-sm);justify-content:flex-end}.chat-container{display:flex;flex-direction:column;gap:var(--space-md);max-height:60vh;overflow-y:auto;padding:var(--space-md)}.chat-bubble{max-width:85%;padding:var(--space-md);border-radius:var(--radius-lg);font-size:14px;line-height:1.6}.chat-bubble.user{align-self:flex-end;background:var(--color-primary);color:#FFF;border-bottom-right-radius:var(--radius-sm)}.chat-bubble.ai{align-self:flex-start;background:var(--bg-surface-hover);color:var(--text-primary);border-bottom-left-radius:var(--radius-sm)}.chat-input-bar{display:flex;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-surface);border-top:1px solid var(--border-color)}.chat-input-bar input{flex:1 1}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.animate-in{animation:fadeInUp .4s ease-out}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--text-muted)}.empty-state svg{width:64px;height:64px;margin:0 auto var(--space-md);opacity:.3}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.text-sm{font-size:13px}.text-muted{color:var(--text-muted)}.font-bold{font-weight:700}.mt-md{margin-top:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.hidden{display:none}@media (min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}}@media (min-width:1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}}.attendance-row{transition:background .15s}.attendance-row:hover{background:var(--bg-hover)}.attendance-present{border-left:3px solid var(--color-success)}.attendance-absent{border-left:3px solid var(--color-error)}.attendance-late{border-left:3px solid var(--color-warning)}.attendance-radio-group{display:flex;gap:var(--space-xs)}.attendance-radio-group label{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;border:1px solid var(--border-color);transition:all .15s}.attendance-radio-group input:checked+span{font-weight:600}.attendance-radio-group label:has(input[value=present]:checked){background:var(--bg-alert-success);border-color:var(--color-success);color:var(--color-success)}.attendance-radio-group label:has(input[value=absent]:checked){background:var(--bg-alert-error);border-color:var(--color-error);color:var(--color-error)}.attendance-radio-group label:has(input[value=late]:checked){background:var(--bg-alert-warning);border-color:var(--color-warning);color:var(--color-warning)}.grade-input{width:70px;text-align:center;font-weight:600;font-size:15px}.grade-excellent{color:var(--color-success)}.grade-good{color:var(--color-primary)}.grade-average{color:var(--color-warning)}.grade-poor{color:var(--color-error)}.filter-bar{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.filter-btn{padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-surface);cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.filter-btn.active,.filter-btn:hover{border-color:var(--color-primary)}.filter-btn.active{background:var(--color-primary);color:#FFF}.bulletin-preview{background:var(--bg-surface);color:var(--text-primary);padding:var(--space-xl);border:1px solid var(--border-color);border-radius:var(--radius-md);max-width:800px;margin:0 auto}.bulletin-preview table{width:100%;border-collapse:collapse}.bulletin-preview td,.bulletin-preview th{border:1px solid var(--border-color);padding:8px 12px;font-size:13px}.bulletin-preview th{background:var(--bg-surface-hover);font-weight:600}.timeline-item{position:relative;padding-left:28px;padding-bottom:var(--space-md);border-left:2px solid var(--border-color)}.timeline-item:last-child{border-left-color:transparent}.timeline-dot{position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-surface)}.timeline-dot.incident{background:var(--color-error)}.timeline-dot.reward{background:var(--color-success)}.timetable-cell{min-height:60px;padding:var(--space-xs) var(--space-sm);transition:background .15s}.timetable-cell:hover{opacity:.9}.agent-card{border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s,box-shadow .2s;cursor:pointer}.agent-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.agent-card-header{color:#FFF;display:flex;align-items:center;gap:var(--space-sm)}.agent-card-body,.agent-card-header{padding:var(--space-md)}.agent-chat-container{display:flex;flex-direction:column;height:calc(100vh - 200px);max-height:600px}.agent-chat-messages{flex:1 1;overflow-y:auto;padding:var(--space-md)}.suggested-chip{display:inline-block;padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-surface);cursor:pointer;font-size:13px;transition:all .15s;margin:4px}.suggested-chip:hover{background:var(--color-primary);color:#FFF;border-color:var(--color-primary)}.kpi-card{text-align:center;padding:var(--space-lg)}.kpi-value{font-size:32px;font-weight:700;font-family:var(--font-heading);line-height:1.2}.kpi-trend{font-size:13px;font-weight:600;margin-top:var(--space-xs)}.kpi-trend.up{color:var(--color-success)}.kpi-trend.down{color:var(--color-error)}.marketplace-card{border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s,box-shadow .2s}.marketplace-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.marketplace-card-icon{height:120px;display:flex;align-items:center;justify-content:center;font-size:40px}.marketplace-card-body{padding:var(--space-md)}.star-rating{color:var(--color-warning);letter-spacing:2px}.price-tag{font-weight:700;font-size:16px;color:var(--color-primary)}.price-free{background:var(--color-success);color:#FFF;padding:2px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.mission-card{border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;transition:box-shadow .2s}.mission-card:hover{box-shadow:var(--shadow-md)}.step-indicator{gap:var(--space-xs);margin-bottom:var(--space-xl)}.step-circle,.step-indicator{display:flex;align-items:center;justify-content:center}.step-circle{width:36px;height:36px;border-radius:50%;font-weight:700;font-size:14px;border:2px solid var(--border-color);background:var(--bg-surface);color:var(--text-muted);transition:all .2s}.step-circle.active{background:var(--color-primary);color:#FFF;border-color:var(--color-primary)}.step-circle.done{background:var(--color-success);color:#FFF;border-color:var(--color-success)}.step-line{width:40px;height:2px;background:var(--border-color)}.step-line.done{background:var(--color-success)}.transport-plan-card{border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;transition:all .2s;cursor:pointer}.transport-plan-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.transport-plan-card.popular{border-color:var(--color-primary);position:relative}.transport-plan-card.popular:before{content:"Populaire";position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--color-primary);color:#FFF;padding:2px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.plan-price{font-size:28px;font-weight:700;font-family:var(--font-heading);color:var(--color-primary);margin:var(--space-md) 0}.plan-period{font-size:14px;color:var(--text-muted)}.plan-features{list-style:none;padding:0;margin:var(--space-md) 0;text-align:left}.plan-features li{padding:6px 0;font-size:14px;display:flex;align-items:center;gap:var(--space-xs)}.plan-features li:before{content:"\2713";color:var(--color-success);font-weight:700}.permission-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-xs);gap:var(--space-xs)}@media (min-width:768px){.permission-grid{grid-template-columns:repeat(3,1fr)}}.permission-item{display:flex;align-items:center;gap:var(--space-xs);font-size:13px;padding:4px 0}.toggle-switch{position:relative;display:inline-block;width:42px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border-color);border-radius:24px;transition:.2s}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#FFF;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(18px)}.hash-cell{font-family:var(--font-mono,"JetBrains Mono",monospace);font-size:11px;color:var(--text-muted);letter-spacing:.5px}.chain-status{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 12px;border-radius:var(--radius-full);font-size:13px;font-weight:600}.chain-status.valid{background:var(--bg-alert-success);color:var(--color-success)}.chain-status.invalid{background:var(--bg-alert-error);color:var(--color-error)}.overdue-row{background:rgba(244,67,54,.04)}.fee-balance{font-weight:700}.fee-balance.positive{color:var(--color-error)}.fee-balance.zero{color:var(--color-success)}.xp-bar-container{background:var(--border-color);height:8px;overflow:hidden}.xp-bar-container,.xp-bar-fill{border-radius:var(--radius-full)}.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transition:width .5s ease}.badge-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:24px}.streak-flame{color:var(--color-accent);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.online{background:var(--color-success);animation:blink 2s infinite}.status-dot.offline{background:var(--text-muted)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media (max-width:639px){.hide-mobile{display:none!important}}@media (min-width:640px) and (max-width:767px){.hide-tablet{display:none!important}}@media (min-width:768px){.hide-desktop{display:none!important}}.welcome-banner{background:linear-gradient(135deg,var(--color-primary) 0,#2a5298 100%);color:#FFF;padding:var(--space-xl);border-radius:var(--radius-lg);margin-bottom:var(--space-lg)}.welcome-banner h1{color:#FFF;font-size:22px;margin-bottom:var(--space-xs)}.welcome-banner p{color:rgba(255,255,255,.8);margin:0}@media (min-width:768px){.welcome-banner{padding:var(--space-2xl)}.welcome-banner h1{font-size:28px}}.ai-fab{position:fixed;bottom:var(--space-lg);right:var(--space-lg);width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-accent);color:#FFF;border:none;box-shadow:var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:900;transition:transform .2s,box-shadow .2s}.ai-fab:hover{transform:scale(1.1)}.ai-fab:hover,.ai-panel{box-shadow:var(--shadow-xl)}.ai-panel{position:fixed;bottom:0;right:0;width:100%;height:70vh;background:var(--bg-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:1100;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s ease}.ai-panel.open{transform:translateY(0)}@media (min-width:768px){.ai-panel{width:420px;height:600px;bottom:var(--space-lg);right:var(--space-lg);border-radius:var(--radius-xl)}}.ai-panel-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.ai-panel-header h3{margin:0;font-size:16px}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-sm);gap:var(--space-sm)}@media (min-width:480px){.quick-actions{grid-template-columns:repeat(3,1fr)}}@media (min-width:768px){.quick-actions{grid-template-columns:repeat(4,1fr)}}.quick-action{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-surface);cursor:pointer;transition:all .15s;text-decoration:none;color:var(--text-primary);min-height:48px}.quick-action:hover{border-color:var(--color-primary);background:rgba(26,60,110,.04)}.quick-action svg{color:var(--color-primary)}.quick-action span{font-size:12px;text-align:center;font-weight:600}@media print{.ai-chat-panel,.btn,.menu-toggle,.no-print,.sidebar,.sidebar-overlay,.skip-to-content,button,header{display:none!important}.main-area{margin-left:0!important}main{padding:0!important}body,html{background:white!important;color:black!important}.bulletin-preview{box-shadow:none!important;border:1px solid #ccc!important;page-break-inside:avoid}table{border-collapse:collapse!important}table td,table th{border:1px solid #999!important;padding:4px 8px!important;color:black!important;background:white!important}table th{background:#f0f0f0!important;font-weight:700!important}.page-break{page-break-after:always}.chart-container,.stat-card{page-break-inside:avoid;break-inside:avoid}}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/fe4c52824bfaed3e-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e8ab5100a4aa694-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b78b37b810acce9f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/027647acf05c7ff8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1f3fe8c6df3d47c1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/fe4c52824bfaed3e-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e8ab5100a4aa694-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b78b37b810acce9f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/027647acf05c7ff8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1f3fe8c6df3d47c1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Merriweather;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/fe4c52824bfaed3e-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Merriweather;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e8ab5100a4aa694-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Merriweather;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b78b37b810acce9f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Merriweather;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/027647acf05c7ff8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Merriweather;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1f3fe8c6df3d47c1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Merriweather Fallback;src:local("Times New Roman");ascent-override:80.59%;descent-override:22.36%;line-gap-override:0.00%;size-adjust:122.09%}.__className_f7dee7{font-family:Merriweather,Merriweather Fallback;font-style:normal}.__variable_f7dee7{--font-merriweather:"Merriweather","Merriweather Fallback"}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/88da59c891d37117-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36d711d427a06e51-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f1f7cdf240180e28-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/55fbdf033607a0e1-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9cf9c6e84ed13b5e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/88da59c891d37117-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/36d711d427a06e51-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/f1f7cdf240180e28-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/55fbdf033607a0e1-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9cf9c6e84ed13b5e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/88da59c891d37117-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36d711d427a06e51-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/f1f7cdf240180e28-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/55fbdf033607a0e1-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9cf9c6e84ed13b5e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3 Fallback;src:local("Arial");ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.00%;size-adjust:93.76%}.__className_aeb8b9{font-family:Source Sans\ 3,Source Sans\ 3 Fallback;font-style:normal}.__variable_aeb8b9{--font-source-sans:"Source Sans 3","Source Sans 3 Fallback"}