*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--color-bg-base);color:var(--color-text-secondary);min-height:100vh}.screen{min-height:100vh}.hidden{display:none!important}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.login-container h1{font-size:var(--font-size-3xl);margin-bottom:1rem;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-glow) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-bottom:2rem}.help-text{margin-top:1rem;color:var(--color-text-faint)}.help-text a{color:var(--color-accent);text-decoration:none}.help-text a:hover{text-decoration:underline}.dashboard-header{background:var(--color-bg-card);border-bottom:1px solid var(--color-border);padding:1rem 2rem}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{font-size:var(--font-size-xl);background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-glow) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-title-row{display:flex;align-items:center}.header-actions{display:flex;align-items:center;gap:1rem}.user-email{color:var(--color-text-muted);font-size:var(--font-size-md)}.dashboard-main{max-width:1400px;margin:0 auto;padding:2rem}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.subscription-panel{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#0c1418;border:1px solid #1a2a32;border-radius:var(--radius-md);padding:1rem 1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.subscription-panel.attention{border-color:#630;background:#1a0e00}.subscription-panel-text{flex:1 1 auto;min-width:0}.cancel-warning{background:#ffaa4414;border:1px solid rgba(255,170,68,.4);color:var(--color-warning);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-top:.75rem;line-height:var(--line-height-normal)}.subscription-status-line{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.subscription-subtext{color:var(--color-text-subtle);font-size:var(--font-size-sm);margin-top:.25rem}.subscription-subtext:empty{display:none}.subscription-error{color:var(--color-error);font-size:var(--font-size-md);background:#ff6b6b14;border:1px solid rgba(255,107,107,.2);padding:.5rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem}.primary-btn{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-glow) 100%);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00ccff4d}.primary-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.secondary-btn{background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast)}.secondary-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.secondary-btn:hover{background:#00ccff1a}.cubes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.state-loading,.state-empty,.state-upgrade,.state-error{grid-column:1 / -1;text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--color-text-faint)}.state-loading:before{content:"";display:block;width:28px;height:28px;margin:0 auto var(--space-sm);border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:state-spin .8s linear infinite}@keyframes state-spin{to{transform:rotate(360deg)}}.state-empty .state-heading,.state-upgrade .state-heading{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.state-empty .state-body,.state-upgrade .state-body{font-size:.95rem;color:var(--color-text-muted);max-width:480px;margin:0 auto;line-height:1.6}.state-upgrade .state-heading{color:var(--color-warning)}.state-error{color:var(--color-error)}.cube-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.cube-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 6px 16px #00ccff1f}.cube-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.cube-card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem}.cube-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-accent);margin-bottom:.5rem}.cube-card-tag{display:inline-block;background:#0cf3;color:var(--color-accent);padding:.25rem .75rem;border-radius:var(--radius-lg);font-size:.8rem}.cube-card-body{color:var(--color-text-muted);font-size:var(--font-size-md);line-height:var(--line-height-normal);max-height:100px;overflow:hidden;position:relative}.cube-card-body:after{content:"";position:absolute;bottom:0;left:0;right:0;height:20px;background:linear-gradient(transparent,var(--color-bg-card))}.cube-card-health{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--color-border);font-size:var(--font-size-sm)}.cube-card-active-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.cube-card-drones{color:var(--color-text-secondary)}.cube-card-activity{margin-left:auto;color:var(--color-text-muted)}.modal{background:transparent;border:0;color:var(--color-text-secondary);max-width:800px;width:calc(100% - 2rem);padding:0}.modal::backdrop{background:#000c}.modal-content{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:var(--font-size-xl);color:var(--color-accent)}.close-btn{background:transparent;border:none;color:var(--color-text-muted);font-size:2rem;cursor:pointer;line-height:1;padding:0;width:32px;height:32px}.close-btn:hover{color:var(--color-accent)}.modal-body{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--color-accent);font-weight:var(--font-weight-medium)}.form-group input,.form-group textarea,.form-group select{width:100%;background:var(--color-bg-base);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);padding:.75rem;border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-base)}.form-group textarea{resize:vertical;font-family:Monaco,Courier New,monospace}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group label small{color:var(--color-text-faint);font-weight:400;font-size:var(--font-size-sm)}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}@media(max-width:768px){.toolbar{flex-direction:column;align-items:stretch}.cubes-grid{grid-template-columns:1fr}.header-content{flex-direction:column;gap:1rem}}@media(forced-colors:active){.login-container h1,.dashboard-header h1{-webkit-text-fill-color:ButtonText;background:none}}
