*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f4f5f7;color:#1a1d21}.shell{display:flex;min-height:100vh}.sidebar{width:220px;background:#1a1d21;color:#fff;display:flex;flex-direction:column;padding:1.5rem 1rem}.sidebar .brand{font-weight:700;font-size:1.1rem;margin-bottom:2rem}.sidebar nav{display:flex;flex-direction:column;gap:.5rem;flex:1}.sidebar nav a{color:#c9ccd1;text-decoration:none;padding:.5rem .75rem;border-radius:6px}.sidebar nav a.active,.sidebar nav a:hover{background:#2c3038;color:#fff}.sidebar .user{font-size:.85rem;color:#9aa0a8;display:flex;flex-direction:column;gap:.5rem}.sidebar .user button{background:none;border:1px solid #444;color:#c9ccd1;border-radius:6px;padding:.3rem .6rem;cursor:pointer}.content{flex:1;padding:2rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.card{background:#fff;border-radius:10px;padding:1rem 1.25rem;box-shadow:0 1px 3px #00000014;border-left:4px solid #9aa0a8}.card.status-running{border-left-color:#2f9e44}.card.status-down{border-left-color:#e03131}.card.status-deploying{border-left-color:#f08c00}.card h2{margin:0 0 .5rem;font-size:1.05rem}.card .url a{color:#1971c2}.card .status{font-weight:600}.card .meta{color:#6b7280;font-size:.85rem;margin:.15rem 0}table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}th,td{text-align:left;padding:.6rem .9rem;border-bottom:1px solid #e9ecef;vertical-align:middle}th{background:#f1f3f5;font-size:.85rem;text-transform:uppercase;color:#6b7280}button{font-family:inherit;line-height:1.2}.hint{color:#6b7280;margin-bottom:1rem}.error{color:#e03131}.loading{padding:3rem;text-align:center;color:#6b7280}.deploy-cell{display:flex;gap:.4rem;align-items:center;flex-wrap:nowrap}.deploy-cell input{width:110px;padding:.4rem .5rem;border:1px solid #ced4da;border-radius:6px;height:2.1rem}.deploy-cell button{padding:0 .8rem;height:2.1rem;min-width:6.5rem;border:none;border-radius:6px;background:#1971c2;color:#fff;cursor:pointer;white-space:nowrap;flex-shrink:0}.deploy-cell button:disabled{background:#adb5bd;cursor:not-allowed}.deploy-cell button+button{background:#495057}.deploy-cell button+button:disabled{background:#adb5bd}.deploy-panel{margin-top:1.5rem;background:#1a1d21;color:#e9ecef;border-radius:10px;padding:1rem 1.25rem}.deploy-panel-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.deploy-panel-header button{margin-left:auto;background:#2c3038;color:#c9ccd1;border:none;border-radius:6px;padding:.3rem .7rem;cursor:pointer}.deploy-log{max-height:360px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,monospace;font-size:.8rem;margin:0}.badge{padding:.1rem .6rem;border-radius:999px;font-size:.75rem;text-transform:uppercase}.badge-running{background:#f08c00;color:#1a1d21}.badge-success{background:#2f9e44;color:#fff}.badge-failed{background:#e03131;color:#fff}.provision-form{display:flex;flex-direction:column;gap:.9rem;max-width:480px;background:#fff;padding:1.5rem;border-radius:10px}.provision-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#495057}.provision-form input,.provision-form select{padding:.5rem .6rem;border:1px solid #ced4da;border-radius:6px;font-size:.95rem}.provision-form button{margin-top:.5rem;padding:.6rem;border:none;border-radius:6px;background:#1971c2;color:#fff;font-weight:600;cursor:pointer}.provision-form button:disabled{background:#adb5bd}.provision-form .checkbox-label{flex-direction:row!important;align-items:center;gap:.5rem!important}.provision-form .checkbox-label input{width:auto}.sidebar nav a[target=_blank]{color:#9aa0a8;font-size:.85rem}.help section{background:#fff;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1rem}.help h2{margin-top:0;font-size:1.05rem}.help ul{padding-left:1.2rem;line-height:1.6}.help code{background:#f1f3f5;padding:.1rem .35rem;border-radius:4px;font-size:.9em}.toast-host{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000;max-width:360px}.toast{padding:.75rem 1rem;border-radius:8px;color:#fff;font-size:.9rem;box-shadow:0 6px 20px #0000002e;cursor:pointer;animation:toast-in .15s ease-out}.toast-success{background:#2f9e44}.toast-error{background:#e03131}@keyframes toast-in{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}
