*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{font-family:system-ui,-apple-system,sans-serif;color:#111;background:#fff}.role-picker{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:.5rem;padding:1rem}.role-picker h1{font-size:1.5rem;font-weight:700}.role-picker p{color:#666;margin-bottom:1rem}.role-picker-buttons{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:300px}.role-picker button{padding:.75rem 2rem;font-size:1rem;border:1px solid #e2e2e2;border-radius:8px;background:#fff;cursor:pointer;width:100%;transition:background .15s}.role-picker button:hover{background:#f5f5f5;border-color:#ccc}.top-bar{position:-webkit-sticky;position:sticky;top:0;z-index:100;height:56px;padding:env(safe-area-inset-top,0) 1rem 0;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #e2e2e2}.top-bar-title{font-weight:600;font-size:1.1rem}.top-bar-avatar{width:32px;height:32px;border-radius:50%;background:#1a56db;color:#fff;justify-content:center;font-size:.8rem;font-weight:600}.bottom-tabs,.top-bar-avatar{display:flex;align-items:center}.bottom-tabs{position:fixed;bottom:0;left:0;right:0;z-index:100;height:calc(64px + env(safe-area-inset-bottom, 0));padding-bottom:env(safe-area-inset-bottom,0);justify-content:space-around;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid #e2e2e2}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1 1;padding:6px 0;text-decoration:none;color:#999;font-size:.65rem;font-weight:500;transition:color .15s}.tab-item svg{width:24px;height:24px}.tab-item.active{color:#1a56db}.main-content{padding:1rem 1rem calc(80px + env(safe-area-inset-bottom, 0));min-height:calc(100vh - 56px)}.main-content h1{font-size:1.35rem;font-weight:700;margin-bottom:.25rem}.main-content p{color:#666}button,input,select,textarea{min-height:44px;font-size:16px}.card{border:1px solid #e2e2e2;border-radius:12px;padding:1rem;background:#fafafa;width:100%}.fab{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom, 0));right:1rem;width:56px;height:56px;border-radius:50%;background:#1a56db;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:50;font-size:1.5rem}.fab:active{transform:scale(.95)}