:root{color-scheme:light;--color-bg: #f5f7fa;--color-surface: #ffffff;--color-border: #c9d1dc;--color-text: #17202e;--color-text-muted: #4a5568;--color-primary: #1d4ed8;--color-primary-hover: #1e40af;--color-on-primary: #ffffff;--color-danger: #b42318;--color-danger-bg: #fef3f2;--color-danger-border: #f4a9a3;--color-focus: #1d4ed8;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-base: 1rem;--text-sm: .875rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius: .5rem;--shadow-card: 0 1px 2px rgb(16 24 40 / 6%), 0 4px 12px rgb(16 24 40 / 6%)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased}h1{margin:0 0 var(--space-2);font-size:var(--text-xl);line-height:1.25}a{color:var(--color-primary);text-underline-offset:.15em}a:hover{color:var(--color-primary-hover)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}main:focus{outline:none}.lead{margin:0 0 var(--space-6);color:var(--color-text-muted)}.loading{color:var(--color-text-muted)}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;max-width:64rem;margin:0 auto;padding:var(--space-3) var(--space-4)}.skip-link{position:absolute;left:var(--space-2);top:-4rem;z-index:10;padding:var(--space-2) var(--space-4);background:var(--color-surface);border:2px solid var(--color-primary);border-radius:var(--radius)}.skip-link:focus{top:var(--space-2)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-primary);font-size:var(--text-lg);font-weight:700;text-decoration:none}.brand:hover{color:var(--color-primary-hover)}.main-nav{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.main-nav a:not(.button){padding:var(--space-1) var(--space-2);font-weight:600}.main-nav a[aria-current=page]:not(.button){color:var(--color-text);text-decoration:none}.nav-sep{width:1px;height:1.5rem;background:var(--color-border)}.current-user{font-weight:600;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-error{padding:var(--space-2) var(--space-4);background:var(--color-danger-bg);color:var(--color-danger);text-align:center}.header-error .button{margin-inline-start:var(--space-3)}.app-main{max-width:64rem;margin:0 auto;padding:var(--space-8) var(--space-4)}.button{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button-primary{background:var(--color-primary);color:var(--color-on-primary)}.button-primary:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}.button-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.button-secondary:hover{background:var(--color-bg)}.button-block{width:100%;margin-top:var(--space-2)}.button:disabled{opacity:.7;cursor:progress}.auth-card{max-width:26rem;margin:var(--space-6) auto;padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.field{margin-bottom:var(--space-4)}.field label{display:block;margin-bottom:var(--space-1);font-weight:600}.field input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field-hint,.field-error{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.field-hint{color:var(--color-text-muted)}.field-error{color:var(--color-danger);font-weight:600}.form-error{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius);color:var(--color-danger);font-weight:600}.auth-alt{margin:var(--space-6) 0 0;text-align:center;color:var(--color-text-muted)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-6)}.page-header .lead{margin-bottom:0}.page-actions{display:flex;gap:var(--space-2)}.project-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.project-list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.project-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.project-item-main{display:grid;min-width:0}.project-item-name{font-size:var(--text-lg);font-weight:700;overflow-wrap:anywhere}.project-item-slug{color:var(--color-text-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.project-item-meta{display:flex;gap:var(--space-2)}.chip{display:inline-block;padding:.125rem var(--space-3);background:#eef2f7;border:1px solid var(--color-border);border-radius:999px;color:#334155;font-size:var(--text-sm);font-weight:600}.chip-role{background:#e8efff;border-color:#b7c9f7;color:#1e3a8a}.chip-public{background:#e7f6ec;border-color:#9bd4ae;color:#14532d}.empty-state{padding:var(--space-8) var(--space-6);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius);text-align:center}.empty-state h1,.empty-state h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.empty-state p{margin:0 auto var(--space-4);max-width:36rem;color:var(--color-text-muted)}.empty-state p:last-child{margin-bottom:0}.alert-text{margin:0 0 var(--space-3)}.slug-preview{margin:0 0 var(--space-4);color:var(--color-text-muted);overflow-wrap:anywhere}.slug-preview code{color:var(--color-text);font-weight:600}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.settings{display:grid;gap:var(--space-6)}.settings .page-header,.settings .lead{margin-bottom:0}.card{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card h2{margin:0 0 var(--space-4);font-size:var(--text-lg)}.card-danger{border-color:var(--color-danger-border)}.card-danger h2{color:var(--color-danger)}.section-lead{margin:0 0 var(--space-4);color:var(--color-text-muted)}.empty-note{margin:0;color:var(--color-text-muted)}select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit}.button-danger{background:var(--color-danger);color:var(--color-on-primary)}.button-danger:hover:not(:disabled){background:#912018;color:var(--color-on-primary)}.button-danger-outline{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.button-danger-outline:hover:not(:disabled){background:var(--color-danger-bg)}.choice-group{display:grid;gap:var(--space-3);margin:0;padding:0;border:0}.choice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer}.choice:has(input:checked){border-color:var(--color-primary);background:#f3f6ff}.choice input{margin-top:.35rem}.choice-label{display:block;font-weight:700}.choice-hint{display:block;color:var(--color-text-muted);font-size:var(--text-sm)}.member-list,.invite-list{display:grid;margin:0;padding:0;list-style:none}.member-row,.invite-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) 0;border-top:1px solid var(--color-border)}.member-row:first-child,.invite-row:first-child{border-top:0}.member-info{display:grid;min-width:0}.member-name{display:flex;align-items:center;gap:var(--space-2);font-weight:600;overflow-wrap:anywhere}.member-email,.invite-meta{color:var(--color-text-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.member-actions,.invite-info{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.leave-box{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.leave-box .field-hint{margin-top:var(--space-2)}.invite-form{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.invite-form .field{margin-bottom:0}.invite-created{margin-bottom:var(--space-4);padding:var(--space-4);background:#f3f6ff;border:1px solid #b7c9f7;border-radius:var(--radius)}.invite-created-note{margin:0 0 var(--space-3)}.invite-created-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.invite-url{flex:1 1 16rem;min-width:0;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow-wrap:anywhere}.invite-preview{margin-bottom:var(--space-4);padding:var(--space-4);background:#f3f6ff;border:1px solid #b7c9f7;border-radius:var(--radius);overflow-wrap:anywhere}.invite-preview p{margin:0}.invite-preview .field-hint{margin-top:var(--space-1)}.toast-region{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:20;max-width:min(24rem,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#17202e;border-radius:var(--radius);box-shadow:var(--shadow-card);color:#fff;pointer-events:none}.toast-dismiss{flex:none;padding:var(--space-1) var(--space-2);background:transparent;border:1px solid #ffffff;border-radius:var(--radius);color:#fff;font:inherit;font-size:var(--text-sm);cursor:pointer;pointer-events:auto}@media(max-width:30rem){.auth-card{padding:var(--space-6) var(--space-4)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
