:root{--color-bg-primary: #f5f6fa;--color-bg-secondary: #ffffff;--color-text-primary: #2c3e50;--color-text-secondary: #7f8c8d;--color-border: #dfe6e9;--color-primary: #3498db;--color-success: #27ae60;--color-danger: #e74c3c;--color-warning: #f39c12}html,body{width:100%;height:100%;overflow:hidden}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px}#root{width:100%;height:100vh;overflow:hidden}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:6px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary);color:#fff}@media(max-width:768px){body{font-size:14px}h1{font-size:1.75rem}h2{font-size:1.35rem}h3{font-size:1.15rem}}@media(min-width:769px)and (max-width:1024px){body{font-size:14px}}@media(min-width:1025px){body{font-size:14px}}@media(min-width:1440px){body{font-size:15px}}.App{width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column;background:#f5f6fa}.desktop-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.desktop-header{background:#2c3e50;color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a;flex-shrink:0;z-index:100}.desktop-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px;background:#f5f6fa}.desktop-sidebar{width:280px;background:#34495e;color:#fff;flex-shrink:0;overflow-y:auto;box-shadow:2px 0 8px #0000001a}.desktop-main{flex:1;display:flex;overflow:hidden}.btn-desktop{padding:12px 24px;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.5px;font-family:inherit}.btn-desktop-primary{background:#3498db;color:#fff;box-shadow:0 4px 12px #3498db4d}.btn-desktop-primary:hover{background:#2980b9;transform:translateY(-2px);box-shadow:0 6px 16px #3498db66}.btn-desktop-danger{background:#e74c3c;color:#fff;box-shadow:0 4px 12px #e74c3c4d}.btn-desktop-danger:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 6px 16px #e74c3c66}.card-desktop{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 8px #00000014;border:1px solid #dfe6e9;margin-bottom:20px}.input-desktop{width:100%;padding:12px 16px;border:2px solid #dfe6e9;border-radius:6px;font-size:.95rem;transition:all .2s;font-family:inherit}.input-desktop:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.table-desktop{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014}.table-desktop th{background:#34495e;color:#fff;padding:14px 16px;text-align:left;font-weight:600;text-transform:uppercase;font-size:.85rem;letter-spacing:.5px}.table-desktop td{padding:14px 16px;border-bottom:1px solid #ecf0f1;color:#2c3e50}.table-desktop tr:hover{background:#f8f9fa}.table-desktop tr:last-child td{border-bottom:none}@media(min-width:769px)and (max-width:1024px){.desktop-sidebar{width:240px}.desktop-content{padding:20px}.desktop-header{padding:14px 20px}.desktop-header h1{font-size:1.35rem}}@media(max-width:768px){.desktop-container,.desktop-main{flex-direction:column}.desktop-sidebar{width:100%;max-height:0;overflow:hidden;transition:max-height .3s ease}.desktop-sidebar.mobile-open{max-height:400px;border-bottom:2px solid #2c3e50}.desktop-header{padding:12px 16px;flex-wrap:wrap;gap:10px}.desktop-header h1{font-size:1.25rem;flex:1;min-width:200px}.desktop-header p{font-size:.8rem;width:100%;margin-top:4px}.desktop-content{padding:16px}.card-desktop{padding:20px;margin-bottom:16px}.btn-desktop{padding:10px 18px;font-size:.9rem}.table-desktop{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-desktop thead,.table-desktop tbody,.table-desktop tr{display:block}.table-desktop thead{position:sticky;top:0;z-index:10}.table-desktop th,.table-desktop td{display:block;width:100%;padding:12px;text-align:left}.table-desktop th{border-bottom:2px solid rgba(255,255,255,.2)}.table-desktop td{border-bottom:1px solid #ecf0f1;padding-left:16px}.table-desktop td:before{content:attr(data-label) ": ";font-weight:600;display:inline-block;width:120px;color:#7f8c8d}}@media(max-width:480px){.desktop-header{padding:10px 12px}.desktop-header h1{font-size:1.1rem}.desktop-content{padding:12px}.card-desktop{padding:16px}.btn-desktop{padding:10px 16px;font-size:.85rem;width:100%;margin-top:8px}.input-desktop{padding:10px 14px;font-size:16px}}.mobile-only{display:none}.desktop-only{display:block}@media(max-width:768px){.mobile-only{display:block}.desktop-only{display:none}}.mobile-menu-toggle{display:none;background:transparent;border:2px solid white;color:#fff;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:1.2rem}@media(max-width:768px){.mobile-menu-toggle{display:block}}.modal-card-head{background:#2c3e50!important;border-bottom:none}.modal-card-title{color:#fff!important}.modal-card-head .delete{background-color:#fff3}.modal-card-head .delete:hover{background-color:#ffffff4d}.modal-card-head .delete:before,.modal-card-head .delete:after{background-color:#fff}.modal-card-head .tag{background-color:#fff3;color:#fff}.modal-card-head .tag.is-warning{background-color:#f39c12;color:#fff}.modal-card-head .tag.is-info{background-color:#3498db;color:#fff}.login-container.hero{background:linear-gradient(135deg,#2c3e50,#34495e)}.login-box{box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1)}.login-box .title{color:#2c3e50}.login-box .subtitle{text-transform:uppercase;letter-spacing:2px}.login-box .label{text-transform:uppercase;letter-spacing:.5px;font-size:.95rem}.role-selector-container.hero{background:linear-gradient(135deg,#2c3e50,#34495e);min-height:100vh;padding:2rem 1rem;overflow-y:auto;overflow-x:hidden}.role-selector-box{width:auto;max-width:100%;overflow:visible!important}@media(max-width:768px){.role-selector-container.hero{min-height:auto;padding:1rem .75rem;overflow-y:visible;height:auto}.role-selector-container .hero-body{padding:1.5rem 0}}.role-card{cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;display:flex;flex-direction:column}.role-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3498db,#2980b9);transform:scaleX(0);transition:transform .3s;z-index:2}.role-card:hover:not(.role-card-disabled){transform:translateY(-8px)}.role-card:hover:not(.role-card-disabled):before{transform:scaleX(1)}.role-card-disabled{opacity:.6;cursor:not-allowed!important}.role-card-disabled:hover{transform:none!important}.role-card-disabled:before{display:none}.role-icon{font-size:4rem;line-height:1}.roles-grid{align-items:stretch}.roles-grid .column{display:flex;flex-direction:column;margin-bottom:1.5rem}.role-card{width:100%;flex:1 1 auto;display:flex;flex-direction:column;height:100%;overflow:visible!important}.role-card>div{display:flex;flex-direction:column;flex-grow:1;width:100%;position:relative;z-index:1;min-height:0}.role-card .notification{flex-shrink:0;word-wrap:break-word;overflow-wrap:break-word;white-space:normal;overflow:visible}.role-card.box{overflow:visible!important;min-height:fit-content}.role-card .field,.role-card .notification,.role-card .content{flex-shrink:0;overflow:visible}@media(max-width:768px){.role-icon{font-size:3rem}}@media(max-width:480px){.role-icon{font-size:2.5rem}}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-small{width:400px}.modal-medium{width:500px}.modal-large{width:600px}.modal-header{padding:20px 24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-title-wrapper{display:flex;align-items:center;gap:12px}.modal-icon{font-size:1.5rem;display:flex;align-items:center}.modal-icon-info{color:#3498db}.modal-icon-success{color:#27ae60}.modal-icon-warning{color:#f39c12}.modal-icon-error{color:#e74c3c}.modal-icon-confirm{color:#3498db}.modal-icon-prompt{color:#9b59b6}.modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#2c3e50}.btn-close-x{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-close-x:hover{background:#ecf0f1;color:#2c3e50}.modal-body{padding:24px;overflow-y:auto;flex:1;color:#34495e;line-height:1.6}.modal-prompt-input{margin-top:16px}.modal-prompt-input input{width:100%;padding:12px;border:2px solid #ddd;border-radius:6px;font-size:1rem;transition:all .2s;box-sizing:border-box}.modal-prompt-input input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}.btn-cancel,.btn-confirm{padding:10px 20px;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel{background:#95a5a6;color:#fff}.btn-cancel:hover{background:#7f8c8d}.btn-confirm{background:#3498db;color:#fff}.btn-confirm:hover{background:#2980b9}.btn-confirm-success{background:#27ae60}.btn-confirm-success:hover{background:#229954}.btn-confirm-warning{background:#f39c12}.btn-confirm-warning:hover{background:#e67e22}.btn-confirm-error{background:#e74c3c}.btn-confirm-error:hover{background:#c0392b}.btn-confirm-confirm{background:#3498db}.btn-confirm-confirm:hover{background:#2980b9}.btn-confirm-prompt{background:#9b59b6}.btn-confirm-prompt:hover{background:#8e44ad}.modal-info{border-top:4px solid #3498db}.modal-success{border-top:4px solid #27ae60}.modal-warning{border-top:4px solid #f39c12}.modal-error{border-top:4px solid #e74c3c}.modal-confirm{border-top:4px solid #3498db}.modal-prompt{border-top:4px solid #9b59b6}@media(max-width:768px){.modal-backdrop{padding:10px}.modal-content{max-width:95vw;max-height:95vh}.modal-small,.modal-medium,.modal-large{width:90vw;max-width:500px}.modal-header{padding:16px 20px}.modal-title{font-size:1.1rem}.modal-body{padding:20px}.modal-footer{padding:12px 20px;flex-direction:column;gap:8px}.modal-footer button{width:100%}}@media(max-width:480px){.modal-backdrop{padding:0}.modal-content{max-width:100vw;max-height:100vh;border-radius:0}.modal-small,.modal-medium,.modal-large{width:100vw;max-width:100vw}.modal-header{padding:12px 16px}.modal-title{font-size:1rem}.modal-icon{font-size:1.2rem}.modal-body{padding:16px;font-size:.9rem}.modal-footer{padding:12px 16px}.btn-cancel,.btn-confirm{padding:12px 16px;font-size:.9rem}}
