*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--orange-50:#fdf2f1;--orange-100:#fae3e1;--orange-200:#f4c5c2;--orange-300:#e9928e;--orange-400:#db5f59;--orange-500:#c73732;--orange-600:#b02f2b;--orange-700:#8f2623;--rh-navy-950:#081225;--rh-navy-900:#0e1b34;--rh-ink:#17213b;--rh-red:#c73732;--rh-teal:#2fc9c5;--rh-amber:#ffb33b;--rh-violet:#6757c8;--rh-cut-sm:0.85rem 0.85rem 0.28rem 0.85rem;--sidebar-bg:#081225;--sidebar-hover:#0e1b34;--sidebar-active:#17213b;--sidebar-text:#aeb8cc;--sidebar-text-active:#ffffff;--sidebar-width:240px;--bg-main:#f5f6fa;--bg-card:#ffffff;--bg-card-hover:#fafbfe;--card-bg:#ffffff;--hover-bg:#f3f4f6;--text-primary:#17213b;--text-secondary:#536076;--text-muted:#6b7280;--border-color:#e5e7eb;--border-radius:8px;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);--status-active:#22c55e;--status-warning:#eab308;--status-danger:#ef4444;--status-info:#3b82f6;--cal-robotyka:#c73732;--cal-programowanie:#6757c8;--cal-minecraft:#2fc9c5;--cal-elektronika:#ffb33b;--cal-druk3d:#ec4899;--cal-warsztaty:#3b82f6;--transition-fast:150ms ease;--transition-normal:250ms ease}body,html{height:100%;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-primary);background:var(--bg-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit;border:none;background:none}input,select,textarea{font-family:inherit;font-size:inherit}body,html{transition:background-color .3s ease,color .3s ease}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;overflow-y:auto;transition:transform var(--transition-normal)}.sidebar-logo{padding:20px 20px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}.sidebar-logo .logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--orange-500),var(--orange-600));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;color:white;font-weight:800}.sidebar-logo .logo-text{font-size:17px;font-weight:700;color:white;letter-spacing:-.3px}.sidebar-logo .logo-text span{color:var(--orange-400)}.sidebar-nav{flex:1;padding:4px 10px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;color:var(--sidebar-text);font-size:13.5px;font-weight:500;transition:all var(--transition-fast);position:relative}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-active)}.nav-item.active{background:var(--sidebar-active);color:var(--sidebar-text-active)}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--orange-500);border-radius:0 3px 3px 0}.nav-item .nav-icon{font-size:18px;width:22px;text-align:center;flex-shrink:0}.nav-item .nav-badge{margin-left:auto;background:var(--orange-500);color:white;font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px}.nav-divider{height:1px;background:rgba(255,255,255,.06);margin:8px 4px}.sidebar-footer{padding:16px 14px;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:10px}.sidebar-footer .user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--orange-400),var(--orange-600));display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:14px;flex-shrink:0}.sidebar-footer .user-info{flex:1;min-width:0}.sidebar-footer .user-name{color:white;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .user-role{color:var(--sidebar-text);font-size:11px;font-weight:400}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.top-bar{height:60px;background:var(--bg-card);border-bottom:1px solid var(--border-color);justify-content:space-between;padding:0 24px;flex-shrink:0}.top-bar,.top-bar-left{display:flex;align-items:center}.top-bar-left{gap:16px}.top-bar-left h1{font-size:18px;font-weight:700;color:var(--text-primary)}.season-tabs{display:flex;align-items:center;gap:6px;margin-left:16px;flex-wrap:wrap}.season-tabs .btn{font-size:12px;padding:6px 12px;white-space:nowrap}.top-bar-right{gap:12px}.top-bar-btn,.top-bar-right{display:flex;align-items:center}.top-bar-btn{width:38px;height:38px;border-radius:50%;justify-content:center;color:var(--text-secondary);font-size:18px;transition:all var(--transition-fast);position:relative}.top-bar-btn:hover{background:var(--bg-main);color:var(--text-primary)}.top-bar-btn .notification-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--orange-500);border-radius:50%;border:2px solid var(--bg-card)}.page-content{flex:1;overflow-y:auto;padding:24px}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--border-radius);font-size:13.5px;font-weight:600;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--rh-red);color:white;border-radius:var(--rh-cut-sm);box-shadow:0 8px 22px rgba(199,55,50,.22)}.btn-primary:hover{background:#dc433c;box-shadow:0 10px 26px rgba(199,55,50,.3);transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-main);border-color:var(--orange-300)}.btn-ghost{color:var(--text-secondary);padding:8px 12px}.btn-ghost:hover{background:var(--bg-main);color:var(--text-primary)}.btn-danger{background:var(--status-danger);color:white}.btn-danger:hover{background:#dc2626}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-icon{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--border-radius);color:var(--text-secondary);transition:all var(--transition-fast)}.btn-icon:hover{background:var(--bg-main);color:var(--text-primary)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-sm)}.card-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-header h2{font-size:15px;font-weight:700}.card-body{padding:20px}.data-table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table th{background:var(--bg-main);padding:10px 16px;text-align:left;font-size:11.5px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:1}.data-table td,.data-table th{border-bottom:1px solid var(--border-color)}.data-table td{padding:12px 16px;font-size:13.5px;color:var(--text-primary)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-card-hover)}.data-table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-active{background:#dcfce7;color:#15803d}.badge-warning{background:#fef9c3;color:#a16207}.badge-danger{background:#fee2e2;color:#b91c1c}.badge-info{background:#dbeafe;color:#1d4ed8}.badge-neutral{background:#f3f4f6;color:#6b7280}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.form-input,.form-select,.form-textarea{width:100%;padding:9px 14px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:13.5px;color:var(--text-primary);background:var(--bg-card);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--orange-400);box-shadow:0 0 0 3px rgba(199,55,50,.1)}.form-input::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.search-bar{position:relative}.search-bar .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:16px}.search-bar input{width:100%;padding:9px 14px 9px 40px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:13.5px;background:var(--bg-card);outline:none;transition:all var(--transition-fast)}.search-bar input:focus{border-color:var(--orange-400);box-shadow:0 0 0 3px rgba(199,55,50,.1)}.filters-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border-color);border-radius:20px;font-size:12.5px;font-weight:500;color:var(--text-secondary);background:var(--bg-card);cursor:pointer;transition:all var(--transition-fast)}.filter-chip.active,.filter-chip:hover{border-color:var(--orange-400);color:var(--orange-600);background:var(--orange-50)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-lg);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .25s ease}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h2{font-size:17px;font-weight:700}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:flex-end;gap:10px}.modal-footer,.page-header{display:flex;align-items:center}.page-header{justify-content:space-between;margin-bottom:20px}.page-header-left{display:flex;align-items:center;gap:12px}.page-header-left h2{font-size:20px;font-weight:700}.page-header-right{display:flex;align-items:center;gap:10px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;display:flex;align-items:flex-start;gap:14px;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card .stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.stat-card .stat-icon.orange{background:var(--orange-100);color:var(--orange-600)}.stat-card .stat-icon.blue{background:#dbeafe;color:#2563eb}.stat-card .stat-icon.green{background:#dcfce7;color:#16a34a}.stat-card .stat-icon.purple{background:#ede9fe;color:#7c3aed}.stat-card .stat-value{font-size:26px;font-weight:800;color:var(--text-primary);line-height:1.1}.stat-card .stat-label{font-size:12.5px;color:var(--text-secondary);margin-top:2px}.calendar-controls{display:flex;align-items:center;gap:12px;margin-bottom:20px}.calendar-nav-btn{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);font-size:16px;transition:all var(--transition-fast)}.calendar-nav-btn:hover{border-color:var(--orange-300);color:var(--orange-500)}.calendar-title{font-size:18px;font-weight:700}.calendar-grid{display:grid;grid-template-columns:60px repeat(var(--days,5),1fr);background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.calendar-day-header{padding:12px 8px;text-align:center;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border-color);background:var(--bg-main)}.calendar-day-header .day-date{font-size:13px;color:var(--text-primary);margin-top:2px}.calendar-time-label{font-size:11px;color:var(--text-muted);text-align:right;display:flex;align-items:flex-start;justify-content:flex-end;padding:4px 8px 0;height:40px}.calendar-cell,.calendar-time-label{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.calendar-cell{min-height:40px;position:relative;padding:2px}.calendar-cell:last-child{border-right:none}.calendar-event{border-radius:6px;padding:4px 8px;font-size:11.5px;font-weight:600;color:white;margin-bottom:2px;cursor:pointer;transition:all var(--transition-fast);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-event:hover{filter:brightness(.9);transform:scale(1.02)}.calendar-event .event-time{font-size:10px;font-weight:400;opacity:.85}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.empty-state p{font-size:13.5px;max-width:400px;margin:0 auto 20px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:2000;flex-direction:column;gap:8px}.toast,.toast-container{display:flex;pointer-events:none}.toast{background:var(--sidebar-bg);color:white;padding:12px 20px;border-radius:10px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideUp .3s ease;align-items:center;gap:10px}.toast.success{border-left:4px solid var(--status-active)}.toast.error{border-left:4px solid var(--status-danger)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.mobile-menu-btn{display:none;position:fixed;top:12px;left:12px;z-index:300;width:44px;height:44px;border-radius:12px;background:var(--sidebar-bg);border:1px solid rgba(255,255,255,.1);align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.mobile-menu-btn:hover{background:#0e1b34}.hamburger-icon{display:flex;flex-direction:column;gap:5px;width:20px}.hamburger-icon span{display:block;width:100%;height:2px;background:white;border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger-icon.open span:first-child{transform:translateY(7px) rotate(45deg)}.hamburger-icon.open span:nth-child(2){opacity:0}.hamburger-icon.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:150;animation:fadeIn .2s ease}.mobile-only{display:none!important}@media (max-width:768px){.mobile-menu-btn{display:flex}.sidebar-overlay{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);z-index:200;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translateX(0)}.main-content{width:100%}.page-content{padding:64px 12px 12px}.top-bar{padding:8px 12px 8px 64px;min-height:54px;height:auto;gap:6px 8px;flex-wrap:wrap;align-items:flex-start}.top-bar-left{flex:1 1 200px;min-width:0;flex-wrap:wrap;gap:6px 8px}.top-bar-left h1{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.season-tabs{margin-left:0;width:100%;gap:4px}.season-tabs .btn{font-size:11px;padding:4px 8px}.top-bar-right{gap:4px}.top-bar-right .user-info-bar{display:none}.top-bar-btn{width:36px;height:36px;font-size:16px}.hide-mobile{display:none!important}.mobile-only{display:block!important}.data-table-wrapper{margin:0 -12px;padding:0 12px;-webkit-overflow-scrolling:touch}.data-table td,.data-table th{padding:8px 10px;font-size:12px;white-space:nowrap}.data-table th{font-size:10px}.card{border-radius:10px}.card-header{padding:12px 14px;flex-wrap:wrap;gap:8px}.card-header h2{font-size:14px}.card-body{padding:14px}.modal-overlay{align-items:flex-end}.modal{width:100%;max-width:100%;max-height:90vh;border-radius:16px 16px 0 0;animation:slideUpModal .3s ease}.modal-body,.modal-header{padding:16px 18px}.modal-footer{padding:12px 16px;gap:8px;flex-wrap:wrap}.form-row{grid-template-columns:1fr}.form-input,.form-select,.form-textarea{font-size:16px;padding:10px 14px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;gap:10px}.stat-card .stat-value{font-size:22px}.stat-card .stat-icon{width:38px;height:38px;font-size:17px}.page-header{flex-direction:column;align-items:flex-start;gap:10px;padding-top:48px}.page-header-left h2{font-size:17px}.filters-bar{gap:8px}.filter-chip{padding:5px 10px;font-size:11.5px}.calendar-grid{font-size:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-controls{flex-wrap:wrap;gap:8px}.calendar-title{font-size:15px}.search-bar input{font-size:16px;padding:10px 14px 10px 40px}.btn{padding:10px 16px;font-size:13px}.btn-sm{padding:7px 12px;font-size:12px}.badge{font-size:11px;padding:2px 8px}.toast-container{left:12px;right:12px;bottom:12px}.toast{font-size:12.5px;padding:10px 16px}.notification-dropdown{width:min(380px,calc(100vw - 24px));right:-60px}.empty-state{padding:40px 16px}.empty-state .empty-icon{font-size:36px}.empty-state h3{font-size:14px}}@media (max-width:400px){.stats-grid{grid-template-columns:1fr}.page-content{padding:60px 10px 10px}.top-bar-left h1{max-width:100px;font-size:14px}}@keyframes slideUpModal{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark]{--bg-main:#081225;--bg-card:#0e1b34;--bg-card-hover:#17213b;--text-primary:#e5e7eb;--text-secondary:#b7c2d6;--text-muted:#8291aa;--border-color:rgba(124,228,223,0.18);--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 4px 6px rgba(0,0,0,0.4);--shadow-lg:0 10px 15px rgba(0,0,0,0.5)}[data-theme=dark] .badge-active{background:rgba(34,197,94,.15);color:#4ade80}[data-theme=dark] .badge-warning{background:rgba(234,179,8,.15);color:#facc15}[data-theme=dark] .badge-danger{background:rgba(239,68,68,.15);color:#f87171}[data-theme=dark] .badge-info{background:rgba(59,130,246,.15);color:#60a5fa}[data-theme=dark] .badge-neutral{background:rgba(107,114,128,.2);color:#9ca3af}[data-theme=dark] .stat-card .stat-icon.orange{background:rgba(199,55,50,.15)}[data-theme=dark] .stat-card .stat-icon.blue{background:rgba(59,130,246,.15)}[data-theme=dark] .stat-card .stat-icon.green{background:rgba(34,197,94,.15)}[data-theme=dark] .stat-card .stat-icon.purple{background:rgba(139,92,246,.15)}[data-theme=dark] .filter-chip.active,[data-theme=dark] .filter-chip:hover{background:rgba(199,55,50,.15)}[data-theme=dark] .data-table th{background:#151827}[data-theme=dark] ::-webkit-scrollbar-track{background:#081225}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#3d4270}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/poppins-latin-300-normal.woff2) format("woff2");unicode-range:u+00??,u+2000-206f,u+20ac,u+2122}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/poppins-latin-ext-300-normal.woff2) format("woff2");unicode-range:u+0100-024f,u+1e??}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-latin-400-normal.woff2) format("woff2");unicode-range:u+00??,u+2000-206f,u+20ac,u+2122}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-latin-ext-400-normal.woff2) format("woff2");unicode-range:u+0100-024f,u+1e??}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-latin-500-normal.woff2) format("woff2");unicode-range:u+00??,u+2000-206f,u+20ac,u+2122}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-latin-ext-500-normal.woff2) format("woff2");unicode-range:u+0100-024f,u+1e??}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-latin-600-normal.woff2) format("woff2");unicode-range:u+00??,u+2000-206f,u+20ac,u+2122}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-latin-ext-600-normal.woff2) format("woff2");unicode-range:u+0100-024f,u+1e??}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-latin-700-normal.woff2) format("woff2");unicode-range:u+00??,u+2000-206f,u+20ac,u+2122}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-latin-ext-700-normal.woff2) format("woff2");unicode-range:u+0100-024f,u+1e??}