*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;background:#f5f5f5;color:#222;line-height:1.6}.app{max-width:900px;margin:0 auto;padding:2rem 1rem}nav{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:2px solid #e0e0e0;margin-bottom:2rem}nav .brand{font-weight:700;font-size:1.25rem;margin-right:auto}nav button,nav .tab{background:none;border:none;font-size:.95rem;cursor:pointer;padding:.4rem .8rem;border-radius:6px;color:#555;transition:background .15s}nav button:hover,nav .tab:hover{background:#e0e0e0}nav .tab.active{background:#333;color:#fff}.login-btn{background:#4285f4!important;color:#fff!important;font-weight:600}.login-btn:hover{background:#3367d6!important}.logout-btn{color:#c0392b!important}.page{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.about h1{margin-bottom:.5rem}.about p{max-width:600px;color:#555}.dashboard h2{margin-bottom:1rem}.service-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1.25rem;margin-bottom:1rem}.service-card h3{margin-bottom:.25rem}.service-card .response{margin-top:.75rem;padding:.75rem;background:#f0f0f0;border-radius:4px;font-family:monospace;font-size:.9rem;white-space:pre-wrap}.service-card button{margin-top:.75rem;padding:.5rem 1rem;background:#333;color:#fff;border:none;border-radius:6px;cursor:pointer}.service-card button:hover{background:#555}.user-info{font-size:.85rem;color:#777}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;margin-right:.5rem;margin-bottom:.5rem}.badge-hidden{background:#ffeeba;color:#856404}.badge-restricted{background:#f8d7da;color:#721c24}.btn-request{background:#e67e22!important}.btn-request:hover{background:#d35400!important}.btn-pending{background:#95a5a6!important;cursor:not-allowed}.back-btn{background:none;border:none;color:#4285f4;cursor:pointer;font-size:.95rem;padding:0}.back-btn:hover{text-decoration:underline}nav a{text-decoration:none}.admin section h3{margin-bottom:.75rem}.admin-filters{display:flex;gap:.75rem;margin-bottom:.75rem}.admin-search{flex:1;padding:.45rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem;outline:none}.admin-search:focus{border-color:#4285f4}.edit-btn{background:none;border:none;cursor:pointer;font-size:.8rem;padding:0 .3rem;margin-left:.3rem;opacity:.6}.edit-btn:hover{opacity:1}.date-cell{font-size:.8rem;color:#777;white-space:nowrap}.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.admin-table th,.admin-table td{padding:.6rem 1rem;text-align:left;border-bottom:1px solid #eee;font-size:.9rem}.admin-table th{background:#f8f8f8;font-weight:600}.toggle{padding:.25rem .6rem;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600}.toggle.on{background:#27ae60;color:#fff}.toggle.off{background:#e0e0e0;color:#555}.action-btns{display:flex;gap:.5rem}.btn-approve{background:#27ae60;color:#fff;border:none;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-deny{background:#c0392b;color:#fff;border:none;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}.account-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1.5rem}.account-field{display:flex;align-items:center;padding:.5rem 0;border-bottom:1px solid #f0f0f0}.account-field:last-child{border-bottom:none}.account-field label{font-weight:600;font-size:.85rem;color:#555;width:140px;flex-shrink:0}.account-field span{font-size:.95rem}.role-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.role-admin{background:#e8daef;color:#6c3483}.role-user{background:#d5f5e3;color:#1e8449}.role-select{padding:.25rem .5rem;border:1px solid #ccc;border-radius:4px;font-size:.8rem;cursor:pointer}.pw-form label{display:block;font-size:.85rem;font-weight:600;color:#444;margin-bottom:.75rem}.pw-form input{display:block;width:100%;max-width:350px;margin-top:.25rem;padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem}.pw-form input:focus{border-color:#4285f4;outline:none}.pw-success{color:#27ae60;font-size:.85rem;margin-bottom:.5rem}.pw-form .signin-submit{max-width:350px}.pw-form h3,.account-card h3{margin-bottom:1rem}.user-name-link{font-size:.85rem;color:#555;text-decoration:none;padding:.3rem .6rem;border-radius:6px;transition:background .15s}.user-name-link:hover{background:#e0e0e0}.user-name-link.active{background:#333;color:#fff}.forgot-link{color:#4285f4;font-size:.85rem}.signin-page{display:flex;justify-content:center}.signin-card{background:#fff;border:1px solid #ddd;border-radius:12px;padding:2rem;width:100%;max-width:400px}.signin-card h2{margin-bottom:.25rem}.signin-subtitle{color:#777;margin-bottom:1.5rem;font-size:.95rem}.signin-card label{display:block;font-size:.85rem;font-weight:600;color:#444;margin-bottom:.75rem}.signin-card input{display:block;width:100%;margin-top:.25rem;padding:.6rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:.95rem;outline:none;transition:border .15s}.signin-card input:focus{border-color:#4285f4}.signin-error{color:#c0392b;font-size:.85rem;margin-bottom:.5rem}.signin-submit{width:100%;padding:.65rem;background:#333;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:.25rem}.signin-submit:hover{background:#555}.signin-submit:disabled{opacity:.6;cursor:not-allowed}.signin-divider{display:flex;align-items:center;margin:1.25rem 0;color:#aaa;font-size:.85rem}.signin-divider:before,.signin-divider:after{content:"";flex:1;border-top:1px solid #ddd}.signin-divider span{margin:0 .75rem}.google-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.6rem;background:#fff;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-weight:500;color:#333;text-decoration:none;cursor:pointer;transition:background .15s}.google-btn:hover{background:#f5f5f5}.signin-toggle{text-align:center;margin-top:1.25rem;font-size:.85rem;color:#777}.signin-toggle button{background:none;border:none;color:#4285f4;font-weight:600;cursor:pointer;font-size:.85rem}.signin-toggle button:hover{text-decoration:underline}.deployment-panel{margin-top:1rem}.deployment-status{margin-bottom:.75rem;font-size:1.05rem}.deploy-badge{padding:.2em .6em;border-radius:4px;font-weight:600;font-size:.9rem}.deploy-not_created{background:#6c757d;color:#fff}.deploy-provisioning{background:#ffc107;color:#333}.deploy-running{background:#28a745;color:#fff}.deploy-error{background:#dc3545;color:#fff}.deploy-not_configured{background:#6c757d;color:#fff}.deploy-error{color:#dc3545;margin:.5rem 0}.deployment-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.deployment-actions button{padding:.5rem 1rem;cursor:pointer;border-radius:4px;border:1px solid #ccc}.danger-btn{background:#dc3545!important;color:#fff!important;border-color:#dc3545!important}.danger-btn:hover{background:#c82333!important}.open-link{display:inline-block;padding:.5rem 1rem;background:#0d6efd;color:#fff;border-radius:4px;text-decoration:none}.open-link:hover{background:#0b5ed7}.site-footer{margin-top:3rem;padding:1.5rem 0;border-top:1px solid #e0e0e0;text-align:center;color:#888;font-size:.85rem}.site-footer a{color:#4285f4;text-decoration:none}.site-footer a:hover{text-decoration:underline}
