body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f8fafc,#e2e8f0 50%,#cbd5e1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;min-height:100vh;overflow-x:hidden;position:relative}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.container{margin:0 auto;max-width:1200px;padding:20px}.form-group{margin-bottom:20px}.form-group label{display:block;letter-spacing:.025em;text-transform:uppercase}.form-group input,.form-group select{background:#fff;border:1px solid #d1d5db;border-radius:4px;box-shadow:0 1px 2px #0000000d;font-size:16px;padding:10px 12px;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.btn{background:#3b82f6;border:none;box-shadow:0 2px 4px #3b82f633;color:#fff;font-size:16px;padding:12px 24px;transition:all .2s ease}.btn:hover{background:#2563eb;box-shadow:0 4px 8px #3b82f64d}.btn:active{background:#1d4ed8;box-shadow:0 1px 2px #3b82f633}.btn:disabled{cursor:not-allowed}.btn:disabled,.btn:disabled:hover{background:#9ca3af;box-shadow:none}.error{animation:shake .3s ease-in-out;background:#ef44441a;border:1px solid #ef444433;border-radius:6px;color:#ef4444;font-size:14px;margin-top:8px;padding:8px 12px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.success{animation:fadeIn .3s ease-in-out;background:#10b9811a;border:1px solid #10b98133;border-radius:6px;color:#10b981;font-size:14px;margin-top:8px;padding:8px 12px}.App{display:flex;flex-direction:column;min-height:100vh}.App,.app-header{text-align:center}.app-header{padding:30px 20px 50px;position:relative;z-index:2}.header-content{margin:0 auto;max-width:600px}.logo-container{margin-bottom:20px}.logo-icon{height:60px;width:60px}.app-title{color:#1f2937;font-size:2.5rem;font-weight:700;letter-spacing:-.01em;margin:0 0 10px}.app-subtitle{color:#64748b;font-size:1rem;font-weight:400;letter-spacing:.01em;margin:0}@media (max-width:768px){.app-header{padding:20px 15px 40px}.app-title{font-size:2.2rem}.app-subtitle{font-size:1rem}}.page{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px;position:relative;z-index:1}.page-content{animation:slideInUp .4s ease-out;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 6px #00000012,0 1px 3px #0000001a;max-width:550px;overflow:hidden;padding:40px;position:relative;width:100%}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-content:before{background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:8px 8px 0 0;content:"";height:0;left:0;position:absolute;right:0;top:0}.page h2{color:#1f2937;font-size:24px;font-weight:600;margin-bottom:30px;margin-top:0;position:relative;text-align:center}.page h2:after{background:#3b82f6;border-radius:1px;bottom:-8px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:50px}.notification{align-items:center;animation:slideIn .3s ease-out;border-radius:4px;box-shadow:0 2px 8px #00000026;display:flex;max-width:500px;min-width:300px;padding:12px 16px;position:fixed;right:20px;top:20px;z-index:1000}.notification--success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.notification--error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.notification--warning{background-color:#fff3cd;border:1px solid #ffeaa7;color:#856404}.notification--info{background-color:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.notification__icon{flex-shrink:0;font-size:18px;font-weight:700;margin-right:12px}.notification__message{flex:1 1;font-size:14px;line-height:1.4}.notification__close{background:none;border:none;color:inherit;cursor:pointer;font-size:20px;margin-left:12px;opacity:.7;padding:0;transition:opacity .2s}.notification__close:hover{opacity:1}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:20px}.loading__spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#007bff}.loading__spinner--small{height:20px;width:20px}.loading__spinner--medium{height:40px;width:40px}.loading__spinner--large{height:60px;width:60px}.loading__text{color:#666;font-size:14px;margin:10px 0 0}.page-header-with-logout{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.page-header-with-logout h2{margin:0}.logout-btn{align-items:center;display:flex;font-size:14px;gap:6px;padding:6px 12px}.logout-btn i{font-size:12px}.time-entry-form{margin:0 auto;max-width:600px}.selected-brigade-display{display:flex;flex-direction:column;gap:5px}.brigade-display-input{background-color:#f8fff9;border:1px solid #28a745;border-radius:4px;color:#155724;cursor:not-allowed;font-weight:500;padding:10px}.brigade-info{color:#6c757d;font-size:12px;font-style:italic}.form-row{display:flex;gap:20px;margin-bottom:20px}.form-row .form-group{flex:1 1}.form-hint{color:#666;display:block;font-size:12px;font-style:italic;margin-top:5px}.current-date-display{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:16px;font-weight:400;padding:10px;text-align:center}.percent-slider::-moz-range-track{background:#0000}.percent-card{background:linear-gradient(135deg,#007bff,#0056b3 50%,#004299);border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 2px 8px #0000000a;margin-bottom:20px;overflow:hidden;padding:20px;position:relative}.percent-card:before{background:linear-gradient(90deg,#3b82f6,#8b5cf6 50%,#06b6d4);border-radius:12px 12px 0 0;content:"";height:0;left:0;position:absolute;right:0;top:0}.percent-display-section{margin-bottom:20px;text-align:center}.percent-main-display{align-items:baseline;display:flex;justify-content:center;margin-bottom:8px}.percent-number{color:#fff;font-family:SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:36px;font-weight:700;line-height:1;margin-right:4px;text-shadow:0 2px 4px #0000004d}.percent-unit{font-size:20px}.percent-label-text,.percent-unit{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:500}.percent-label-text{font-size:12px;letter-spacing:.05em;opacity:.9;text-transform:uppercase}.percent-control-section{margin-top:16px}.quick-controls{flex-wrap:nowrap;gap:16px;margin-bottom:16px}.quick-btn,.quick-controls{align-items:center;display:flex;justify-content:center}.quick-btn{background:#fff;border:2px solid #e5e7eb;border-radius:50%;color:#6b7280;cursor:pointer;flex-shrink:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:18px;font-weight:600;height:48px;transition:all .2s ease;width:48px}.quick-btn:hover:not(:disabled){background:#eff6ff;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;color:#3b82f6;transform:scale(1.05)}.quick-btn:active:not(:disabled){transform:scale(.95)}.quick-btn:disabled{cursor:not-allowed;opacity:.4;transform:none}.slider-container{flex:1 1;max-width:300px;position:relative}.percent-range-slider{cursor:pointer;height:20px;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:10}.slider-track{background:#e5e7eb;height:6px;margin-top:7px}.slider-progress,.slider-track{border-radius:3px;position:relative}.slider-progress{background:linear-gradient(90deg,#3b82f6,#8b5cf6 50%,#06b6d4);height:100%;transition:width .2s ease}.slider-progress:after{background:#fff;border:2px solid #3b82f6;border-radius:50%;box-shadow:0 2px 4px #0000001a;content:"";height:12px;position:absolute;right:-6px;top:-3px;width:12px}.manual-input{margin-top:16px;text-align:center}.manual-percent-input{background:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#1f2937;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:16px;font-weight:500;padding:8px 12px;text-align:center;transition:border-color .2s ease;width:80px}.manual-percent-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.input-label{color:#9ca3af;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:400;margin-top:4px}@media (max-width:768px){.page{padding:16px}.page-content{margin:0;max-width:none;padding:20px 16px}.form-group{margin-bottom:20px}input[type=date],select{font-size:16px;padding:12px 16px}.percent-card{margin-bottom:16px;padding:16px}.percent-main-display{margin-bottom:12px}.percent-number{font-size:32px}.percent-unit{font-size:18px}.quick-controls{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:12px}.slider-container{flex:1 1;max-width:200px;min-width:150px}.quick-btn{font-size:16px;height:48px;touch-action:manipulation;width:48px}.manual-percent-input{font-size:16px;padding:10px 12px;width:70px}.btn-primary{border-radius:8px;font-size:16px;margin-top:24px;padding:14px 20px}.form-row{flex-direction:column;gap:16px}.form-row .form-group{margin-bottom:0;width:100%}h2{font-size:20px;margin-bottom:20px}.form-hint{font-size:13px;margin-top:6px}.current-date-display{font-size:16px;padding:12px 16px}}@media (max-width:480px){.page{padding:8px}.page-content{border-radius:8px;padding:12px 8px}.percent-card{margin-bottom:12px;padding:10px}.percent-number{font-size:24px}.percent-unit{font-size:14px}.quick-controls{flex-wrap:nowrap;gap:8px}.slider-container{flex:1 1;max-width:150px;min-width:100px}.quick-btn{flex-shrink:0;font-size:14px;height:42px;width:42px}.manual-percent-input{font-size:14px;padding:6px 8px;width:55px}h2{font-size:16px;margin-bottom:12px;text-align:center}button,input,select{min-height:44px}.form-group label{font-weight:600;margin-bottom:6px}}.btn-primary{background:linear-gradient(135deg,#007bff,#0056b3 50%,#004299)!important;border:none!important;border-radius:8px!important;box-shadow:0 4px 12px #007bff4d!important;color:#fff!important;cursor:pointer!important;font-size:18px!important;font-weight:600!important;margin-top:20px!important;overflow:hidden!important;padding:28px 24px!important;position:relative!important;transition:all .3s ease!important;width:100%!important}.btn-primary:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.btn-primary:hover:not(:disabled):before{left:100%}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #007bff66;transform:translateY(-2px)}.btn-primary:active:not(:disabled){box-shadow:0 1px 4px #007bff33;transform:translateY(1px) scale(.98);transition:all .1s ease}.btn-primary:disabled{background:#ccc;box-shadow:none;transform:none}@media (min-width:769px){.percent-card{margin:0 auto 20px;max-width:450px}}.login-form{margin:0 auto;max-width:400px}.login-form .form-group{margin-bottom:30px}.login-form input{border:2px solid #ddd;border-radius:4px;font-size:16px;padding:15px;transition:border-color .3s;width:100%}.login-form input:focus{border-color:#007bff;outline:none}.btn-primary{background-color:#007bff;border:none;border-radius:4px;cursor:pointer;font-size:16px;padding:15px;transition:background-color .3s;width:100%}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-primary:disabled{background-color:#ccc;cursor:not-allowed}.login-info{color:#666;font-size:14px;margin-top:30px;text-align:center}.login-info p{margin:0}.admin-panel{background:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.admin-sidebar{background:linear-gradient(180deg,#2c3e50,#34495e);box-shadow:2px 0 10px #0000001a;color:#fff;display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .3s cubic-bezier(.4,0,.2,1);width:320px;z-index:100}.admin-sidebar-header{border-bottom:1px solid #ffffff1a;display:flex;flex-direction:column;gap:16px;padding:20px}.admin-sidebar-header h1{color:#fff;font-size:20px;font-weight:400;letter-spacing:.5px;margin:0;transition:opacity .3s ease,visibility .3s ease}.sidebar-toggle-btn{align-items:center;background:none;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;display:flex!important;font-size:16px;justify-content:center;min-height:32px;min-width:32px;opacity:1!important;padding:8px;transition:all .3s ease;visibility:visible!important}.sidebar-toggle-btn:hover{background:#ffffff1a;color:#fff}.admin-sidebar-actions{display:flex;flex-direction:column;gap:8px}.admin-sidebar-actions .btn{font-size:12px;padding:8px 12px;width:100%}.admin-sidebar-nav{flex:1 1;padding:20px 0}.nav-tab{align-items:center;background:none;border:none;border-left:4px solid #0000;color:#fffc;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:12px;padding:16px 24px;position:relative;text-align:left;transition:all .3s ease;width:100%}.nav-tab span{transition:opacity .3s ease,visibility .3s ease}.nav-tab i{color:#60a5fa;flex-shrink:0;font-size:1.5rem;text-align:center;width:28px}.nav-tab:hover{background:#ffffff1a;border-left-color:#ffffff4d;color:#fff}.nav-tab.active{background:#3498db33;border-left-color:#3498db;box-shadow:inset 0 2px 4px #0000001a;color:#fff;font-weight:600}.nav-tab.active i{color:#60a5fa}.nav-action,.nav-tab{color:#fff!important}.admin-main{background:#f8f9fa;flex:1 1;margin-left:320px;min-height:100vh;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.admin-content{max-width:none;padding:32px 140px}.section-header{align-items:center;border-bottom:1px solid #e1e8ed;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:12px}.section-header h2{color:#2c3e50;font-size:24px;font-weight:600;letter-spacing:.3px;margin:0}.projects-list,.section-actions{display:flex;gap:12px}.projects-list{flex-direction:column}.project-item{align-items:flex-start;background:#fff;border:1px solid #e1e8ed;border-radius:6px;box-shadow:0 1px 4px #0000000f;display:flex;gap:20px;justify-content:flex-start;padding:16px 20px;text-align:left!important;transition:all .3s ease}.project-item:hover{border-color:#3498db;box-shadow:0 2px 8px #0000001a}.project-info{align-items:flex-start;flex:1 1;flex-direction:column;justify-content:flex-start;text-align:left!important}.project-info h3{color:#2c3e50!important;font-size:16px!important;font-weight:600!important;margin:0 0 4px!important}.project-date,.project-info h3{display:block!important;text-align:left!important;width:100%!important}.project-date{color:#7f8c8d!important;font-size:13px!important}.project-actions{display:flex;gap:8px}.admin-content .projects-section .project-item .project-info h3{margin:0 0 4px!important}.admin-content .projects-section .project-item .project-info .project-date,.admin-content .projects-section .project-item .project-info h3{display:block!important;text-align:left!important;width:100%!important}.nodes-list{display:flex;flex-direction:column;gap:24px}.project-nodes-group{background:#fff;border:1px solid #e1e8ed;border-radius:8px;box-shadow:0 2px 8px #00000014;padding:20px}.project-title{border-bottom:2px solid #3498db;font-size:18px;margin:0 0 16px;padding-bottom:8px}.nodes-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.node-item{align-items:center;background:#f8f9fa;border:1px solid #e1e8ed;border-radius:6px;display:flex;justify-content:space-between;padding:16px;transition:all .3s ease}.node-item:hover{background:#fff;border-color:#3498db;box-shadow:0 2px 8px #00000014}.node-info h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 6px}.node-date{color:#7f8c8d;font-size:12px}.node-actions{display:flex;gap:6px}.no-nodes{color:#7f8c8d;font-style:italic;grid-column:1/-1;padding:40px;text-align:center}.time-summary-table{background:#fff;border:1px solid #e1e8ed;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:hidden}.time-summary-table table{border-collapse:collapse;width:100%}.time-entries-table td,.time-entries-table th,.time-summary-table td,.time-summary-table th{border-bottom:1px solid #e1e8ed;font-size:14px;padding:16px 20px;text-align:center;white-space:nowrap}.time-summary-table th{background:#f8f9fa;border-bottom:2px solid #3498db;color:#2c3e50;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.time-summary-table tbody tr:hover{background:#f8f9fa}.time-entries-table table{border-collapse:collapse;width:100%}.time-entries-table th{background:#f8f9fa;border-bottom:2px solid #3498db;color:#2c3e50;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.time-entries-table tbody tr:hover{background:#f8f9fa}.time-entries-table td,.time-entries-table th{min-width:80px;padding:12px 8px}.no-data{color:#7f8c8d;font-style:italic;padding:60px;text-align:center}.nav-action{border-left:4px solid #0000;cursor:pointer;font-size:14px;opacity:.8;padding:12px 24px;transition:all .3s ease}.nav-action:hover{background:#ffffff1a;border-left-color:#ffffff4d;color:#fff;opacity:1}.btn{align-items:center;border:1px solid #0000;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;letter-spacing:.3px;padding:10px 20px;text-decoration:none;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#3498db,#2980b9);border-color:#3498db;color:#fff}.btn-primary:hover{box-shadow:0 4px 12px #3498db4d;transform:translateY(-2px)}.btn-compact{border-radius:6px!important;display:inline-block!important;font-size:14px!important;font-weight:500!important;min-height:auto!important;min-width:160px!important;padding:14px 28px!important;width:auto!important}.btn-compact:hover{box-shadow:0 2px 8px #3498db33!important;transform:none!important}.btn-danger.btn-compact:hover{box-shadow:0 2px 8px #e74c3c4d!important}.btn-sm{border-radius:4px!important;font-size:12px!important;padding:6px 12px!important}.btn-danger.btn-sm:hover{box-shadow:0 2px 8px #e74c3c4d!important}.btn-secondary{background:linear-gradient(135deg,#95a5a6,#7f8c8d);border-color:#95a5a6;color:#fff}.btn-secondary:hover{background:linear-gradient(135deg,#6c7b7d,#5a6c6f);box-shadow:0 4px 12px #95a5a64d;transform:translateY(-2px)}.btn-secondary.btn-compact:hover,.btn-secondary.btn-sm:hover{box-shadow:0 2px 8px #95a5a64d!important}.btn-success{background:linear-gradient(135deg,#27ae60,#229954);border-color:#27ae60;color:#fff}.btn-success:hover{box-shadow:0 4px 12px #27ae604d;transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg,#e74c3c,#c0392b);border-color:#e74c3c;color:#fff}.btn-danger:hover{background:linear-gradient(135deg,#c0392b,#a93226);box-shadow:0 4px 12px #e74c3c4d;transform:translateY(-2px)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.modal{background:#fff;border:1px solid #fff3;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:600px;min-width:450px;padding:32px}.modal h3{color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 24px}.modal .form-group{margin-bottom:20px}.modal .form-group label{color:#2c3e50;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.modal .form-group input,.modal .form-group select{border:2px solid #e1e8ed;border-radius:6px;font-size:16px;padding:12px 16px;transition:all .2s ease;width:100%}.modal .form-group input:focus,.modal .form-group select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.modal-actions{display:flex;gap:20px;justify-content:center;margin-top:32px}.admin-sidebar.collapsed{width:70px!important}.admin-sidebar.collapsed .admin-sidebar-header{padding:20px 10px}.admin-sidebar.collapsed .admin-sidebar-header h1{display:none}.admin-sidebar.collapsed .admin-sidebar-header>div{align-items:center;justify-content:center;width:100%}.sidebar-toggle-btn{flex-shrink:0;z-index:10}.admin-sidebar.collapsed .sidebar-toggle-btn{margin:0}.admin-sidebar.collapsed .admin-sidebar-nav{align-items:center;padding:10px 0}.admin-sidebar.collapsed .nav-tab{justify-content:center;min-height:48px;padding:14px 0;width:100%}.admin-sidebar.collapsed .nav-tab span{display:none!important}.admin-sidebar.collapsed .nav-tab i{display:block!important;font-size:1.4rem!important;margin:0!important;opacity:1!important;visibility:visible!important;width:auto!important}.admin-main.sidebar-collapsed{margin-left:70px!important}.brigades-section{padding:0}.brigades-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.brigade-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px;transition:all .3s ease}.brigade-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.brigade-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.brigade-header h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.brigade-actions{display:flex;gap:8px}.brigade-actions .btn{font-size:.875rem;padding:6px 12px}.brigade-members h4{color:#374151;font-size:1rem;font-weight:500;margin:0 0 12px}.brigade-members ul{list-style:none;margin:0;padding:0}.brigade-members li{border-bottom:1px solid #f3f4f6;color:#6b7280;font-size:.875rem;padding:6px 0}.brigade-members li:last-child{border-bottom:none}.member-input-row{align-items:center;display:flex;gap:8px;margin-bottom:8px}.member-input-row input{border:1px solid #d1d5db;border-radius:6px;flex:1 1;font-size:.875rem;padding:8px 12px}.member-input-row input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.member-input-row .btn{min-width:auto;padding:8px 12px;white-space:nowrap}.warning-message{align-items:flex-start;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:16px}.warning-icon{color:#dc2626;font-size:24px;margin-top:2px}.warning-message p{color:#991b1b;font-weight:500;line-height:1.5;margin:0}.warning-message strong{color:#dc2626}.project-modal{max-width:500px}.modal-header{border-bottom:1px solid #00000014;margin-bottom:24px;padding-bottom:20px;text-align:center}.modal-icon{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:50%;box-shadow:0 4px 12px #3498db4d;display:inline-flex;height:60px;justify-content:center;margin-bottom:16px;width:60px}.modal-icon i{color:#fff;font-size:24px}.modal-header h3{color:#2c3e50;font-size:24px;font-weight:700;margin:0 0 8px}.modal-subtitle{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.modal-body{padding:0}.input-wrapper{margin-top:8px;position:relative}.input-wrapper input{padding-right:50px!important}.input-icon{color:#9ca3af;font-size:16px;pointer-events:none;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.input-hint{color:#9ca3af;font-size:12px;font-style:italic;margin-top:6px}.field-error{align-items:center;color:#dc2626;display:flex;font-size:13px;font-weight:500;gap:4px;margin-top:6px}.field-error:before{content:"⚠️";font-size:14px}.nodes-section{padding:0}.header-content{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.header-title{gap:16px}.header-title,.title-icon{align-items:center;display:flex}.title-icon{background:linear-gradient(135deg,#3498db,#2980b9);border-radius:12px;color:#fff;font-size:20px;height:48px;justify-content:center;width:48px}.header-title h2{color:#2c3e50;font-size:28px;font-weight:700;margin:0 0 4px}.section-subtitle{color:#6b7280;font-size:16px;font-weight:400;margin:0}.header-stats{display:flex;gap:24px}.stat-item{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:1px solid #e5e7eb;border-radius:12px;padding:16px 20px;text-align:center}.stat-number{color:#3498db;display:block;font-size:24px;font-weight:700;margin-bottom:4px}.stat-label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.nodes-content{margin-top:32px}.projects-overview h3{color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 24px}.projects-list{border-radius:16px;box-shadow:0 2px 8px #0000000a}.projects-list .list-header,.projects-list .list-row{grid-template-columns:3fr 1fr 1fr}.projects-list .list-row{cursor:pointer}.project-row:hover{background:#f8fafc!important}.project-info{gap:12px}.project-icon,.project-info{align-items:center;display:flex}.project-icon{background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:6px;color:#fff;flex-shrink:0;font-size:14px;height:32px;justify-content:center;width:32px}.project-title{color:#2c3e50;font-size:16px;font-weight:600}.count-badge{align-items:center;background:#e3f2fd;border-radius:20px;color:#1976d2;display:inline-flex;font-size:13px;font-weight:600;justify-content:center;padding:6px 12px}.project-row .actions{justify-content:flex-end}.project-row .btn{white-space:nowrap}.nodes-detailed-view{margin-top:24px}.nodes-controls{align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;display:flex;justify-content:space-between;margin-bottom:24px;padding:20px}.search-box{flex:1 1;max-width:400px;position:relative}.search-box i{color:#9ca3af;font-size:14px;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:10px 12px 10px 36px;transition:border-color .2s;width:100%}.search-box input:focus{border-color:#3498db;outline:none}.view-toggles{display:flex;gap:8px}.view-toggle{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.view-toggle:hover{border-color:#3498db;color:#3498db}.view-toggle.active{background:#3498db;border-color:#3498db;color:#fff}.nodes-list-view{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 8px #0000000a;overflow:hidden}.list-header{grid-gap:20px;background:#f8fafc;border-bottom:1px solid #e5e7eb;color:#374151;display:grid;font-size:14px;font-weight:600;gap:20px;grid-template-columns:3fr 1.5fr 1fr 1fr;letter-spacing:.5px;padding:16px 24px;text-transform:uppercase}.list-col{align-items:center;display:flex}.list-row{grid-gap:20px;border-bottom:1px solid #f3f4f6;display:grid;gap:20px;grid-template-columns:3fr 1.5fr 1fr 1fr;padding:20px 24px;transition:background-color .2s}.list-row:hover{background:#f8fafc}.list-row:last-child{border-bottom:none}.node-info{gap:16px}.node-info,.node-list-icon{align-items:center;display:flex}.node-list-icon{background:linear-gradient(135deg,#3498db,#2980b9);border-radius:8px;color:#fff;flex-shrink:0;font-size:14px;height:36px;justify-content:center;width:36px}.node-list-name{color:#2c3e50;font-size:16px;font-weight:600;margin-bottom:2px}.node-list-project{color:#6b7280;font-size:12px}.list-col.date{color:#6b7280;font-size:14px}.list-col.date i{margin-right:8px;text-align:center;width:14px}.status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase}.status-badge.active{background:#ecfdf5;color:#10b981}.status-badge.active i{font-size:6px}.list-col.actions{display:flex;gap:8px;justify-content:flex-end}.all-nodes-view{margin-top:24px}.view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.view-header h3{color:#2c3e50;font-size:20px;font-weight:600;margin:0}.header-actions{align-items:center;display:flex}.total-count{background:linear-gradient(135deg,#3498db,#2980b9);border-radius:20px;color:#fff;font-size:14px;font-weight:600;padding:6px 12px}.filter-controls{margin-bottom:20px}.filter-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:14px;min-width:200px;padding:8px 12px}.filter-select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.all-nodes-list .list-header,.all-nodes-list .list-row{grid-template-columns:2.5fr 1.5fr 1.2fr .8fr 1fr}.node-list-subtitle{color:#9ca3af;font-size:11px;margin-top:2px}.project-badge-list{background:#f3f4f6;border-radius:12px;color:#374151;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.grouped-nodes-view{background:#f8fafc;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-top:24px;padding:20px}.stats-info{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:24px}.grouped-nodes-list{margin-top:16px}.project-group{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:20px;overflow:hidden;transition:box-shadow .2s ease}.project-group:hover{box-shadow:0 2px 8px #00000014}.project-group-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:2px 20px}.project-group-title,.project-group-title>div{align-items:center;display:flex;flex:1 1;gap:12px}.project-group-title>div{flex-wrap:wrap}.project-group-icon{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3 50%,#004299);border-radius:6px;box-shadow:0 2px 4px #3498db33;color:#fff;display:flex;font-size:14px;height:32px;justify-content:center;width:32px}.project-group-title h4{color:#1e293b;font-size:16px;font-weight:600;margin:0}.project-node-count{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;color:#64748b;font-size:13px;font-weight:500;margin-left:12px;padding:4px 12px}.project-group-actions{display:flex;gap:6px}.project-group-actions .btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;display:flex;font-size:14px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.project-group-actions .btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569;transform:translateY(-1px)}.project-nodes-list{padding:0}.node-item-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:12px 20px;transition:background-color .15s ease}.node-item-row:hover{background:#f8fafc}.node-item-row:last-child{border-bottom:none}.node-item-info{align-items:center;display:flex;flex:1 1;gap:12px}.node-item-icon{align-items:center;background:#e2e8f0;border-radius:6px;color:#64748b;display:flex;flex-shrink:0;font-size:12px;height:28px;justify-content:center;transition:all .2s ease;width:28px}.node-item-row:hover .node-item-icon{background:#cbd5e1;color:#475569}.node-item-details{flex:1 1}.node-item-name{color:#374151;font-size:14px;font-weight:500;line-height:1.4;margin-bottom:4px;text-align:left}.node-item-meta{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.node-item-date,.node-item-status{align-items:center;color:#6b7280;display:flex;font-size:12px;font-weight:400;gap:6px}.node-item-date i{color:#94a3b8;font-size:11px;text-align:center;width:14px}.node-item-status i{align-items:center;background:currentColor;border-radius:50%;color:#10b981;display:flex;font-size:6px;height:6px;justify-content:center;width:6px}.node-item-status i:before{background:#fff;border-radius:50%;content:"";height:2px;width:2px}.node-item-actions{display:flex;flex-shrink:0;gap:4px}.node-item-actions .btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:4px;color:#6b7280;display:flex;font-size:12px;height:28px;justify-content:center;padding:0;transition:all .2s ease;width:28px}.node-item-actions .btn:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.node-item-actions .btn.btn-secondary:hover{background:#fefce8;border-color:#fcd34d;color:#d97706}.empty-project-nodes{background:#f8fafc;border-radius:0 0 8px 8px;color:#94a3b8;padding:32px 20px;text-align:center}.empty-project-nodes i{color:#cbd5e1;display:block;font-size:36px;margin-bottom:12px}.empty-project-nodes span{color:#64748b;display:block;font-size:14px;margin-bottom:12px}.empty-project-nodes .btn{background:#64748b;border-color:#64748b;border-radius:6px;color:#fff;font-size:14px;margin-top:8px;padding:8px 16px;transition:all .2s ease}.empty-project-nodes .btn:hover{background:#475569;border-color:#475569;transform:translateY(-1px)}.empty-state{background:#fff;border:2px dashed #e5e7eb;border-radius:16px;grid-column:1/-1;padding:60px 20px;text-align:center}.empty-state-icon{color:#d1d5db;font-size:48px;margin-bottom:16px}.empty-state h3{color:#6b7280;font-size:20px;font-weight:600;margin:0 0 8px}.empty-state p{color:#9ca3af;font-size:14px;margin:0 auto 24px;max-width:400px}@media (max-width:768px){.grouped-nodes-view{margin-top:16px}.stats-info{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:12px}.project-group{border-radius:8px;margin-bottom:12px}.project-group-header{align-items:flex-start;flex-direction:column;gap:8px;padding:2px 20px}.project-group-title{width:100%}.project-node-count{margin-left:0;margin-top:2px}.node-item-row{align-items:flex-start;flex-direction:column;gap:8px;padding:10px 16px}.node-item-info{width:100%}.node-item-actions{border-top:1px solid #f3f4f6;justify-content:center;padding-top:8px;width:100%}.empty-project-nodes{padding:12px 16px}}.form-group label{align-items:center;color:#374151;display:flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:8px}.form-group label i{color:#3498db;font-size:16px}.create-project-btn{align-items:center!important;box-sizing:border-box!important;display:flex!important;font-size:13px!important;height:46px!important;justify-content:center!important;margin:0!important;padding:0!important;width:180px!important}.create-project-btn:hover{box-shadow:none!important;transform:none!important}.create-project-btn.btn-primary:hover{background:linear-gradient(135deg,#2980b9,#1f5f99)!important}.create-project-btn.btn-secondary:hover{background:linear-gradient(135deg,#6c7b7d,#5a6c6f)!important}.create-project-btn:active{transform:scale(.98)!important;transition:transform .1s ease!important}.statistics-page{background:#f8f9fa;min-height:calc(100vh - 60px);padding:24px}.statistics-page .section-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:16px}.statistics-page .section-header h2{color:#1f2937;font-size:28px;font-weight:600;margin:0}.projects-statistics{display:flex;flex-direction:column;gap:32px}.project-statistics-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.project-statistics-header{border-bottom:2px solid #e5e7eb;margin-bottom:24px;padding-bottom:16px}.project-statistics-header h3{color:#1f2937;font-size:22px;font-weight:600;margin:0}.project-main-chart{background:#fafafa;border-radius:8px;margin-bottom:32px;padding:16px;position:relative;transition:box-shadow .3s ease,transform .2s ease}.project-main-chart.clickable{cursor:pointer}.project-main-chart.clickable:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.project-chart-hint{align-items:center;background:#fffffff2;border-radius:6px;bottom:20px;box-shadow:0 2px 8px #0000001a;color:#6b7280;display:flex;font-size:12px;gap:6px;opacity:0;padding:6px 12px;position:absolute;right:20px;transition:opacity .3s ease}.project-main-chart.clickable:hover .project-chart-hint{opacity:1}.project-nodes-charts{margin-top:32px}.project-nodes-charts h4{border-bottom:1px solid #e5e7eb;color:#374151;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:12px}.nodes-charts-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.node-chart-container{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px;position:relative;transition:box-shadow .3s ease,transform .2s ease}.node-chart-container.clickable{cursor:pointer}.node-chart-container.clickable:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.node-chart-hint{align-items:center;background:#ffffffe6;border-radius:4px;bottom:8px;color:#6b7280;display:flex;font-size:11px;gap:4px;opacity:0;padding:4px 8px;position:absolute;right:8px;transition:opacity .3s ease}.node-chart-container.clickable:hover .node-chart-hint{opacity:1}.node-chart-title{border-bottom:1px solid #e5e7eb;color:#374151;font-size:14px;font-weight:600;margin-bottom:12px;padding-bottom:8px;text-align:center}.no-data-message{align-items:center;color:#9ca3af;display:flex;font-size:16px;font-weight:500;justify-content:center;min-height:200px}.no-data-message.small{font-size:14px;min-height:150px}.no-nodes-message{color:#9ca3af;font-size:14px;padding:20px;text-align:center}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:40px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#3498db;height:48px;margin-bottom:16px;width:48px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-container p{color:#6b7280;font-size:16px;margin:0}.node-chart-modal-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.node-chart-modal{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;overflow:hidden;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.node-chart-modal-header{align-items:center;background:#f9fafb;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px;position:relative}.node-chart-modal-header h3{color:#1f2937;flex:1 1;font-size:20px;font-weight:600;margin:0}.node-chart-modal-header h4{color:#6b7280;flex:1 1;font-size:16px;font-weight:500;margin:0 0 0 16px}.node-chart-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:40px;justify-content:center;padding:8px;position:absolute;right:16px;top:16px;transition:all .2s ease;width:40px}.node-chart-modal-close:hover{background:#e5e7eb;color:#1f2937}.node-chart-modal-content{background:#fafafa;flex:1 1;overflow-y:auto;padding:24px}
/*# sourceMappingURL=main.74c8ac19.css.map*/