:root{--color-bg:#f8fafc;--color-surface:#fff;--color-text:#334155;--color-text-muted:#64748b;--color-border:#e2e8f0;--color-primary:#2563eb;--color-danger:#dc2626;--space-page:1rem;--radius:8px;--nav-height:3.5rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);margin:0;font-size:16px;line-height:1.5}#root{min-height:100dvh}a{color:var(--color-primary)}button,.btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:0 1rem;display:inline-flex}button.primary,.btn-primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff}button.block,.btn-block{width:100%}.app-frame{background:var(--color-bg);width:100%;max-width:28rem;min-height:100dvh;margin:0 auto}.page{min-height:100dvh;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.page--no-nav{padding-bottom:env(safe-area-inset-bottom,0px)}.page-header{z-index:10;min-height:3rem;padding:0 var(--space-page);padding-top:env(safe-area-inset-top,0px);background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.page-header h1{margin:0;font-size:1.125rem;font-weight:600}.page-header .back{min-height:44px;color:var(--color-primary);background:0 0;border:none;padding:0 .5rem}.page-body{padding:var(--space-page);flex:1}.placeholder{color:var(--color-text-muted);margin:0}.card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1rem}.list-rows{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.list-row{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:44px;color:inherit;justify-content:space-between;align-items:center;padding:.75rem 1rem;text-decoration:none;display:flex}.bottom-nav{z-index:20;width:100%;max-width:28rem;height:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{color:var(--color-text-muted);flex:1;justify-content:center;align-items:center;font-size:.875rem;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--color-primary);font-weight:600}.login-page{min-height:100dvh;padding:var(--space-page);padding-top:calc(var(--space-page) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-page) + env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:center;display:flex}.login-page h1{text-align:center;margin:0 0 .5rem;font-size:1.5rem}.login-page .tagline{color:var(--color-text-muted);text-align:center;margin:0 0 2rem}.login-actions{flex-direction:column;gap:.75rem;display:flex}.more-footer,.me-footer{margin:2rem 0 0}.profile-card{text-align:center;flex-direction:column;align-items:center;gap:.375rem;margin-bottom:1.5rem;display:flex}.profile-avatar{object-fit:cover;border-radius:50%;width:72px;height:72px;margin-bottom:.5rem}.profile-avatar--placeholder{background:var(--color-border);color:var(--color-text-muted);justify-content:center;align-items:center;font-size:1.75rem;font-weight:600;display:flex}.profile-name{margin:0;font-size:1.25rem;font-weight:600}.profile-email{color:var(--color-text-muted);word-break:break-all;margin:0;font-size:.9375rem}.profile-meta{color:var(--color-text-muted);margin:.25rem 0 0;font-size:.875rem}.profile-meta--muted{font-size:.8125rem}.profile-roles{color:var(--color-primary);margin:.5rem 0 0;font-size:.8125rem}.me-section-title{color:var(--color-text-muted);margin:0 0 .75rem;font-size:.875rem;font-weight:600}.me-section{margin-bottom:.5rem}.profile-sync-btn{width:100%;margin-top:.75rem}.form-stack{flex-direction:column;gap:.75rem;display:flex}.form-hint{color:var(--color-text-muted);margin:0;font-size:.875rem}.form-error{color:var(--color-danger);margin:0;font-size:.875rem}.field{flex-direction:column;gap:.375rem;font-size:.875rem;display:flex}.field span{color:var(--color-text-muted)}.field input,.field select{border:1px solid var(--color-border);border-radius:var(--radius);min-height:44px;font:inherit;background:var(--color-surface);padding:.5rem .75rem}.field-inline{flex-direction:row;justify-content:space-between;align-items:center}.field-inline select{flex:1;max-width:12rem}.checkbox-row{align-items:flex-start;gap:.5rem;font-size:.9375rem;display:flex}.checkbox-row input{margin-top:.25rem}.section-stack{margin-top:1.5rem}.section-title{margin:0 0 .75rem;font-size:1rem;font-weight:600}.card-stack{flex-direction:column;gap:.5rem;display:flex}.card-title{margin:0;font-weight:600}.card-meta{color:var(--color-text-muted);margin:0;font-size:.875rem}.card-meta-inline{color:var(--color-text-muted);margin-left:.5rem;font-size:.8125rem;font-weight:400}.badge{border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-verified{color:#166534;background:#dcfce7}.btn-row{gap:.5rem;margin-top:.5rem;display:flex}.btn-danger{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-surface)}.page-actions{margin:0 0 1rem}.link-btn{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;min-height:auto;margin-left:.5rem;padding:0;text-decoration:underline}
